fix(format): skip user-defined links instead of failing the group
Link types 65-255 are user-defined: their target is only meaningful to the application that registered the link class. LinkMessage::parse rejects them with InvalidLinkType, and group traversal propagated that, so one such link made the whole group unlistable and every path through it unresolvable (libhdf5's tall.h5 and tudlink.h5, class 187). Group traversal (compact and dense) now leaves user-defined links out, the way h5py leaves out links it cannot open; reserved types (2-63) are still an error. Regression test: user_defined_links_do_not_break_the_listing, on libhdf5's own tools/test/testfiles tall.h5 and tudlink.h5 (BSD-style HDF5 licence, 10 KB and 1 KB), committed as fixtures. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
This commit is contained in:
@@ -76,6 +76,8 @@ the VDS item, which is marked.
|
||||
- **Old-style shared messages (version 1)** read the wrong address.
|
||||
- **Groups and links:**
|
||||
- Groups with a user-defined link type (e.g. 187) cannot be listed.
|
||||
**Fixed 2026-09-25:** user-defined links are skipped; the rest of the
|
||||
group lists.
|
||||
- Dense groups with more than about 22 000 links cannot be listed.
|
||||
**Fixed 2026-09-25:** two bugs — fractal-heap child indirect blocks had
|
||||
the wrong row count, and v2 B-tree internal nodes at depth 3+ were read
|
||||
|
||||
Reference in New Issue
Block a user