-
Notifications
You must be signed in to change notification settings - Fork 9.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
Avoid deadlock in etcd.Close when stopping during bootstrapping #19139
Conversation
Hi @joshuazh-x. Thanks for your PR. I'm waiting for a etcd-io member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. 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-sigs/prow repository. |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files
... and 22 files with indirect coverage changes @@ Coverage Diff @@
## main #19139 +/- ##
==========================================
- Coverage 68.79% 68.70% -0.09%
==========================================
Files 420 420
Lines 35640 35647 +7
==========================================
- Hits 24518 24493 -25
- Misses 9697 9719 +22
- Partials 1425 1435 +10 Continue to review full report in Codecov by Sentry.
|
76a9777
to
bab04c0
Compare
bab04c0
to
2782bbb
Compare
cc @ahrtr |
/ok-to-test |
Signed-off-by: Joshua Zhang <joshua.x.zhang@gmail.com>
2782bbb
to
f9ce13e
Compare
Fixed the test issue. |
/retest |
/test "test (linux-amd64-grpcproxy-integration)" |
@joshuazh-x: The specified target(s) for
Use In response to this:
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-sigs/prow repository. |
/retest |
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
The change looks clean. Thanks for the nice work. Could you backport the fix to 3.5 as well?
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: ahrtr, joshuazh-x, serathius 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 |
Please read https://github.com/etcd-io/etcd/blob/main/CONTRIBUTING.md#contribution-flow.
Fix issue described in #19058. Also refer to #10600.
Root cause
etcd.Close()
will read remaining items in channelsctx.serversC
which was supposed to be closed when exitingserveCtx.serve
. Stopping during bootstrapping may skip closingsctx.serversC
hence causeetcd.Close()
stuck.Skip closing
sctx.serversC
etcd/server/embed/serve.go
Lines 105 to 109 in aac7ef6
etcd/server/embed/serve.go
Lines 124 to 125 in aac7ef6
etcd.Close()
reads closed channeletcd/server/embed/serve.go
Lines 124 to 125 in aac7ef6