You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For some background, I ended up hitting a corner case where a bidirectional gRPC stream (via grpcbox) was closing out on an error before any messages were exchanged. The observed behavior ended up being a timeout on a call to grpcbox_client:recv_data/2. Tracing this down it appears that chatterbox isn't properly following the RST_STREAM protocol which leaves grpcbox in limbo.
I tried to base these new state transitions off the diagram in RFC7540 5.1. Once adding this I appear to be getting the underlying error message that's causing the stream to fail though I'm not even certain on the mechanics of how that's delivered inside grpcbox.
Also given grpcbox, this is also based off @tsloughter's 0.9.1 tag so it won't apply cleanly here. The issues tab is disabled on that fork so I'm posting this here as I haven't got a clue one where better to post it.
Thanks, this it the place to post it, I maintain this as well. I haven't merged in my client changes from my fork yet because I found them to be a bit hacky and haven't had time to clean them.
I can try to get some time this week to finally do that so we have a single base to work off of. It is simple shit like a callback I added doesn't check for existence and should probably be able to return stop.
Though I remember some other client patches from others that need cleaning to, some messages get sent in too adhoc of a way to be good.
Ah, cool. Glad I found the right place on the first try.
Also yeah, I didn't bother forking and opening a PR precisely cause it was hard to tell if I was anywhere near correct in my approach. For instance, I'm fairly certain my recv_rs callbacks end up triggering multiple eos messages back to the client process which seems Not Very Good™.
For some background, I ended up hitting a corner case where a bidirectional gRPC stream (via grpcbox) was closing out on an error before any messages were exchanged. The observed behavior ended up being a timeout on a call to
grpcbox_client:recv_data/2
. Tracing this down it appears that chatterbox isn't properly following the RST_STREAM protocol which leaves grpcbox in limbo.I tried to base these new state transitions off the diagram in RFC7540 5.1. Once adding this I appear to be getting the underlying error message that's causing the stream to fail though I'm not even certain on the mechanics of how that's delivered inside grpcbox.
Also given grpcbox, this is also based off @tsloughter's 0.9.1 tag so it won't apply cleanly here. The issues tab is disabled on that fork so I'm posting this here as I haven't got a clue one where better to post it.
The text was updated successfully, but these errors were encountered: