-
Notifications
You must be signed in to change notification settings - Fork 16
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
RetryingChannel retries IOExceptions rather than all Throwables #644
Conversation
Generate changelog in
|
👍 |
SHouldn't we have some more test coverage for this? |
What do you envision? |
I'm worried that we often have these quite specific unit tests that capture behaviour of a single class, but when we combine them all to make our big DialogueChannel we sometimes get unexpected behaviour. Like for instance the |
heh, that one was the issue that prompted me to think about this :-) When our queue is full I think it's best to fail fast rather than dropping onto a second time-bounded queue. Another example is when we send a GET with a body, we throw a SafeIllegalArgumentException which definitely shouldn't be retried. |
Ok so I think either some kind of integration test that captures this, or a simulation test case that exercises it would be good. |
IOExceptions are thrown by clients when calls fail in unexpected ways. Other exceptions indicate programming or system errors that cannot be recovered from.
092109d
to
045f8af
Compare
testing was more involved than I anticipated, heh. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
Released 1.18.0 |
IOExceptions are thrown by clients when calls fail in unexpected
ways. Other exceptions indicate programming or system errors that
cannot be recovered from.
Before this PR
Burn retries on requests that cannot succeed.
After this PR
==COMMIT_MSG==
RetryingChannel retries IOExceptions rather than all Throwables
==COMMIT_MSG==
Possible downsides?
We may discover other exceptions that we do want to retry that aren't IOExceptions.