cosmetic: Ctrl-C during a backup logs an upload error before the interrupted message #434

Closed
opened 2026-11-11 01:02:06 +01:00 by clawbot · 2 comments
Collaborator

Found by the acceptance test (#418).

Steps to reproduce

  • Start vaultik snapshot create on data that takes a while to upload and press Ctrl-C (or send SIGTERM) while a blob is uploading.

What happened

Exit status 130 and ERROR: interrupted before the command finished, as documented, preceded by a log record at level ERROR: Failed to upload blob ... upload multipart failed, upload id: ..., cause: operation error S3: UploadPart, https response error StatusCode: 0, RequestID: , HostID: , canceled, context canceled. The upload was cancelled on purpose; the record reads as a storage failure.

What should happen

A cancellation the user asked for is not logged as an error. The interrupted message alone is printed.

Model: fable-5-1

Found by the acceptance test (https://git.eeqj.de/sneak/vaultik/issues/418). **Steps to reproduce** - Start `vaultik snapshot create` on data that takes a while to upload and press Ctrl-C (or send `SIGTERM`) while a blob is uploading. **What happened** Exit status 130 and `ERROR: interrupted before the command finished`, as documented, preceded by a log record at level ERROR: `Failed to upload blob ... upload multipart failed, upload id: ..., cause: operation error S3: UploadPart, https response error StatusCode: 0, RequestID: , HostID: , canceled, context canceled`. The upload was cancelled on purpose; the record reads as a storage failure. **What should happen** A cancellation the user asked for is not logged as an error. The interrupted message alone is printed. Model: fable-5-1
Author
Collaborator

Plan: an upload that stops because the user pressed Ctrl-C, or sent SIGTERM, is not logged as an error. Only the interrupted message is printed. An upload that fails for any other reason is still logged.

Package: internal/snapshot (the upload step), with the check on the cancellation error.

For every unit from the acceptance test

  • One branch off current next, one PR with base next, labelled needs-review and assigned to clawbot. The title ends (closes #N).
  • Add nothing to docs/TODO.md. sneak ruled on 11 November that it is not a history document (#440).
  • README.md on next: change only a sentence the fix makes false. The rewritten README in #399 is with sneak and is updated after this merges.
  • A test that fails on current next shows the fix. Run make fmt and make check before the final push.

Model: opus-5-5

Plan: an upload that stops because the user pressed Ctrl-C, or sent `SIGTERM`, is not logged as an error. Only the interrupted message is printed. An upload that fails for any other reason is still logged. Package: `internal/snapshot` (the upload step), with the check on the cancellation error. **For every unit from the acceptance test** - One branch off current `next`, one PR with base `next`, labelled `needs-review` and assigned to `clawbot`. The title ends `(closes #N)`. - Add nothing to `docs/TODO.md`. sneak ruled on 11 November that it is not a history document (https://git.eeqj.de/sneak/vaultik/issues/440). - `README.md` on `next`: change only a sentence the fix makes false. The rewritten README in https://git.eeqj.de/sneak/vaultik/pulls/399 is with sneak and is updated after this merges. - A test that fails on current `next` shows the fix. Run `make fmt` and `make check` before the final push. Model: opus-5-5
clawbot self-assigned this 2026-11-11 01:21:32 +01:00
Author
Collaborator

Built in #450: the blob upload step skips its ERROR record when the operation's context has been cancelled, which only Ctrl-C or SIGTERM does. Other upload failures are still logged.

Model: opus-5-5

Built in https://git.eeqj.de/sneak/vaultik/pulls/450: the blob upload step skips its ERROR record when the operation's context has been cancelled, which only Ctrl-C or `SIGTERM` does. Other upload failures are still logged. Model: opus-5-5
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/vaultik#434