grpc / grpc/grpc-rust

Hang after request has begun, but before the message is received off the wire

Open
#1,149 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
12.5k
Forks
1.3k
Avg merge
4d 7h
Merged PRs (30d)
24

Description

## Bug Report

### Version

```
tonic 0.8.2
tonic-build 0.8.2
```

### Platform

```
Linux remoting-storage-server-85dcb67bbc-r92pc 5.4.209-116.367.amzn2.x86_64 #1 SMP Wed Aug 31 00:09:52 UTC 2022 x86_64 GNU/Linux
```

### Description

When a `concurrency_limit_per_connection` is set and exceeded (i.e., set to 64, and an `InFlightRequests` layer shows 64 requests in flight), I have a reproducible situation where a server hangs in: https://github.com/hyperium/tonic/blob/33e22bbc5ef1b74de82394c3ebfea27382419620/tonic/src/server/grpc.rs#L287-L290 ... waiting for a command to arrive off the wire.

Given that this is the server waiting for the client (which is also a tonic service) to do something, it seems likely that the client is to blame in some way... but hanging after having received the headers of the request, but before the request message has arrived felt very suspicious.

I hesitated to file this because I don't have enough information to reproduce it in isolation, but:
* it is unique enough that it's possible that there is still a useful diagnosis to be made
* _I_ can repro it, and so if you have any ideas about where to look in the client, that would be helpful

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.