Skip to content

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
@codecov
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]>
dimpavloff pushed a commit to dimpavloff/grpc-go that referenced this pull request Aug 22, 2025
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jan 13, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

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