Adds one paragraph to the README's "What to back up" section, after the -wal/-shm sidecar paragraphs, for #295.
It says DATA_DIR must be on a local filesystem, because SQLite in WAL mode maps each database's -shm file into memory and network filesystems (NFS, SMB/CIFS) do not support that reliably. It also says that disk I/O error (522) (SQLITE_IOERR_SHORT_READ) points at the storage under DATA_DIR, not at locking, and that moving DATA_DIR to a plain local disk is the first thing to try.
Checked against the code: every connection sets journal_mode(WAL) in internal/database/sqlite_open.go and nothing sets locking_mode, so the -shm file is in use. The driver turns on extended result codes and formats this error as disk I/O error (522). Nothing in webhooker checks which filesystem DATA_DIR is on, and the paragraph says so rather than implying startup would refuse one.
Judgement call: the paragraph sits next to the sidecar explanation it depends on, not under "Running with Docker", whose default is a local volume.
Left alone: the "Single-instance lock" sentence saying flock(2) does not arbitrate between hosts on a network filesystem. It is still true.
ZFS is not named: the one failure seen on it was never reproduced.
Model: opus-5-5
Adds one paragraph to the README's "What to back up" section, after the `-wal`/`-shm` sidecar paragraphs, for https://git.eeqj.de/sneak/webhooker/issues/295.
It says `DATA_DIR` must be on a local filesystem, because SQLite in WAL mode maps each database's `-shm` file into memory and network filesystems (NFS, SMB/CIFS) do not support that reliably. It also says that `disk I/O error (522)` (`SQLITE_IOERR_SHORT_READ`) points at the storage under `DATA_DIR`, not at locking, and that moving `DATA_DIR` to a plain local disk is the first thing to try.
Checked against the code: every connection sets `journal_mode(WAL)` in `internal/database/sqlite_open.go` and nothing sets `locking_mode`, so the `-shm` file is in use. The driver turns on extended result codes and formats this error as `disk I/O error (522)`. Nothing in webhooker checks which filesystem `DATA_DIR` is on, and the paragraph says so rather than implying startup would refuse one.
Judgement call: the paragraph sits next to the sidecar explanation it depends on, not under "Running with Docker", whose default is a local volume.
Left alone: the "Single-instance lock" sentence saying `flock(2)` does not arbitrate between hosts on a network filesystem. It is still true.
ZFS is not named: the one failure seen on it was never reproduced.
Model: opus-5-5
SQLite in WAL mode maps each database's -shm file into memory, and
network filesystems do not support that reliably, so the README now
says DATA_DIR must be local and names NFS and SMB/CIFS as unsupported.
It also says what a disk I/O error with code 522 points at and what to
try first. ZFS is not called unsupported: the one failure seen there
was never reproduced.
Model: opus-5-5
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.
Adds one paragraph to the README's "What to back up" section, after the
-wal/-shmsidecar paragraphs, for #295.It says
DATA_DIRmust be on a local filesystem, because SQLite in WAL mode maps each database's-shmfile into memory and network filesystems (NFS, SMB/CIFS) do not support that reliably. It also says thatdisk I/O error (522)(SQLITE_IOERR_SHORT_READ) points at the storage underDATA_DIR, not at locking, and that movingDATA_DIRto a plain local disk is the first thing to try.Checked against the code: every connection sets
journal_mode(WAL)ininternal/database/sqlite_open.goand nothing setslocking_mode, so the-shmfile is in use. The driver turns on extended result codes and formats this error asdisk I/O error (522). Nothing in webhooker checks which filesystemDATA_DIRis on, and the paragraph says so rather than implying startup would refuse one.Judgement call: the paragraph sits next to the sidecar explanation it depends on, not under "Running with Docker", whose default is a local volume.
Left alone: the "Single-instance lock" sentence saying
flock(2)does not arbitrate between hosts on a network filesystem. It is still true.ZFS is not named: the one failure seen on it was never reproduced.
Model: opus-5-5
Review passed.
Model: opus-5-5