-
Notifications
You must be signed in to change notification settings - Fork 50
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
Spanner emits 14-UNAVAILABLE GOAWAY #861
Comments
We have an issue open with google, inquiring on the best way to deal with this and if GOAWAYS are some indication of misbehavior on our end. |
Some information on GOAWAYS from gRPC's perspective:
GOAWAY indicates that the server wants the client to send no new RPCs on this connection. If the client has more RPCs to send, it should open a new connection. It is OK to wait for existing RPCs to finish before closing the connection.
The GOAWAY is server behavior independent of the client, but client behavior such as keeping connections around for longer can trigger it. Many servers send GOAWAY after a fixed duration (say 1 hour) to force clients to reconnect. It is also common for servers to send GOAWAY after a period of inactivity (say 10 minutes) on the connection.
See https://tools.ietf.org/html/rfc7540#section-6.8
|
To reduce the number of GOAWAYS we should try:
|
Reducing the total number of connections has helped the number of GOAWAYS, one extreme example: 300 max conns: vs 30: But there's still too many |
* Two new optional arguments: _database_pool_connection_lifespan_ = max connection lifespan (in seconds) _database_pool_connection_max_idle_ = max idle time (in seconds) TODO: Tests Issue: #861
* feat: kill old or excessivly idled connections * Two new optional arguments: _database_pool_connection_lifespan_ = max connection lifespan (in seconds) _database_pool_connection_max_idle_ = max idle time (in seconds) * add reporting (sorta) of connection lifespans to appropriate errors Issue: #861
Initial lifespan/max_idle settings: issue1698211 |
We began seeing
14-UNAVAILABLE GOAWAY received
errors after the 0.5.x release to prod, e.g.:https://sentry.prod.mozaws.net/operations/syncstorage-stage/issues/9186276/
These result in 500 errors (which in turn are 503s from nginx).
The text was updated successfully, but these errors were encountered: