grpc / grpc/grpc-web

Stream messages greater than some value get stuck in transfer until next message is sent

Open
#820 3 comments 1 reaction 0 assignees View on GitHub
Help welcome!
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.