Unbounded Client Streaming Bug (with repro)
Nobody has claimed this yet.
- Dominant language
- Ruby
- Stars
- 160
- Forks
- 14
- Avg merge
- 6d 11h
- Merged PRs (30d)
- 2
Description
Hi grpc_kit,
I've got a bug I can't debug myself. I ended up within the are of DS9 and couldn't figure out what was going on so I couldn't fix it myself.
Basically the issue I ran into was when client is streaming from an unending source it would just stop yielding messages at some point. It LOOKED like the socket stopped receiving data from what I could tell.
I've reproduced the problem (or similar) in the following git repo which has more notes. This is just a slightly hacked up routeguide so that it is unending. I'd expect it to never end, but the client starts missing messages and eventually it stops receiving all messages. This is over the course of minutes, not immediately.
https://github.com/brocktimus/grpc-kit-stream-repro
The server in this case also continue to stream, even when the client has disconnected. But I'm not as concerned about that one in my exact use case since I'm only streaming as a client and not a server.
Thanks, I really like the project. The forking server model for griffin looks fantastic.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Clone and run the linked grpc-stream-repro repository, starting with its hacked-up routeguide and notes to reproduce the unbounded client-streaming failure. Trace why messages stop arriving over several minutes and verify that the client continues receiving messages from the unending source without the server-side disconnect behavior being required.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ruby
- Domain
- api, backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100