This is the record of an abcd-managed repository

abcdBetav0.16.2 · 2026-11-06

Development record

A retrospective written during an embark is replaced silently: reflect write takes no lock, and embark's writeEmbark writes each planned create through a rename-over (writeIntoLifeboat, fsutil.WriteFileAtomic), so a retrospective reflect write creates between embark's rejudge and its write is replaced by the lifeboat's copy with no conflict.

issueresolvedminoriss-2609301245517138

A retrospective written during an embark is replaced silently: reflect write takes no lock, and embark's writeEmbark writes each planned create through a rename-over (writeIntoLifeboat, fsutil.WriteFileAtomic), so a retrospective reflect write creates between embark's rejudge and its write is replaced by the lifeboat's copy with no conflict.

Grounds

  • pursued: a reflect write arriving while embark holds the intent lock waits for it (TestWriteWaitsForTheIntentStoresLock), and writeEmbark over a pre-existing differing README refuses with the file intact (TestWriteEmbarkRefusesToReplaceAFileThatLandedAtACreateTarget); a retrospective replaced by an embark's copy with a nil error would show it wrong.

Frontmatter

idiss-2609301245517138
typeissue
lifecycleresolved
severityminor