Skip to content

fix(engine): retry passes rsync exit 23, a dangling symlink under -L - #6

Merged
jshvn merged 1 commit into
mainfrom
josh/retry-exit-23
Sep 13, 2026
Merged

jshvn merged 1 commit into
mainfrom
josh/retry-exit-23

Conversation

@jshvn

@jshvn jshvn commented Sep 13, 2026

Copy link
Copy Markdown
Member

What

Every ctan sync since 2026-09-13 07:43 UTC fails at list with rsync exit 23: four tugboat.cmn symlinks under macros/latex209/contrib/ and obsolete/ lost their target upstream between the 06:43 and 07:43 runs, and -L reports each as symlink has no referent. The rest of the listing is intact (the 06:43 run had none of these lines and listed 512,375 objects), but retry passed only 0 and 24, so the pipeline died six runs in a row.

  • engines/rsync.yml: retry treats 23 like 24. For list it is a dangling symlink skipped, and LIST_FLOOR is what catches a listing cut short. For fetch it is a path that could not be read, which never lands in staging, so merge drops it from the state exactly as it does a vanished one. For prepare a missing control file fails the next command. A comment on list says why 23 is passed there.
  • examples/rsync: the offline check gains task retry CMD='exit 23', which fails on main; render.txt changes by the three renderings of the case line.
  • README: the retry row.

Storage and operations

None. No verb writes anything differently.

Test plan

  • Reproduced in the rsync image against rsync://rsync.dante.ctan.org/CTAN/macros/latex209/contrib/tugboat/: -rL --list-only prints the referent line, lists the two real files, exits 23; -r lists the link and exits 0
  • examples/rsync: task run -- task offline fails on main with the new line and passes here; task check passes after task render-update
  • CI green
  • After merge: tag v2.1.1, which rebuilds the images and moves v2; the next hourly ctan run is the live check
  • After the tag: task render-update in ctan and tlnet, three lines each

@jshvn
jshvn merged commit d9f16ac into main Sep 13, 2026
2 checks 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