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

Retry thrift calls when decoding fails due to retryable error #575

Open
prashantv opened this issue Jan 31, 2017 · 0 comments
Open

Retry thrift calls when decoding fails due to retryable error #575

prashantv opened this issue Jan 31, 2017 · 0 comments

Comments

@prashantv
Copy link
Contributor

Apache Thrift wraps errors as a string, which makes it hard to get to the underlying error.

We see errors like:

*[struct] error reading struct: *[struct] error reading struct: *[struct] error reading struct: error reading field 4: tchannel error ErrCodeNetwork: tchannel: socket closed, remote closed

The CanRetry method does not unwrap these errors (since there's no strong type currently), which means that a network error that happens during thrift decoding will not be retried.

This only tends to affect large calls (>64kb) since calls less than 64kb fit in a frame, and thrift decoding only starts after processing the headers in the first frame.

@hanjunx
Copy link

hanjunx commented Feb 1, 2017 via email

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

No branches or pull requests

2 participants