FluidFramework icon indicating copy to clipboard operation
FluidFramework copied to clipboard

Tombstone local pending blobs to be resilient to reupload

Open dannimad opened this issue 7 months ago • 2 comments

When a blob attach op is reuploaded (resubmit/ expired or stashed scenarios), we could hit asserts checking for its existence in the pending blob list if such op was already processed. Adding a tombstone list to make sure we recognize such blobs

dannimad avatar Apr 14 '25 22:04 dannimad

opSent does not prevent us to resubmit the op (look at reSubmit method). The scenario is: -blob is uploaded -op is sent -disconnect -reconnect after TTL expires which triggers sendBlobAttachOp logic for expired blob which is simply reuploading the blob. -once the blob uploads, another blob attach op will be sent. Checking the failing test should help to understand the scenario.

I never quite understood opsInFlight logic so it may be that a Set is more appropriate. I can't think of a scenario in which one response id has multiple local Ids. I'll test it and see if something fails.

dannimad avatar Apr 15 '25 16:04 dannimad

This PR has been automatically marked as stale because it has had no activity for 60 days. It will be closed if no further activity occurs within 8 days of this comment. Thank you for your contributions to Fluid Framework!