-
-
Notifications
You must be signed in to change notification settings - Fork 324
Reset queued streams on recv_err
#259
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
Conversation
dda5bfc to
5210132
Compare
| err, state, queued | ||
| ); | ||
| self.inner = Closed(match *err { | ||
| Proto(reason) => Cause::LocallyReset(reason), |
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.
I don't think this will work as-is: recv_reset sets the state to Closed(Cause::Proto(_)), which lets the stream be considered is_peer_reset - but here we use a different Cause.
|
Can a test be added demonstrating the fix? Also, I think @goffrie's comment is correct. To be honest, I find it very strange that |
|
It looks like @seanmonstar added |
|
I understand |
|
If #261 is merged, it would also fix the issue this PR is trying to fix. (though, a test would still be 👍 ) |
|
@carllerche et al, I think moving forward with #261 is the correct way to solve this issue, which is why I haven't touched this PR since that branch opened. |
|
Ok, #261 was merged. As described there, the failure case is not easy to write up in a test and any attempt would be very brittle as it relies on a particular sequence of ready / not ready results from |
See #258 (comment) --- the same changes made in
recv_resetin #258 should also probably be made inrecv_err.