Skip to content
go-libfossil Check-in [69c95d4419]
Login

Check-in [69c95d4419]

Overview
Comment:fix(db): set busy_timeout before any other pragma on open

The drivers build the DSN's _pragma parameters from a map and run them in that order, so journal_mode or foreign_keys often ran before busy_timeout. An open while another process held a lock then failed at once with "database is locked" instead of waiting: one cause of TestSnapshotConcurrentProcesses failing under -tags test_ncruces.

Timelines: family | ancestors | descendants | both | main | trunk | feat/cli-snapshot
Files: files | file ages | folders
SHA3-256: 69c95d4419e4353054995a06f55226c0a26ddf67dc566ab85ea9e5bc2d5051cb
User & Date: [email protected] on 2026-10-19 23:10:28.000
Other Links: branch diff | manifest | tags
Context
2026-10-19
23:13
fix(cli): hold the write lock from snapshot's read of the tip to its commit

Under -tags test_ncruces, TestSnapshotConcurrentProcesses failed 8 of 20 runs. Besides the open-time lock error fixed in db, a snapshot read the tip's manifest outside any transaction while another process's check-in re-deltaed it, and failed with a hash mismatch. A snapshot now runs in one bound write transaction from the read of the tip to its commit, so no other check-in can land in between; the optimistic retry loop it replaces is gone. leaf check-in: 363ee3b9df user: [email protected] tags: feat/cli-snapshot, main, trunk

23:10
fix(db): set busy_timeout before any other pragma on open

The drivers build the DSN's _pragma parameters from a map and run them in that order, so journal_mode or foreign_keys often ran before busy_timeout. An open while another process held a lock then failed at once with "database is locked" instead of waiting: one cause of TestSnapshotConcurrentProcesses failing under -tags test_ncruces. check-in: 69c95d4419 user: [email protected] tags: feat/cli-snapshot, main, trunk

23:06
test(cli): compare log across a rename with fossil finfo

The rename test built its history through manifest.Checkin and checked our own idea of the result. It now builds the history with the fossil binary and compares repo log with fossil finfo on the same repository: both stop a name's history at the rename. The doc tells an embedder how to follow a file across renames, and where log differs from finfo. check-in: 16d2c51f61 user: [email protected] tags: feat/cli-snapshot, main, trunk

Changes