mirror of
https://github.com/narrrl/proton-drive-linux.git
synced 2026-11-04 00:47:00 +01:00
FUSE delivers `release` after `close()` returns, and the release is what attaches the written bytes to the queued create. A drain worker that is free can claim the create first and send the file empty, with the bytes following as a revision. Tests that hold a create, its reply, or lose its reply then act on the empty create, and their assertions about the file's content race the revision. CI saw this as an occasional failure of a_listing_taken_before_a_create_commits_keeps_the_landed_file. Add Daemon::write_new, which pauses sync, writes the file, waits until the pending create carries the bytes, and resumes. Use it for every write that directly follows a create hold.