docs(publish): point the torn-clone note at the suite that reproduces it
publish-snapshot.sh's header described the silent-truncation failure mode as the one "this script's own selftest (scenario 8)" reproduces. Wrong twice: the scenario that reproduces a truncated clone is in seed-target-dir-selftest.sh, and since #4 split the old scenario 8 into 8a and 8b it is 8b. publish-snapshot-selftest.sh does have a scenario 8 — the abandoned-marker case — so the pointer landed on a real scenario with a plausible number that tests something else. Names the suite as well as the number, and says what the local scenario 8 actually is so the collision cannot re-form. Closes #6
This commit is contained in:
@@ -29,8 +29,9 @@
|
|||||||
# consumer still WALKING the old generation has its entries unlinked out from
|
# consumer still WALKING the old generation has its entries unlinked out from
|
||||||
# under it, and `cp -al` does not report a subtree that was removed before it
|
# under it, and `cp -al` does not report a subtree that was removed before it
|
||||||
# read the parent's listing. That is a silently truncated clone — the failure
|
# read the parent's listing. That is a silently truncated clone — the failure
|
||||||
# mode this script's own selftest (scenario 8) reproduces against the
|
# mode seed-target-dir-selftest.sh's scenario 8b reproduces from the consumer's
|
||||||
# unguarded version.
|
# side, against the unguarded version. (This script's own selftest also has a
|
||||||
|
# scenario 8; that one is the abandoned-reader-marker case, not this.)
|
||||||
#
|
#
|
||||||
# So the unlink is interlocked with the consume side rather than
|
# So the unlink is interlocked with the consume side rather than
|
||||||
# unconditional: after the swap, this script waits for every in-flight reader
|
# unconditional: after the swap, this script waits for every in-flight reader
|
||||||
|
|||||||
Reference in New Issue
Block a user