fix(core,fuse): a deleted file's trash is not held back by its create (B171)

A file deleted after its create was sent keeps the op as a trash. The op
kept the create's attempts and backoff, and the drain recorded the failure
of a create attempt still on the wire on the row that was by then the trash.
The trash waited out the create's backoff.

The trash starts due, as a create that becomes a revision does, and the
drain records a failed attempt only if the op is still the kind it ran as
(`Db::record_attempt_failure`).
This commit is contained in:
nvrl committed 2026-10-04 21:23:10 +02:00
1 parent 2502af6e3c
commit e32f72bfca
6 files changed
+116 -5

No files matched your search

+2 -1
View File
@@ -394,8 +394,9 @@ impl Core {
.min(DRAIN_BACKOFF_MAX)
};
warn!(uid = %op.uid, attempts, error = %err_str, "pending upload failed; will retry");
if let Err(e) = self.db.record_op_failure(
if let Err(e) = self.db.record_attempt_failure(
op.id,
&op.kind,
&err_str,
now_millis() + backoff.as_millis() as i64,
) {