Fix reupload blob if expired. #24346
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Reuploading an expired blob with the original localId caused a bug using blob placeholder approach since we remove pending blobs that are both acked and attached. So when we retry to upload the blob, it was already deleted since we're attached from the beginning in placeholder approach.
I believe maybe trying to reupload with the same localId was a bug since the beginning but in any case, reuploading with a clean localId seems a more reasonable approach. In case of blob expiration, we reupload the blob with a new localId, and fake an attach for the previous one so it gets removed once its op is processed.