Exit as interrupted when Ctrl-C lands during a local index write (closes #301)
check / check (push) Waiting to run
check / check (push) Waiting to run
Once the run's context is cancelled, database/sql rolls an open transaction back itself, so the rollback in WithTx returned sql.ErrTxDone. WithTx treated any rollback error as fatal and called os.Exit(1): an interrupted backup printed "FATAL: failed to rollback transaction", exited 1 instead of 130 and skipped its deferred cleanup. WithTx now ignores sql.ErrTxDone from the rollback and returns the body's error. A rollback that really fails is returned together with the body's error instead of ending the process. On a panic the rollback error is dropped and the panic carries on. Model: opus-5-5
This commit is contained in:
@@ -22,6 +22,16 @@ the tag exists and is exercised; what is left is merging `next` to
|
||||
|
||||
# Completed Steps
|
||||
|
||||
- 2026-10-13: Made Ctrl-C or SIGTERM during a local index write end the
|
||||
command as interrupted
|
||||
([issue #301](https://git.eeqj.de/sneak/vaultik/issues/301)). Once the
|
||||
run is cancelled, `database/sql` rolls an open transaction back itself,
|
||||
so the rollback in `WithTx` failed with `sql.ErrTxDone` and the process
|
||||
exited 1 with `FATAL: failed to rollback transaction`, skipping the
|
||||
interrupted exit and message. That result is no longer an error, and a
|
||||
rollback that does fail is returned with the transaction's error
|
||||
instead of ending the process.
|
||||
|
||||
- 2026-10-12: Bound the local index to the destination an `s3.*` config
|
||||
names ([issue #298](https://git.eeqj.de/sneak/vaultik/issues/298)).
|
||||
Only `storage_url` was checked, so after `s3.bucket` or `s3.prefix`
|
||||
|
||||
Reference in New Issue
Block a user