hyperium / tonic

A native gRPC client & server implementation with async/await support.
https://docs.rs/tonic
MIT License
10.02k stars 1.02k forks source link

Large packets (2GB) don't get sent #352

Open Jasper-Bekkers opened 4 years ago

Jasper-Bekkers commented 4 years ago

Bug Report

It takes Tonic approximately ~25 seconds to prepare a packet when it's 2GB in size, but ultimately it doesn't get received by the localhost server and the client just sits idle. Gave up after 5 minutes of waiting.

image

Minimal repro attached

tonic-repro.zip

LucioFranco commented 4 years ago

@seanmonstar you may be interested

Matthias247 commented 4 years ago

This will just be a collection of various worst-case scenarios again:

Fixes:

Jasper-Bekkers commented 4 years ago

Surely though; they should still arrive properly?

seanmonstar commented 4 years ago

Yep, I just checked with logs turned on, the chunk is rejected for a wrong reason (woops). I'll file an issue on the h2 repo.

repi commented 4 years ago

@seanmonstar this issue https://github.com/hyperium/h2/issues/471?

LucioFranco commented 4 years ago

Sounds about right. Tonic doesn't do any sort of checking for that and delegates to h2.