You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If GrpcRetryer gets some retryable exception enough times that it ends in DEADLINE_EXCEEDED, it will throw DEADLINE_EXCEEDED as the main exception outside, losing information about previous exceptions that actually made us continue retrying and this can hurt debuggability and ease of investigations for our users. Because most application developers will be actually interested in the underlying exception that made us retrying all this time.
Proposed solution:
If DEADLINE_EXCEEDED happened during retries, we can discard DEADLINE_EXCEEDED and return a previous exception if it exists.
It's probably the cleanest way because it simulates what happens during a normal timeout.
But what if the code that uses GrpcRetryer relies on DEADLINE_EXCEEDED exception to detect the expiration of GRPC deadline? It will quickly get DEADLINE_EXCEEDED on the next GRPC operation. We need to discuss if it's good enough and if this approach is safe.
The text was updated successfully, but these errors were encountered:
Sushisource
changed the title
GrpcRetryer could loose a real cause in case of DEADLINE_EXCEEDED
GrpcRetryer could lose a real cause in case of DEADLINE_EXCEEDED
Aug 24, 2021
If GrpcRetryer gets some retryable exception enough times that it ends in DEADLINE_EXCEEDED, it will throw DEADLINE_EXCEEDED as the main exception outside, losing information about previous exceptions that actually made us continue retrying and this can hurt debuggability and ease of investigations for our users. Because most application developers will be actually interested in the underlying exception that made us retrying all this time.
Proposed solution:
If DEADLINE_EXCEEDED happened during retries, we can discard DEADLINE_EXCEEDED and return a previous exception if it exists.
It's probably the cleanest way because it simulates what happens during a normal timeout.
But what if the code that uses GrpcRetryer relies on DEADLINE_EXCEEDED exception to detect the expiration of GRPC deadline? It will quickly get DEADLINE_EXCEEDED on the next GRPC operation. We need to discuss if it's good enough and if this approach is safe.
The text was updated successfully, but these errors were encountered: