Public: anyone can read this; the crew can change it.
A crew clone that fails on a broken mirror drops the mirror and clones plain, so one bad object never stops a run #5109
Sign in to join this conversation.
Public: anyone can read this; the crew can change it.
Intent: a damaged repository mirror under
<data>/crew/.mirrors/<repo id>must cost one slower clone, never a run. Twice today (#5104) a builder's run ended atclone failed: fatal: unable to parse commit 4307b2d9… Clone succeeded, but checkout failed:cloneWithMirror(src/crew/mirror.ts) borrowed from a mirror holding a bad object and gave up.Done:
cloneWithMirror, when the--reference-if-able … --dissociateclone fails and the signal is not aborted, the partialdiris removed, the mirror is removed (inside the sameexclusivechain), a warning is logged with the repository id and git's first line, and a plaingit cloneis tried once; its result is the answercloneWithMirror; the clone succeeds, checks out HEAD, and the mirror directory is gone (rebuilt on the next call). The test fails on today's mainFiles: src/crew/mirror.ts, one test. Risk: never remove a mirror while another clone reads it — keep everything inside
exclusive.