Skip to content

Add 11 missing MCI test fixtures (ITK PR #6209 ExternalData prefetch fix)#47

Merged
hjmjohnson merged 1 commit intoInsightSoftwareConsortium:gh-pagesfrom
hjmjohnson:add-mci-missing-cids
May 5, 2026
Merged

Add 11 missing MCI test fixtures (ITK PR #6209 ExternalData prefetch fix)#47
hjmjohnson merged 1 commit intoInsightSoftwareConsortium:gh-pagesfrom
hjmjohnson:add-mci-missing-cids

Conversation

@hjmjohnson
Copy link
Copy Markdown
Member

Adds 11 binary test fixtures (mirrored at both CID/<cid> and SHA512/<hash> paths) that were referenced from the MorphologicalContourInterpolation module's test suite via .cid content links but never published here. Surfaced by InsightSoftwareConsortium/ITK#6209 which fails its "Populate shared ExternalData cache" CI step on these specific CIDs.

Provenance and verification

The 11 fixtures originated in KitwareMedical/ITKMorphologicalContourInterpolation (commit 04a2f7af on 2026-04-22 converted that module's .md5 / .sha512 sidecars to .cid). At the time, the binary content was pinned only on the upstream module's IPFS infrastructure. As of 2026-05-04 every public IPFS gateway tested (dweb.link, ipfs.io, w3s.link, gateway.ipfs.io, gateway.pinata.cloud, nftstorage.link, 4everland.io, gateway.ipfs.io) returns HTTP 504 Gateway Timeout for these CIDs — the content is genuinely unreachable from the public IPFS mesh.

Recovery path:

  1. Fetched each blob from https://data.kitware.com/api/v1/file/hashsum/sha512/<hash>/download using the SHA512 sidecars present in upstream MCI's pre-conversion commit (3ed1b9e6485a208c523400867dd3f1f723fb5e84). All 11 returned HTTP 200.
  2. SHA512 verified: each downloaded file's shasum -a 512 output matched the recorded .sha512 sidecar exactly.
  3. CID verified: ran npx ipfs-car pack --no-wrap <file> (CIDv1 / raw leaves / 1 MiB chunks — the UnixFS-v1-2025 profile codified by InsightSoftwareConsortium/ITK#6111) and confirmed each computed CID equals the .cid sidecar contents recorded in the ITK source tree.
Files added (11 × 2 = 22 total, ~155 MB)
Fixture Size CID SHA512 prefix
c2.mha 3.0 MB bafkreiekrb…wec37pxte bb469e11f3f3…
c10.mha 3.6 MB bafkreic6be…oeyp67q7ie 0bc769e6805e…
105769fixed.nii 31 MB bafkreieotw…ymcpmwj64 90c82f444c69…
FaceRoIFinished.nrrd 30 KB bafkreieh7u…o3h2phvm d7056d721fd9…
BigImage.nrrd 4.2 MB bafkreihay3…h24djvgxkm ebb2c07148d4…
16-5-16.nrrd 1.5 KB bafkreid5dr…oet2cawlm e6abb5c4d865…
105769moving.nii 31 MB bafkreig2z7…b7gnchzpz5dq 107ca87a0352…
NDRI64816L.nii 28 MB bafkreidgha…r2kx7w2mru 47495a25da89…
NDRI65239R.nii 28 MB bafkreicoqr…vojg45mpu 074d81224cec…
GridSegBase.nrrd 1.5 KB bafkreihnud…77gxwctjhe feab12b8ff5a…
3x3x3.nrrd 313 B bafkreihlfu…dellbua4 5680147ee008…

All files are well under GitHub's 50 MB per-file push limit; the largest is 31 MB.

What this unblocks

After this PR merges, ITK's PrefetchCIDContentLinks.py will resolve these 11 CIDs from the GitHub Pages mirror (https://insightsoftwareconsortium.github.io/ITKTestingData/CID/<cid>) — the highest-priority gateway in CMake/ITKExternalData.cmake, ahead of the IPFS public gateways that are currently failing. PR #6209's "Populate shared ExternalData cache" step will then complete with ok=2457 fail=0 instead of ok=2445 fail=12.

The 12th "failed" CID from the same CI run (bafkreiacz5odzg…) is already published here — that one is a transient dweb.link flake; the prefetch job will succeed on retry once the GitHub Pages gateway is preferred.

These 11 binary test fixtures are referenced from the
MorphologicalContourInterpolation module's test suite via .cid /
.sha512 content links but were never published to ITKTestingData.
They were authored by KitwareMedical/ITKMorphologicalContourInterpolation
and pinned only on its (now-decayed) IPFS infrastructure.  Public
IPFS gateways (dweb.link, ipfs.io, w3s.link, gateway.ipfs.io) all
return HTTP 504 Gateway Timeout for these CIDs, breaking ITK's
"Populate shared ExternalData cache" CI job on PR #6209.

Surfaced by InsightSoftwareConsortium/ITK PR #6209 (Cuberille follow-up
ingest of MCI into Modules/Filtering/MorphologicalContourInterpolation/).

Provenance and verification:
  - Source: https://data.kitware.com/api/v1/file/hashsum/sha512/<hash>/download
  - SHA512 verified: each file's downloaded bytes match the recorded
    .sha512 sidecar from the upstream MCI commit predating the
    md5/sha512 -> .cid conversion.
  - CID verified: locally computed via `npx ipfs-car pack --no-wrap`
    (UnixFS-v1-2025 / IPIP-0499 profile, matching ITK's PR #6111
    upload tooling) and confirmed equal to the `.cid` sidecar
    contents recorded in the source tree.

Files added (11 each under CID/ and SHA512/):
  c2.mha                  3.0 MB  bafkreiekrb...c37pxte
  c10.mha                 3.6 MB  bafkreic6be...67q7ie
  105769fixed.nii         31  MB  bafkreieotw...mwj64
  FaceRoIFinished.nrrd    30  KB  bafkreieh7u...phvm
  BigImage.nrrd           4.2 MB  bafkreihay3...vgxkm
  16-5-16.nrrd            1.5 KB  bafkreid5dr...cawlm
  105769moving.nii        31  MB  bafkreig2z7...pz5dq
  NDRI64816L.nii          28  MB  bafkreidgha...w2mru
  NDRI65239R.nii          28  MB  bafkreicoqr...45mpu
  GridSegBase.nrrd        1.5 KB  bafkreihnud...ctjhe
  3x3x3.nrrd              313  B  bafkreihlfu...lbua4

Total: 22 new files (11 CID + 11 SHA512), ~155 MB.

After this lands, ITK CI's PrefetchCIDContentLinks step will resolve
all 12 previously-failing MCI CIDs from the GitHub Pages mirror
(the highest-priority gateway in CMake/ITKExternalData.cmake), and
PR #6209's "Populate shared ExternalData cache" job will pass.
@hjmjohnson hjmjohnson marked this pull request as ready for review May 5, 2026 01:07
@hjmjohnson hjmjohnson merged commit 33b14d1 into InsightSoftwareConsortium:gh-pages May 5, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant