Skip to content

tonic-reflection: fix panic when client drops connection early#2596

Merged
LucioFranco merged 1 commit into
grpc:masterfrom
bmwill:reflection-fix
Apr 20, 2026
Merged

tonic-reflection: fix panic when client drops connection early#2596
LucioFranco merged 1 commit into
grpc:masterfrom
bmwill:reflection-fix

Conversation

@bmwill

@bmwill bmwill commented Apr 19, 2026

Copy link
Copy Markdown
Contributor

Motivation

This patch fixes a panic due to an expect call when sending on a channel. It is possible for the client to close half of the bidi streaming request early leading to the response stream being closed and dropped before the request stream is terminated.

Solution

This patch addresses this by not panicking if the recieving side of the channel has been close and instead gracefully ends the task.

This patch fixes a panic due to an `expect` call when sending on a
channel. It is possible for the client to close half of the bidi streaming
request early leading to the response stream being closed and dropped
before the request stream is terminated.

This patch addresses this by not panicking if the recieving side of the
channel has been close and instead gracefully ends the task.
@seanmonstar

Copy link
Copy Markdown

Should it log the error somehow? If not that's fine, I'm less familiar with the workings of the reflection crate.

@LucioFranco LucioFranco merged commit d6ce69b into grpc:master Apr 20, 2026
21 checks passed
@bmwill bmwill deleted the reflection-fix branch April 20, 2026 14:11
@github-actions github-actions Bot mentioned this pull request May 4, 2026
LucioFranco pushed a commit that referenced this pull request May 7, 2026
## 🤖 New release

* `tonic`: 0.14.5 -> 0.14.6 (✓ API compatible changes)
* `tonic-build`: 0.14.5 -> 0.14.6 (✓ API compatible changes)
* `tonic-prost`: 0.14.5 -> 0.14.6 (✓ API compatible changes)
* `tonic-health`: 0.14.5 -> 0.14.6 (✓ API compatible changes)
* `tonic-types`: 0.14.5 -> 0.14.6 (✓ API compatible changes)
* `tonic-reflection`: 0.14.5 -> 0.14.6 (✓ API compatible changes)
* `tonic-prost-build`: 0.14.5 -> 0.14.6 (✓ API compatible changes)
* `tonic-web`: 0.14.5 -> 0.14.6 (✓ API compatible changes)

<details><summary><i><b>Changelog</b></i></summary><p>

## `tonic`

<blockquote>

##
[0.14.6](tonic-v0.14.5...tonic-v0.14.6)
- 2026-05-06

### Added

- *(transport/channel)* expose ServerCertVerifier API
([#2612](#2612))

### Fixed

- map no trailers ok status to unknown
([#2543](#2543))

### Other

- add max_frame_size to client Endpoint
([#2592](#2592))
- Allow setting the HTTP/2 client header table size
([#2582](#2582))
- update rust edition and version to 2024 and 1.88, respectively
([#2525](#2525))
</blockquote>

## `tonic-build`

<blockquote>

##
[0.14.6](tonic-build-v0.14.5...tonic-build-v0.14.6)
- 2026-05-06

### Other

- update rust edition and version to 2024 and 1.88, respectively
([#2525](#2525))
</blockquote>

## `tonic-prost`

<blockquote>

##
[0.14.6](tonic-prost-v0.14.5...tonic-prost-v0.14.6)
- 2026-05-06

### Other

- update rust edition and version to 2024 and 1.88, respectively
([#2525](#2525))
</blockquote>

## `tonic-health`

<blockquote>

##
[0.14.6](tonic-health-v0.14.5...tonic-health-v0.14.6)
- 2026-05-06

### Other

- update rust edition and version to 2024 and 1.88, respectively
([#2525](#2525))
</blockquote>

## `tonic-types`

<blockquote>

##
[0.14.6](tonic-types-v0.14.5...tonic-types-v0.14.6)
- 2026-05-06

### Other

- update rust edition and version to 2024 and 1.88, respectively
([#2525](#2525))
</blockquote>

## `tonic-reflection`

<blockquote>

##
[0.14.6](tonic-reflection-v0.14.5...tonic-reflection-v0.14.6)
- 2026-05-06

### Other

- fix panic when client drops connection early
([#2596](#2596))
- update rust edition and version to 2024 and 1.88, respectively
([#2525](#2525))
</blockquote>

## `tonic-prost-build`

<blockquote>

##
[0.14.6](tonic-prost-build-v0.14.5...tonic-prost-build-v0.14.6)
- 2026-05-06

### Other

- Support well known types resolved by prost to their rust counterparts
([#2544](#2544))
- update rust edition and version to 2024 and 1.88, respectively
([#2525](#2525))
</blockquote>

## `tonic-web`

<blockquote>

##
[0.14.6](tonic-web-v0.14.5...tonic-web-v0.14.6)
- 2026-05-06

### Other

- update rust edition and version to 2024 and 1.88, respectively
([#2525](#2525))
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/release-plz/release-plz/).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants