Skip to content

[chttp2] Enforce settings acks#34640

Merged
ctiller merged 11 commits intogrpc:masterfrom
ctiller:settings-need-ack
Oct 10, 2023
Merged

[chttp2] Enforce settings acks#34640
ctiller merged 11 commits intogrpc:masterfrom
ctiller:settings-need-ack

Conversation

@ctiller
Copy link
Copy Markdown
Member

@ctiller ctiller commented Oct 10, 2023

Previously our settings changes carried no timeout, fix that.

Default timeout starts at keepalive_timeout*2.

@ctiller ctiller added the release notes: yes Indicates if PR needs to be in release notes label Oct 10, 2023
// for implementations taking some more time about acking a setting.
t_->settings_ack_watchdog = t_->event_engine->RunAfter(
std::max(t_->keepalive_timeout * 2,
grpc_core::Duration::Seconds(40)),
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Should this be configurable via a channel arg or something, in case we need to tune it?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

done

grpc_core::NewClosure([t](grpc_error_handle) {
gpr_log(GPR_INFO, "%s: Ping timeout. Closing transport.",
std::string(t->peer_string.as_string_view()).c_str());
send_goaway(
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Is this actually related to the settings timeout? Seems like this is for a ping timeout, not a settings timeout. Or was this just something unrelated that you noticed while you were duplicating this code for the settings timeout?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

The latter... it came up during code review and didn't seem worth making a new change for (though we can)

@ctiller ctiller merged commit 385583b into grpc:master Oct 10, 2023
@copybara-service copybara-service bot added the imported Specifies if the PR has been imported to the internal repository label Oct 11, 2023
ctiller added a commit to ctiller/grpc that referenced this pull request Oct 20, 2023
Previously our settings changes carried no timeout, fix that.

Default timeout starts at keepalive_timeout*2.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bloat/low imported Specifies if the PR has been imported to the internal repository lang/core per-call-memory/neutral per-channel-memory/neutral release notes: yes Indicates if PR needs to be in release notes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants