mirror of
https://github.com/narrrl/proton-drive-linux.git
synced 2026-11-03 16:41:26 +01:00
fix(core): a file deleted after its failed create was written again leaves Drive (B191)
This commit is contained in:
1 parent
1436c5f37e
commit
57a825887c
4 files changed
+71
-3
No files matched your search
@@ -12,6 +12,25 @@ Conventions:
|
||||
|
||||
---
|
||||
|
||||
## B191 — A file deleted after its create failed and was written again can stay on Drive
|
||||
|
||||
**Status:** Fixed (unverified).
|
||||
**Found:** 2026-10-05, in the confirmation run on 1436c5f (`one_client_on_a_flaky_link` seed 11,
|
||||
one replay in six). A create of `a.txt` got no answer, though Drive had made the file. The file
|
||||
was written again, renamed twice and deleted. Drive kept `a.txt`, and nothing was queued.
|
||||
|
||||
**Where:** `drop_doomed_ops` in `crates/pdfs-core/src/db/ops.rs`.
|
||||
|
||||
**Cause.** A delete turns a create that was sent into a trash of what it may have made (B151).
|
||||
Whether it was sent was read from its attempts and its claim. A write after the failure attaches
|
||||
its bytes to the create and clears the attempts, so that the retry goes out at once
|
||||
(`Db::attach_blob_to_create`). The delete then took the create for one never sent, and dropped
|
||||
it whole.
|
||||
|
||||
**Fix.** A create with a target recorded (`sent_to`, B184) counts as sent as well. Test
|
||||
`a_create_rewritten_after_it_failed_still_leaves_a_trash_when_deleted` in
|
||||
`crates/pdfs-core/src/db/tests.rs`.
|
||||
|
||||
## B190 — A file saved just before the daemon stops can keep its old content on Drive
|
||||
|
||||
**Status:** Fixed (unverified).
|
||||
|
||||
Reference in new issue
Block a user