Login
View Ticket
Login
Ticket Hash: 4e254b1b484eaf4c482c363585e90fae52534e27
Title: Host ~/.fossil global config is still in WAL: every fossil call prints 'recovered N frames', and it makes spec/repo_write_lock_spec.cr flaky
Status: Active Type: Code_Defect
Severity: Normal Priority: Medium
Subsystem: Resolution:
Last Modified: 2026-09-20 14:43:00
51.7 days ago
Created: 2026-09-14 19:18:26
57.5 days ago
Version Found In:
Description:
Every fossil invocation on this host logs 'SQLITE_NOTICE(283): recovered 1 frames from WAL file /root/.fossil-wal' because the GLOBAL config db (~/.fossil) is in WAL mode and is opened by many concurrent processes (daemon, CGI, specs, operators). Effects: (1) noise in every tool output and log; (2) spec/repo_write_lock_spec.cr:194 scans fossil stderr for 'recovered N frames' as corruption evidence and fails under load although the served repo is clean (seen 2026-09-14 19:15Z on the W1 branch suite: 18 matches, passes alone). FIX (operator, repair role): in a quiet window, 'fossil sql -R /root/.fossil "PRAGMA journal_mode=DELETE"' (or via the repo-journal verb if it accepts the global config) and confirm the -wal/-shm sidecars are gone; then make the spec filter notices whose WAL path is the global config, so only the repo under test counts as evidence. Also list ~/.fossil in the repo-health/ensure sweep's journal-mode report. complexity=low design_input=none OCX-PLAN: role=work parent=36f1669975 seq=11
User Comments:
added on 2026-09-14 19:19:27:
DONE (operator half, repair 2026-09-14 19:2xZ): sqlite3 /root/.fossil 'pragma journal_mode=delete' -> delete; /root/.fossil-wal gone; the SQLITE_NOTICE(283) lines stop host-wide. REMAINING (code half): spec/repo_write_lock_spec.cr should count only recovery notices naming the repository under test, and the ensure sweep's journal report should list ~/.fossil.