mirror of
https://github.com/narrrl/proton-drive-linux.git
synced 2026-11-04 00:47:00 +01:00
fix(fuse): land a conflict copy in the root when its folder is gone (B150)
This commit is contained in:
1 parent
50ae25bb88
commit
23dc5c3723
5 files changed
+78
-3
No files matched your search
@@ -12,6 +12,26 @@ Conventions:
|
||||
|
||||
---
|
||||
|
||||
## B150 — A conflict copy whose folder is gone retries forever
|
||||
|
||||
**Status:** Fixed (unverified).
|
||||
**Found:** 2026-10-04, by the journal check of the account run on a6f36d5: 33 warnings, one
|
||||
every two minutes for the whole run, all "queued write conflicts; keeping a conflict copy" for a
|
||||
`write.bin` from an earlier run's B79 case, each followed by `DoesNotExist` from Drive.
|
||||
|
||||
**Where:** `Core::keep_as_conflict_copy` in `crates/pdfs-fuse/src/drain.rs`.
|
||||
|
||||
**Cause.** A queued write to a file that was trashed or deleted on Drive is kept as a conflict
|
||||
copy beside the file. When the file's folder was deleted too, the upload into it failed, the op
|
||||
backed off and tried again, with no end. The copy only fell back to the root when the tree had
|
||||
forgotten the file, not when Drive had lost its folder.
|
||||
|
||||
**Fix.** The copy checks that the folder is still on Drive and not trashed, and lands in the
|
||||
location's root otherwise. Sim test `a_queued_write_whose_folder_was_trashed_lands_in_the_root`.
|
||||
|
||||
**Left open.** How the B79 case's bytes stayed in `staging/` after the file was deleted, so that
|
||||
the next start queued them again ("reconciled orphaned staged writes queued=1"), is not known yet.
|
||||
|
||||
## B149 — `pdfs rename` or `pdfs move` right after a rename through the mount is undone
|
||||
|
||||
**Status:** Fixed (unverified).
|
||||
|
||||
@@ -33,6 +33,8 @@ folder by local id too.
|
||||
for this release.
|
||||
|
||||
### Fixed
|
||||
- **A change to a file deleted elsewhere, together with its folder, no longer retries forever.**
|
||||
The conflict copy that keeps it now lands in the location's root (B150).
|
||||
- **`pdfs rename` and `pdfs move` right after a change through the mount are no longer undone.**
|
||||
They are queued behind it, and they work on a file that has not reached Drive yet (B149).
|
||||
- **A folder kept offline before it reached Drive stays kept offline.** Its pin was lost when the
|
||||
|
||||
@@ -9,7 +9,7 @@ Tracks `docs/MILESTONE-3.0.0.md`. Update it with every commit that moves a phase
|
||||
- **Phase 2**: local ids, inode = local id, one tree for every mount (2.10.0).
|
||||
- **Phase 3, first part**: mkdir, create, rename, unlink and rmdir on the mount are recorded
|
||||
locally and sent from the queue; `"local_first": false` brings back the old path (5e0f30c).
|
||||
- Fixes from the simulation and account runs since then: B141 to B149.
|
||||
- Fixes from the simulation and account runs since then: B141 to B150.
|
||||
- **Sync issues, first cut** (§6.2): refusals sorted into issues, shown at once in the app,
|
||||
tray and CLI; Export button and `pdfs sync export`; `pdfs sync issues`.
|
||||
|
||||
|
||||
Reference in new issue
Block a user