Skip to content

transport: release mutex before returning on expired deadlines in server streams #8451

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 16, 2025

Conversation

arjan-bal
Copy link
Contributor

#8439 introduced the change to return early when the deadline has already expired. This causes the server mutex to be held forever.

Example failure in CI: https://github.com/grpc/grpc-go/actions/runs/16282058322/job/45973508273?pr=8437

RELEASE NOTES: N/A

@arjan-bal arjan-bal added this to the 1.74 Release milestone Jul 15, 2025
@arjan-bal arjan-bal requested a review from dfawley July 15, 2025 18:39
@arjan-bal arjan-bal added Type: Bug Area: Transport Includes HTTP/2 client/server and HTTP server handler transports and advanced transport features. labels Jul 15, 2025
Copy link

codecov bot commented Jul 15, 2025

Codecov Report

Attention: Patch coverage is 0% with 1 line in your changes missing coverage. Please review.

Project coverage is 82.46%. Comparing base (af2600d) to head (91998eb).
Report is 4 commits behind head on master.

Files with missing lines Patch % Lines
internal/transport/http2_server.go 0.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #8451      +/-   ##
==========================================
+ Coverage   82.27%   82.46%   +0.19%     
==========================================
  Files         414      414              
  Lines       40422    40437      +15     
==========================================
+ Hits        33257    33347      +90     
+ Misses       5799     5743      -56     
+ Partials     1366     1347      -19     
Files with missing lines Coverage Δ
internal/transport/http2_server.go 89.79% <0.00%> (+0.19%) ⬆️

... and 17 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@arjan-bal arjan-bal changed the title transport: release mutex before returning for expired deadlines transport: release mutex before returning on expired deadlines in server streams Jul 15, 2025
Copy link
Member

@dfawley dfawley left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Argh, sorry I missed this from the previous section. I will see about adding a system-level test for this, too

@dfawley dfawley assigned arjan-bal and unassigned dfawley Jul 15, 2025
@arjan-bal arjan-bal merged commit 52d9f91 into grpc:master Jul 16, 2025
19 checks passed
@arjan-bal arjan-bal deleted the h2-server-release-mutex branch July 16, 2025 05:16
eshitachandwani pushed a commit to eshitachandwani/grpc-go that referenced this pull request Jul 17, 2025
Pranjali-2501 pushed a commit to Pranjali-2501/grpc-go that referenced this pull request Jul 17, 2025
arjan-bal added a commit that referenced this pull request Jul 17, 2025
* xdsclient: preserve original bytes for decoding when the resource is wrapped (#8411)

* xds: Avoid error logs when setting fallback bootstrap config (#8419)

* xdsclient: relay marshalled bytes of complete resource proto to decoders (#8422)

* xds: give up pool lock before closing xdsclient channel (#8445)

* transport: release mutex before returning on expired deadlines in server streams (#8451)

---------

Co-authored-by: Easwar Swaminathan <[email protected]>
Co-authored-by: Arjan Singh Bal <[email protected]>
Co-authored-by: Purnesh Dixit <[email protected]>
Co-authored-by: Doug Fawley <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: Transport Includes HTTP/2 client/server and HTTP server handler transports and advanced transport features. Type: Bug
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants