-
Notifications
You must be signed in to change notification settings - Fork 927
Fix out-of-order execution for enqueueRetryable #3919
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
🦋 Changeset detectedLatest commit: 00f6cd9 The changes in this PR will be included in the next version bump. This PR includes changesets to release 9 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
@@ -0,0 +1,5 @@ | |||
--- | |||
"@firebase/firestore": patch |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we also need a patch for the firebase-wide package?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe that we don't need to for a patch release, since every release is at least a minimum patch version bump.
Binary Size ReportAffected SDKs
Test Logs |
We currently do follow the global order of AsyncQueue operations when we insert items into the retryable queue. This seems to allow operations that inserted into the retryable queue to skip ahead of items that are inserted into the regular queue. This PR ties the insertion of new items to the retryable queue to the order in which all items are enqueue.
I still am not able to reproduce the original failure in a unit test (tried various delays, various order of operations, scheduling operations while other operations are running), but this code change addresses the consistent Integration tests failures in a follow-up PR.