-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Fix race condition in timeoutHandler.ServeHTTP #7138
Fix race condition in timeoutHandler.ServeHTTP #7138
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@JRBANCEL: 0 warnings.
In response to this:
Proposed Changes
- If a panic happens in the inner handler after a timeout,
panicChan
will be closed becauseServeHTTP
would have returned and calleddefer close(panicChan)
. Then, the write to the closedpanicChan
will panic. A channel should always be closed in the sending goroutine if there is a single sender.- Simplified the code by using a single channel
/assign @markusthoemmes
/assign @vagababov
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.
The following jobs failed:
Failed non-flaky tests preventing automatic retry of pull-knative-serving-unit-tests:
|
7d0a738
to
2487038
Compare
2487038
to
1c4382b
Compare
The following is the coverage report on the affected files.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm
/approve |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: JRBANCEL, vagababov The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Proposed Changes
panicChan
will be closed becauseServeHTTP
would have returned and calleddefer close(panicChan)
. Then, the write to the closedpanicChan
will panic. A channel should always be closed in the sending goroutine if there is a single sender./assign @markusthoemmes
/assign @vagababov