mirror of
https://github.com/narrrl/proton-drive-linux.git
synced 2026-11-04 08:56:59 +01:00
The account run of 3.3.0 failed "move refuses a file still being written" on the on-demand to mirror pairing: pdfs move moved the folder while open.txt in it was open for writing, and the write landed after the move. retire_create re-keys a landed create's nodes row to the real uid first and repoints the tree and the open write handles after. A file opened in between holds a handle with the placeholder uid. has_pending_work_under placed each open handle by looking its uid up in the nodes table, which no longer has the placeholder, so it saw nothing open under the folder, and with the queue already empty the move went ahead. Open handles are now placed in the in-memory tree by inode, which a landing create does not change. The simulation test holds the drain at that point with the new FakeClient::hold_next_landing_of_any, and fails without the fix.
Documentation
For users
| Page | What it covers |
|---|---|
| Installation | Packages, building from source, first sign-in, updating and uninstalling |
| User guide | My files, available offline, synced folders, sync issues and conflicts, Photos, sharing, Trash and versions, Computers, the search launcher, the tray |
| Command-line reference | Every pdfs command, grouped by task, and scripting with --json |
| Configuration | config.json, environment variables, file locations, the systemd service |
| Troubleshooting | Diagnosing problems, common symptoms, starting over, reporting a bug |
| Recovering on a new computer | What survives a lost machine and how to restore your synced folders |
| Security model | What protects your files, what is kept on this computer, what the client connects to |
| Changelog | What changed in each release |
For contributors
| Page | What it covers |
|---|---|
| Development guide | Building, running and debugging from source; common changes; releasing |
| Architecture | Crates, the local tree, read and write paths, the queue, the sync engine, the control protocol, threads, threat model |
| Testing | Unit tests, simulation runs and the FUSE acceptance suite |
| Translating | Adding and updating translations |
| Roadmap | Planned work and verification still owed |
| Bug ledger | Every tracked defect with its analysis and status |
Also see CONTRIBUTING.md and SECURITY.md in the repository root.