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

An exception on an RPC call causes the whole connection to fail #102

Closed
edsko opened this issue Mar 7, 2024 · 3 comments · Fixed by #210
Closed

An exception on an RPC call causes the whole connection to fail #102

edsko opened this issue Mar 7, 2024 · 3 comments · Fixed by #210
Assignees
Labels
bug Something isn't working priority: high Usability of the library severely hindered

Comments

@edsko
Copy link
Collaborator

edsko commented Mar 7, 2024

I think that this is a limitation of http2, but I do not know for sure. One potential clue I found during debugging this is that perhaps things go wrong in http2 is we throw an exception in outboundTrailersMaker, but I don't know if that is a red herring or not.

To reproduce this, change clientGlobal in Test.Driver.Dialogue.Execution to always use a single connection, and plenty of test cases will start to fail.

@edsko edsko added bug Something isn't working priority: medium Should be done before the library can be considered complete labels Mar 7, 2024
@edsko edsko added priority: high Usability of the library severely hindered and removed priority: medium Should be done before the library can be considered complete labels Jul 3, 2024
@edsko
Copy link
Collaborator Author

edsko commented Jul 11, 2024

It's conceivable that #187 fixed this.

@edsko
Copy link
Collaborator Author

edsko commented Jul 26, 2024

It's looking like this might have swung to the other extreme. In demo-client.md , section "Automatic reconnect", we describe what should happen to a streaming connection when the server disappears (we expect the call to fail). However, this is not actually happening (anymore?). Instead, we get

demo-client: KilledByHttp2ThreadManager (Just ConnectionIsTimeout)

This happens whether or not the server is restarted in the meantime.

@FinleyMcIlwaine
Copy link
Collaborator

I'm seeing that this change in behavior was introduced by #183. At that commit (41b5f2aae727c011921976b68b69e200d9565bba) the demo client started failing with KilledByHttp2ThreadManager rather than CallClosedWithoutTrailers when the server disappears on a streaming connection.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working priority: high Usability of the library severely hindered
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants