-
Notifications
You must be signed in to change notification settings - Fork 39.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make IsConnectionReset work with more error implementations. #58520
Conversation
/approve no-issue |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: porridge, wojtek-t Associated issue: #55860 The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these OWNERS Files:
You can indicate your approval by writing |
/retest Review the full test history for this PR. Silence the bot with an |
1 similar comment
/retest Review the full test history for this PR. Silence the bot with an |
fb8b16c
to
313128d
Compare
Fixed gofmt and squashed. PTAL @wojtek-t
|
/lgtm |
/test all [submit-queue is verifying that this PR is safe to merge] |
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions here. |
@wojtek-t This should also apply cleanly to v1.6 v1.7 v1.8 and v1.9. |
@porridge - let's create the appropriate cherrypicks using the hack/cherypick-pull.sh script. |
Do I have privileges to run this script? The [cherrypick process docs](https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md)
sound as if that's the next step, after the proposal?
|
Yes - everyone has priviliges to run it. It needs to be approved by patch release manager then anyway. |
OK, done, @wojtek-t can you rubber-stamp them all? They are linked here ^^. |
What this PR does / why we need it:
This fixes the code to correctly navigate error hierarchy, and actually
work.
Which issue(s) this PR fixes
An improvement for #55860
Special notes for your reviewer:
Integration-testing this code is somewhat hard. What I did to reproduce this
condition reliably was:
payload-carrying packets with:
nc -l -4 localhost 443
Then I added instrumentation to the place in k8s.io/client-go/rest/request.go
which calls this code, to discover the actual error hierarchy.
I think another way to test this would be to run a dummy server which would
listen() on a socket, accept() and then close() the incoming connection
straight away.
Release note: