mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-27 21:47:07 +00:00
Merge pull request #102725 from 249043822/br-podworker
Fix:slow memory leak may be in kubelet podworkers.isWorking
This commit is contained in:
commit
844fa00c5e
@ -282,7 +282,8 @@ func (p *podWorkers) checkForUpdates(uid types.UID) {
|
|||||||
p.podUpdates[uid] <- workUpdate
|
p.podUpdates[uid] <- workUpdate
|
||||||
delete(p.lastUndeliveredWorkUpdate, uid)
|
delete(p.lastUndeliveredWorkUpdate, uid)
|
||||||
} else {
|
} else {
|
||||||
p.isWorking[uid] = false
|
// put this line in removeWorker may cause dead lock, so keep reset it here
|
||||||
|
delete(p.isWorking, uid)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -241,6 +241,30 @@ func TestForgetNonExistingPodWorkers(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestIsWorkingClearedAfterForgetPodWorkers(t *testing.T) {
|
||||||
|
podWorkers, _ := createPodWorkers()
|
||||||
|
|
||||||
|
numPods := 20
|
||||||
|
for i := 0; i < numPods; i++ {
|
||||||
|
podWorkers.UpdatePod(&UpdatePodOptions{
|
||||||
|
Pod: newPod(strconv.Itoa(i), "name"),
|
||||||
|
UpdateType: kubetypes.SyncPodUpdate,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
drainWorkers(podWorkers, numPods)
|
||||||
|
|
||||||
|
if len(podWorkers.podUpdates) != numPods {
|
||||||
|
t.Errorf("Incorrect number of open channels %v", len(podWorkers.podUpdates))
|
||||||
|
}
|
||||||
|
podWorkers.ForgetNonExistingPodWorkers(map[types.UID]sets.Empty{})
|
||||||
|
if len(podWorkers.podUpdates) != 0 {
|
||||||
|
t.Errorf("Incorrect number of open channels %v", len(podWorkers.podUpdates))
|
||||||
|
}
|
||||||
|
if len(podWorkers.isWorking) != 0 {
|
||||||
|
t.Errorf("Incorrect number of isWorking %v", len(podWorkers.isWorking))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
type simpleFakeKubelet struct {
|
type simpleFakeKubelet struct {
|
||||||
pod *v1.Pod
|
pod *v1.Pod
|
||||||
mirrorPod *v1.Pod
|
mirrorPod *v1.Pod
|
||||||
|
Loading…
Reference in New Issue
Block a user