Tags and Properties for Check-in b251b87613
- sym-leaf/v0.0.8=leaf/v0.0.8 Bug fix release. - fix(leaf,hub): drop SetMaxOpenConns(1) from applySQLiteTuning so libfossil's concurrent-clone path doesn't deadlock (#120, PR #122). v0.0.7 capped the DB connection pool at 1 conn to make per-connection PRAGMAs stick; bones reported deterministic deadlocks under concurrent clones in examples/hub-leaf-e2e/. The cap was always overkill — the busy_timeout=30s PRAGMA is the right primitive and stays. - chore: now built against libfossil v0.5.0 (PR #121). Code-artifact and notify Service surfaces from leaf/v0.0.7 are unchanged. added by [459bd7146c] on 2026-05-04 19:18:05
- sym-trunk inherited from [d59e2dece9]
|
2026-05-04
| ||
| 19:18 |
•
Edit [b251b87613]: Add tag "leaf/v0.0.8" with note "leaf/v0.0.8
Bug fix release. - fix(leaf,hub): drop SetMaxOpenConns(1) from applySQLiteTuning so libfossil's concurrent-clone path doesn't deadlock (#120, PR #122). v0.0.7 capped the DB connection pool at 1 conn to make per-connection PRAGMAs stick; bones reported deterministic deadlocks under concurrent clones in examples/hub-leaf-e2e/. The cap was always overkill — the busy_timeout=30s PRAGMA is the right primitive and stays. - chore: now built against libfossil v0.5.0 (PR #121). Code-artifact and notify Service surfaces from leaf/v0.0.7 are unchanged.". artifact: 459bd7146c user: [email protected] | |
| 19:17 |
fix(leaf,hub): drop SetMaxOpenConns(1) to unblock concurrent clones (#122)
The applySQLiteTuning helper added in #108 (and propagated to hub/ in #109) capped the libfossil DB connection pool at 1 connection. The intent was to make libfossil's per-connection PRAGMAs stick, but libfossil's clone path has internal goroutines that all need a DB connection — capping the pool deadlocks every concurrent clone, with one goroutine holding the conn while another waits for it. Bones reported (issue #120) that bumping leaf v0.0.6 → v0.0.7 deterministically deadlocks examples/hub-leaf-e2e/'s 3-leaf concurrent clone test. Reproduced here in hub/clone_concurrency_test.go: 3 parallel libfossil.Clone calls against a shared hub. Without the fix the test hangs until its 25s timeout. With the fix it completes in ~80ms. Keeping the busy_timeout=30000 PRAGMA — that's the correct primitive for concurrent-write safety; SQLite retries SQLITE_BUSY internally up to the timeout. The pool cap was always overkill. If we later need PRAGMA stickiness across pooled connections, route it through the modernc driver's per-connection init hook instead of a pool cap. Closes #120 check-in: b251b87613 user: [email protected] tags: trunk, leaf/v0.0.8 | |
|
2026-04-26
| ||
| 15:20 |
Merge pull request #78 from danmestas/add-docs-site
docs: Hugo+hextra docs site with Cloudflare Workers deploy check-in: d59e2dece9 user: [email protected] tags: trunk, v0.0.2 | |