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
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 <easwars@google.com>
Co-authored-by: Arjan Singh Bal <46515553+arjan-bal@users.noreply.github.com>
Co-authored-by: Purnesh Dixit <purneshdixit@google.com>
Co-authored-by: Doug Fawley <dfawley@google.com>
dimpavloff pushed a commit to dimpavloff/grpc-go that referenced this pull request Aug 22, 2025
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