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

ops: Classify HTTP/2 Go Away and I/O Broken Pipe errors as transient #841

Merged

Conversation

iamjpotts
Copy link
Contributor

@iamjpotts iamjpotts commented Sep 9, 2024

Description:

Additional transient error detection for:

  • HTTP/2 Go Away responses
  • std I/O broken pipe errors

Related issue(s):

Depends on #840.

Notes for reviewer:

This error will get retried (note that sample shows new designation as a warning; previously it was an error that did not get retried):

2024-09-09T00:13:03.664369Z  WARN hedera::execute: Execution of hedera::query::Query<hedera::account::account_balance_query::AccountBalanceQueryData> on node at index 1 / node id 0.0.4 will continue due to GrpcStatus(Status { code: Internal, message: "h2 protocol error: http2 error: connection error received: not a result of an error", source: Some(tonic::transport::Error(Transport, hyper::Error(Http2, Error { kind: GoAway(b"", NO_ERROR, Remote) }))) })

This broken pipe error will also get retried:

2024-09-09T02:15:35.996609Z  WARN hedera::execute: Execution of hedera::query::Query<hedera::account::account_balance_query::AccountBalanceQueryData> on node at index 0 / node id 0.0.3 will continue due to GrpcStatus(Status { code: Unknown, message: "transport error", source: Some(tonic::transport::Error(Transport, hyper::Error(Io, Custom { kind: BrokenPipe, error: "stream closed because of a broken pipe" }))) })

Checklist

  • Documented (Code comments, README, etc.)
  • Tested (unit, integration, etc.)

No additional tests, due to difficulty in unit testing hyper error responses due to lack of public constructors for hyper errors.

@iamjpotts iamjpotts changed the title 20240908 addl transient error detection ops: Classify HTTP/2 Go Away response as a retryable transient error Sep 9, 2024
@iamjpotts iamjpotts changed the title ops: Classify HTTP/2 Go Away response as a retryable transient error ops: Classify HTTP/2 Go Away and I/O Broken Pipe errors as transient Sep 9, 2024
@iamjpotts iamjpotts force-pushed the 20240908-addl-transient-error-detection branch from c01d31d to 1056cb1 Compare September 20, 2024 13:55
@iamjpotts iamjpotts marked this pull request as ready for review September 24, 2024 22:28
@iamjpotts iamjpotts requested review from a team as code owners September 24, 2024 22:28
@iamjpotts iamjpotts force-pushed the 20240908-addl-transient-error-detection branch from d7b5030 to e064b8d Compare September 27, 2024 18:23
@RickyLB RickyLB merged commit babbf37 into hiero-ledger:main Sep 30, 2024
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants