This is the record of an abcd-managed repository

abcdBetav0.16.2 · 2026-11-06

Development record

The cold-reading ingest verb's orphan sweep deletes a concurrent invocation's ledger records. sweepOrphanStages and rollbackRun hold no lock, and nothing distinguishes a crashed stage from a live one, so a second ingest starting while the first sits between its ledger write and its commit marker finds the first's stage, sees no run.json, and removes both its records and its stage. The first then writes run.json and exits 0 naming records that no longer exist. capture.IngestReading takes the ledger flock for its own write, but the sweep sits outside it.

issueresolvedminoriss-2608311234537042

The cold-reading ingest verb's orphan sweep deletes a concurrent invocation's ledger records. sweepOrphanStages and rollbackRun hold no lock, and nothing distinguishes a crashed stage from a live one, so a second ingest starting while the first sits between its ledger write and its commit marker finds the first's stage, sees no run.json, and removes both its records and its stage. The first then writes run.json and exits 0 naming records that no longer exist. capture.IngestReading takes the ledger flock for its own write, but the sweep sits outside it.

Grounds

  • pursued: the finding is closed by a test that fails without the change; a later review or mutation run finding the same shape again would show this wrong

Frontmatter

idiss-2608311234537042
typeissue
lifecycleresolved
severityminor