Skip to content

Conversation

bvinc
Copy link

@bvinc bvinc commented Sep 12, 2025

This is a companion PR to help understand the bug pointed out by PR #860.

The program I present here is based on PR #852, which also demonstrates a deadlock. However, according to my research, these two examples deadlock for entirely different reasons. While PR #852 deadlocks due to not calling flow capacity methods, the program I present here DOES, afaik, correctly call flow capacity methods.

The test presented here sends requests and responses in chunks, and due to that, triggers a deadlock because the client ends up assigning stream capacity to streams that are still in the pending_open state. Once the client assigns all of the connection capacity to streams that are in pending_open, the entire program deadlocks as nothing can make progress.

The deadlock in this program is fixed by PR #860.

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.

2 participants