Skip to content
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

Avoid (potential) infinite reconnect loops in reader module #219

Open
tswast opened this issue Jun 29, 2021 · 1 comment
Open

Avoid (potential) infinite reconnect loops in reader module #219

tswast opened this issue Jun 29, 2021 · 1 comment
Labels
api: bigquerystorage Issues related to the googleapis/python-bigquery-storage API. type: process A process-related concern. May include testing, release, or the like.

Comments

@tswast
Copy link
Contributor

tswast commented Jun 29, 2021

Currently we always reconnect on "RST_STREAM" errors:

except _STREAM_RESUMPTION_EXCEPTIONS:
# Transient error, so reconnect to the stream.
pass
self._reconnect()

This may cause some infinite loops, especially if we add other errors such as UNAUTHENTICATED to the stream resumption logic to support customer issue 191460918. Pub/Sub and Firestore have already solved this with the shared BiDi (bi-directional) classes.

Resources:

@product-auto-label product-auto-label bot added the api: bigquerystorage Issues related to the googleapis/python-bigquery-storage API. label Jun 29, 2021
@tswast tswast added the type: process A process-related concern. May include testing, release, or the like. label Jun 29, 2021
@tswast
Copy link
Contributor Author

tswast commented Sep 21, 2021

BiDi classes should not be used, as read_rows is not a bi-directional streaming API.

@tswast tswast changed the title Use BiDi classes for Reader Avoid (potential) infinite reconnect loops in reader module Sep 21, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api: bigquerystorage Issues related to the googleapis/python-bigquery-storage API. type: process A process-related concern. May include testing, release, or the like.
Projects
None yet
Development

No branches or pull requests

1 participant