Skip to content

Conversation

@ejona86
Copy link
Member

@ejona86 ejona86 commented Nov 10, 2025

Fixes #12487

CC @Trajanv

Copy link

@Trajanv Trajanv left a comment

Choose a reason for hiding this comment

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

gRPC keepalive documentation: gRPC Keepalive guide. The table describes:

KEEPALIVE_TIMEOUT — Client and Server — The timeout in milliseconds for a PING frame to be acknowledged. If sender does not receive an acknowledgment within this time, it will close the connection.

Given that gRPC-Java may trigger a connection closure via TCP_USER_TIMEOUT even without sending a PING frame, i think, this description needs an update to reflect that behavior? Specifically, that any unacknowledged outbound packet (DATA or PING) can lead to connection termination when TCP_USER_TIMEOUT is in effect, independent of the PING-based timeout.

We just want to make sure users understand the potential for RSTs on long-lived streams when keepAliveTimeout is very low.

@ejona86 ejona86 merged commit da70387 into grpc:master Nov 11, 2025
16 of 17 checks passed
@ejona86 ejona86 deleted the a18-doc branch November 11, 2025 15:44
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.

Clarification on gRPC-Java KeepAliveManager shutdown trigger (PING timeout vs general read inactivity)

3 participants