Skip to content

Revert "core: Delayed deserialization for unary/server-streaming calls (#13004) - #13107

Merged
kannanjgithub merged 1 commit into
grpc:masterfrom
kannanjgithub:revert-delayed-deserialization-after-halfclose
Oct 9, 2026
Merged

kannanjgithub merged 1 commit into
grpc:masterfrom
kannanjgithub:revert-delayed-deserialization-after-halfclose

Conversation

@kannanjgithub

Copy link
Copy Markdown
Contributor

This reverts commit 8ba4b48 because this change breaks grpc-kotlin tests that use InProcessTransport by causing a deadlock because ServerCalls.kt only requests the next message after onMessage delivers the current one, and messages get queued because the client hasn't called halfClose yet. When the client halfCloses, InProcessTransport.halfClose defers delivering halfClose if the server's receive queue is non-empty.

Resulting Deadlock:

  • ServerCallImpl waits for halfClosed() before dispatching Message 1.
  • InProcessTransport waits for call.request(1) before dispatching halfClosed().
  • The server waits for Message 1 before calling call.request(1).
  • The test hangs indefinitely waiting for closeStatus.await() until the 10s test timeout expires.

There are a few other failures too but those can be fixed in the test code alone.

Internal Test failures: http://shortn/_If0NinnwQ4

@kannanjgithub
kannanjgithub merged commit 6d5848c into grpc:master Oct 9, 2026
18 checks passed
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