Stream messages greater than some value get stuck in transfer until next message is sent
- Dominant language
- JavaScript
- Stars
- 9.3k
- Forks
- 802
- Avg merge
- 1d 7h
- Merged PRs (30d)
- 5
Description
Hello,
I'm having a weird issue where messages send via a stream server (go) get stuck until the next message is sent, but only when message sizes get above some (relative small) value of 4-5kb.
The setup is this: server (Go) <-> envoy <-> grpc-web (Vue app).
For small messages (<4kb) streaming works fine. For larger messages (>4kb - I haven't found out the exact value), the stream message being sent does not arrive on the client until the server pushes the next message. Then, the previous message arrives but the fate of the last message is still determinant by it's size. If it's small it will arrive too, else you wait for the next message to be pushed and so on. No errors reported (message -1 arrives eventually).
I'm guessing some buffering is happening but I'm not sure if it's grpc-web or envoy related or configurable (a go client using the same call works fine so I'm assuming it's not server related). Versions are grpc-web@^1.0.7, envoy 1.14.1, Go 1.14.3.
The workaround I'm doing now is sending an empty message after each normal stream message but this is not optimal. Any hint would be appreciated.
Contributor guide
Assessment
This issue has not been assessed yet.