Open FinleyMcIlwaine opened 1 month ago
I suspect this is not directly related to #137 (perhaps it made some non-determinism happen slightly differently). We're seeing this call to undefined
when the server dies.
I think the problem is that the background threads are terminating normally (without an exception) when the server dies (maybe only sometimes?).
The background threads (receiver
, sender
, etc) can finish earlier than client
.
For instance, the server can send GOAWAY
.
We need to decide how to treat this situation and then replace the undefined
with proper code.
Any opinion?
Funny that you are looking at this again, we've been looking at this also :) We think the fix isn't hard, but we hadn't had the time yet to take a look, hopefully soon (this week). PR will be coming soon!
Thanks in advance.
GOAWAY contains a stream ID. This is important information for clients because streams whose stream ID is larger than this value can be resent safely in a new connection. So, I guess that a client should received this value from the background threads.
It seems the new exception handling behavior introduced in #137 has uncovered a previously unreachable path. I'm seeing
Prelude.undefined
errors during some of the stress tests for our gRPC library