FluidFramework
FluidFramework copied to clipboard
Tombstone local pending blobs to be resilient to reupload
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
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.
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!