Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
This repository was archived by the owner on Apr 10, 2024. It is now read-only.

Use HTTP/1.1 to perform readiness check#156

Merged
csviri merged 3 commits intojava-operator-sdk:mainjava-operator-sdk/jenvtest:mainfrom
adriansuarez:asuarez/suppress-goaway-erroradriansuarez/jenvtest:asuarez/suppress-goaway-errorCopy head branch name to clipboard
Jan 18, 2024
Merged

Use HTTP/1.1 to perform readiness check#156
csviri merged 3 commits intojava-operator-sdk:mainjava-operator-sdk/jenvtest:mainfrom
adriansuarez:asuarez/suppress-goaway-erroradriansuarez/jenvtest:asuarez/suppress-goaway-errorCopy head branch name to clipboard

Conversation

@adriansuarez
Copy link
Contributor

This change re-enables the readiness check, using HTTP/1.1 instead of HTTP/2 to invoke it. The readiness checks are unauthenticated and are throttled when the feature gate UnauthenticatedHTTP2DOSMitigation is set to true, which is the default starting in Kubernetes 1.29 (see https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates). This was the cause of the "GOAWAY received" errors that have been observed on Kubernetes 1.29.

This change also decouples starting of the servers from waiting until they become ready, so that if the readiness check fails due to some error that propagates out of the polling loop (e.g. IOException), the caller is free to catch it and continue waiting.

@adriansuarez
Copy link
Contributor Author

This addresses #153 and #155.

Copy link
Collaborator

@csviri csviri left a comment

Choose a reason for hiding this comment

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

Added one comment.

TBH just setting this flag to false would be more explicit. Otherwise this is also a good solution. Thank you for the PR.

This change re-enables the readiness check, using HTTP/1.1 instead of
HTTP/2 to invoke it. The readiness checks are unauthenticated and are
throttled when the feature gate UnauthenticatedHTTP2DOSMitigation is set
to true, which is the default starting in Kubernetes 1.29 (see
https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates).
This was the cause of the "GOAWAY received" errors that have been
observed on Kubernetes 1.29.

This change also decouples starting of the servers from waiting until
they become ready, so that if the readiness check fails due to some
error that propagates out of the polling loop (e.g. IOException), the
caller is free to catch it and continue waiting.
@adriansuarez adriansuarez force-pushed the asuarez/suppress-goaway-error branch from afd4a55 to 526dffc Compare January 18, 2024 14:19
@adriansuarez adriansuarez requested a review from csviri January 18, 2024 15:14
Copy link
Collaborator

@csviri csviri left a comment

Choose a reason for hiding this comment

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

LGTM, thx !!!

@csviri csviri merged commit 8137188 into java-operator-sdk:main Jan 18, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

Morty Proxy This is a proxified and sanitized view of the page, visit original site.