-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
RST_STREAM error from grpc via Bidi in Firestore Client Library #9890
Comments
In Go we retry on far more error codes,
|
Does retry mean that documents will be re-downloaded/do I get charged for it? |
In this case retry/recover has more to do with the channel stopping due to exceeding allowed lifetime. This time seems to be at around an hour. While I am not certain of this, I think, due to not knowing how long it took to connect and what might have happened between the disconnect/reconnect, we do need to resynchronize the local model so I think we will have to redownload the references to the document references under watch. |
I get it. But this doesn't resolve an actual problem with Firestore. Running a thread that will check |
@linevych the plan isn't to restart the stream so in theory this should be minimum amount of effort needed. I ran it for a couple of days and it didn't need to restream all the data, just notify of no change. So this seems to be what you would desire. I was being cautious to state such a thing without being sure. Currently the fix in #9995 should resolve this. |
https://pypi.org/project/google-cloud-firestore/1.6.1/ is released and contains the change to widen retries. |
@crwilcox hi, looks like a restart of the stream does happen, here are the logs and example source code for it: https://gist.github.com/linevych/3480c133d6a839f2b04ee2dd4caa8a93 As you can see from the graph we are still getting billed for this. |
The Python library should use the resume token from the previous session when it re-establishes the stream. Any further document updates should be merged with the state of the Snapshot at the time of the resume token. If properly implemented, documents that don't change will not be re-read. |
Implementing a watch/listen in Firestore, waiting a while (some reports of 30, 60, and 120 minutes) results in an unhandled RST_STREAM error. We should investigate if this can be handled.
Related to firebase/firebase-admin-python#282
Output and repro code at: https://gist.github.com/crwilcox/0ed944c7afa70a6a78dd8e8e76ebf1fd
The text was updated successfully, but these errors were encountered: