| Comment: | Take the writer lock inside LogStore.open and test the lock class
LogStore.open now takes the exclusive lock before it reads the file's length and scans for the end, and a read-only handle refuses to append. purge undo opens the store through the shared writer path. A new DST sweep runs two to four writers interleaved against one log through a file that models the lock. It flags unlocked or misplaced appends as they happen, checks each writer sees everything committed before it locked and reads back its own writes, including deltas. A source check fails on any write-mode open of the store outside openStoreAppend. An e2e test races commits, tags and user-table writes on one store and counts what landed. |
|---|---|
| Timelines: | family | ancestors | descendants | both | trunk | version-0.3.32 |
| Files: | files | file ages | folders |
| SHA3-256: |
5c445bb3f31f4598f27b6105b460d925 |
| User & Date: | dmestas on 2026-09-28 02:39:03.115 |
| Other Links: | manifest | tags |
|
2026-09-28
| ||
| 02:59 |
import-git: record a project code; verify notes a store without one
import-git wrote no project code, so every sync peer and forge refused the store it made. It now derives one from the destination's absolute path, as init does, and the import request requires it. verify notes a repository with no project code without counting it as damage. check-in: add51a12d2 user: dmestas tags: trunk | |
| 02:39 |
Take the writer lock inside LogStore.open and test the lock class
LogStore.open now takes the exclusive lock before it reads the file's length and scans for the end, and a read-only handle refuses to append. purge undo opens the store through the shared writer path. A new DST sweep runs two to four writers interleaved against one log through a file that models the lock. It flags unlocked or misplaced appends as they happen, checks each writer sees everything committed before it locked and reads back its own writes, including deltas. A source check fails on any write-mode open of the store outside openStoreAppend. An e2e test races commits, tags and user-table writes on one store and counts what landed. check-in: 5c445bb3f3 user: dmestas tags: trunk, version-0.3.32 | |
|
2026-09-27
| ||
| 20:37 |
purge undo: take the store's append lock before restoring
It appended without the lock every other writer takes, so a concurrent commit, pull or push could overwrite its frames or have its own overwritten with valid frames nothing could detect. It now opens through openStoreAppend, which also resolves a detached worktree's store. Release 0.3.32. check-in: 2249f19056 user: dmestas tags: trunk | |