Prevent two daemons sharing one DB (only incidental port collision protects today). Size S.
Roadmap-to-9/10 (design: scratchpad/design/). Serial PROTO queue via WS-A. Brief at dispatch. DoD per docs/STORY-WORKFLOW.md.
Prevent two daemons sharing one DB (only incidental port collision protects today). Size S.
Roadmap-to-9/10 (design: scratchpad/design/). Serial PROTO queue via WS-A. Brief at dispatch. DoD per docs/STORY-WORKFLOW.md.
Delivered via PR #346 (WS-C3, squash-merged to dev). InstanceLock (crates/nunciod/src/lock.rs) takes an exclusive OS advisory lock on <db_path>.lock via fs4 (flock/LockFileEx) at startup BEFORE opening the store; held for the whole process lifetime, released after db.close() on clean exit. Contention -> honest InstanceLockError::AlreadyRunning naming the DB path, process exits non-zero without opening the store. New dep fs4 (no portable std file-lock; avoids PID-file staleness). 4 tests incl. double-acquire. Prevents two daemons corrupting one DB.
Delivered via PR #346 (WS-C3, squash-merged to dev). InstanceLock (crates/nunciod/src/lock.rs) takes an exclusive OS advisory lock on <db_path>.lock via fs4 (flock/LockFileEx) at startup BEFORE opening the store; held for the whole process lifetime, released after db.close() on clean exit. Contention -> honest InstanceLockError::AlreadyRunning naming the DB path, process exits non-zero without opening the store. New dep fs4 (no portable std file-lock; avoids PID-file staleness). 4 tests incl. double-acquire. Prevents two daemons corrupting one DB.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Prevent two daemons sharing one DB (only incidental port collision protects today). Size S.
Roadmap-to-9/10 (design: scratchpad/design/). Serial PROTO queue via WS-A. Brief at dispatch. DoD per docs/STORY-WORKFLOW.md.
Delivered via PR #346 (WS-C3, squash-merged to dev). InstanceLock (crates/nunciod/src/lock.rs) takes an exclusive OS advisory lock on <db_path>.lock via fs4 (flock/LockFileEx) at startup BEFORE opening the store; held for the whole process lifetime, released after db.close() on clean exit. Contention -> honest InstanceLockError::AlreadyRunning naming the DB path, process exits non-zero without opening the store. New dep fs4 (no portable std file-lock; avoids PID-file staleness). 4 tests incl. double-acquire. Prevents two daemons corrupting one DB.