Skip to content
zit Check-in [5c445bb3f3]
Login

Check-in [5c445bb3f3]

Overview
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: 5c445bb3f31f4598f27b6105b460d925afafd1efd0b65814f0956a6b9723fa9b
User & Date: dmestas on 2026-09-28 02:39:03.115
Other Links: manifest | tags
Context
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

Changes