Skip to content

Conversation

@jdoucett
Copy link
Contributor

Summary

  • Indexed htar -L silently drops members whose relpath is >= 250 chars (rc=70) - reproduced live on Negishi, and the root cause of X0A_Task4_Pendleton_Transcriptomics/shard-0of8 repeatedly failing on an overlong Novogene GSEA/KEGG path. htar_large has no such ceiling (confirmed live with a 431-char relpath), so choose_transport now also routes on arcname length (HTAR_ARCNAME_LEN_LIMIT = 240), not just size.
  • ship_object now scans create stdout for htar's/tar's own member-omission messages and fails fast, naming every dropped file, instead of falling through to the rc=70-tolerant path from PR fix(routing): tolerate transient nonzero htar/htar_large rc in ship_object #28 or waiting on the round-trip verify. Generalized beyond "name too long" after live-testing surfaced two more silent-drop modes: htar's "Not readable" skip, and the one case rc gives zero signal for (confirmed rc=0 live) - tar's own "Cannot open" error under htar_large.
  • Checked live whether htar has a native "abort on skip" setting or a structural exceptions-list mechanism (-H exfile=); neither exists/works - confirmed by testing, documented in CLAUDE.md/RFC rather than assumed.

Test plan

  • All 300 unit tests pass (python3 -m unittest discover -s tests), including 6 new regression tests covering length-based routing and the generalized omission scan (name-too-long, not-readable, tar-cannot-open-with-rc-zero).
  • Live-verified on Negishi (HPSS 10.3.0.p3): htar_large create/retrieve/verify round-trip with a 431-char relpath; htar -L silent drop reproduced at the 250-char boundary; -H exfile= tested and confirmed not to capture these skips; htar_large's rc=0-despite-drop behavior confirmed with a chmod 000 file.
  • Next: re-run X0A_Task4_Pendleton_Transcriptomics (config on Negishi) to confirm shard-0 (and ideally all 8 shards) ships clean.

Generated with Claude Code

…t size

Indexed htar -L silently drops members whose relpath is >= 250 chars
(rc=70, "name too long for tar archive- file omitted") - reproduced live
on Negishi and the root cause of X0A_Task4_Pendleton_Transcriptomics
repeatedly failing on the same overlong Novogene GSEA/KEGG path. htar_large
has no such ceiling (confirmed live with a 431-char relpath), so
choose_transport now also routes on arcname length (HTAR_ARCNAME_LEN_LIMIT
= 240), not just size.

As defense in depth, ship_object scans create stdout for htar's/tar's own
unambiguous member-omission messages and fails fast with every dropped
file named, instead of falling through to the rc=70-tolerant path (PR #28)
or waiting on the round-trip verify to surface a bare FileNotFoundError.
Generalized beyond the name-too-long case after live-testing showed two
more silent-drop modes: htar's "Not readable" skip, and - the one case rc
gives zero signal for, confirmed rc=0 on Negishi - tar's own "Cannot open"
error under htar_large, whose exit code reflects hsi put, not the tar
process that actually failed. Checked for a native htar "abort on skip"
setting (no man page; pulled the full -H option list from the binary) and
a structural exceptions-list option (-H exfile=) - neither exists/works,
confirmed by live testing rather than assumed.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Sign in to join this conversation on GitHub.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant