mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-25 20:53:33 +00:00
Merge pull request #55169 from sttts/sttts-cache-stop-race
Automatic merge from submit-queue (batch tested with PRs 55169, 54990). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. apiserver: fix Cacher.Stop() race
This commit is contained in:
commit
7966af637e
@ -649,13 +649,15 @@ func (c *Cacher) isStopped() bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *Cacher) Stop() {
|
func (c *Cacher) Stop() {
|
||||||
// TODO : Do not check for isStopped (and return) when PR
|
// avoid stopping twice (note: cachers are shared with subresources)
|
||||||
// https://github.com/kubernetes/kubernetes/pull/50690
|
|
||||||
// merges as that shuts down storage properly
|
|
||||||
if c.isStopped() {
|
if c.isStopped() {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
c.stopLock.Lock()
|
c.stopLock.Lock()
|
||||||
|
if c.stopped {
|
||||||
|
// avoid that it was locked meanwhile as isStopped only read-locks
|
||||||
|
return
|
||||||
|
}
|
||||||
c.stopped = true
|
c.stopped = true
|
||||||
c.stopLock.Unlock()
|
c.stopLock.Unlock()
|
||||||
close(c.stopCh)
|
close(c.stopCh)
|
||||||
|
Loading…
Reference in New Issue
Block a user