Make an S3 listing the server cuts short an error (closes #297)
check / check (push) Waiting to run
check / check (push) Waiting to run
The SDK paginator takes a listing page marked truncated but carrying no continuation token for the last page and stops without an error. A server answering V2 listings V1-style sends such pages, so ListObjects and ListObjectsStream returned the first page as the whole listing, and prune treated the blobs of the snapshots on later pages as unreferenced. Both now fetch each page through nextListPage, which returns ErrNoContinuationToken for such a page; prune, snapshot list and remote nuke already handle a listing error. The test serves a fixed reply from a stub server, since gofakes3 always sends the token. Model: opus-5-5
This commit is contained in:
@@ -22,6 +22,15 @@ the tag exists and is exercised; what is left is merging `next` to
|
||||
|
||||
# Completed Steps
|
||||
|
||||
- 2026-10-13: Made an S3 listing that the server cuts short an error
|
||||
([issue #297](https://git.eeqj.de/sneak/vaultik/issues/297)). A page
|
||||
marked truncated with no continuation token, as a server answering V2
|
||||
listings V1-style sends, ended the listing without an error, so
|
||||
`prune` saw only the snapshots on the first page and could delete
|
||||
blobs the rest still use. Such a page is now a listing error, and
|
||||
`prune`, `snapshot list` and `remote nuke` handle it as a destination
|
||||
that cannot be listed.
|
||||
|
||||
- 2026-10-13: Made `snapshot remove` fail for a snapshot that does not
|
||||
exist ([issue #293](https://git.eeqj.de/sneak/vaultik/issues/293)).
|
||||
The command never checked the ID: it reported the snapshot removed
|
||||
|
||||
Reference in New Issue
Block a user