fix(fuse): a file deleted just as its create lands is trashed on Drive (B173)

This commit is contained in:
nvrl committed 2026-10-04 21:51:52 +02:00
1 parent 3b81cc5240
commit 378667fb37
7 files changed
+83 -8

No files matched your search

+22
View File
@@ -12,6 +12,28 @@ Conventions:
---
## B173 — A file deleted just as its create lands stays on Drive
**Status:** Fixed (unverified).
**Found:** 2026-10-04, by `one_client_on_a_good_link` (seed 12) on d850265, run three at a time
in a loop: one of nine runs failed. A deleted `c.bin` was still on Drive with its old bytes,
and the next `c.bin` made on the mount landed as a conflict copy beside it.
**Where:** `trash_child` in `crates/pdfs-fuse/src/filesystem.rs`.
**Cause.** When a create lands, the drain retires its op and moves the node's row to the uid
Drive gave it, then gives the tree that uid. In between, it caches the uploaded bytes. A delete
in that gap still found the file under its stand-in, found no op left to drop, and took it for
a file Drive had never seen. So nothing trashed it on Drive.
**Fix.** After dropping a stand-in's ops, the delete checks whether the node's row has a real
uid. If it has, the create landed first, and the file is trashed on Drive like any other.
**Test:** `a_file_deleted_as_its_create_lands_is_trashed_on_drive` in
`crates/pdfs-fuse/src/sim/daemon.rs`, which holds the drain between the two steps.
---
## B172 — A file renamed while its upload is read back shows its old name
**Status:** Fixed (unverified).