mirror of
https://github.com/narrrl/proton-drive-linux.git
synced 2026-11-03 16:41:26 +01:00
A write open copies the queued revision's blob into its scratch file. When the upload landed between the sample and the copy, the drain had already deleted the blob, and the open failed with EIO (B274, seen once in CI). The drain drops the pending entry before the blob, so a failed copy whose entry moved on now goes around again, as the re-check after the copy already does. Two simulations raced the daemon rather than it: - a_file_deleted_after_a_restart_leaves_drive_with_what_its_create_sent let the create's reply through before the kernel's release attached the second bytes. That attach resets the attempts, so the retry landed before the test could see the failure. It now waits for the bytes to be attached. - a_file_deleted_offline_while_open_still_reads_and_takes_writes read the cache as the queue emptied, which is a moment before the eviction. It now waits for the cache to empty.