Concurrency fixes in status.Manager

- Fix deadlock when syncing deleted pods with full update channel
- Prevent sending stale updates to API server
- Don't delete cached status when sync fails (causes problems for prober)
This commit is contained in:
Tim St. Clair
2015-10-23 18:23:47 -07:00
parent 88548e227a
commit 9a2089adc8
3 changed files with 261 additions and 82 deletions

View File

@@ -24,8 +24,10 @@ import (
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/unversioned"
"k8s.io/kubernetes/pkg/client/record"
"k8s.io/kubernetes/pkg/client/unversioned/testclient"
kubecontainer "k8s.io/kubernetes/pkg/kubelet/container"
"k8s.io/kubernetes/pkg/kubelet/prober/results"
"k8s.io/kubernetes/pkg/kubelet/status"
"k8s.io/kubernetes/pkg/probe"
"k8s.io/kubernetes/pkg/util"
"k8s.io/kubernetes/pkg/util/exec"
@@ -117,7 +119,7 @@ func TestDoProbe(t *testing.T) {
}
// Clean up.
m.statusManager.DeletePodStatus(podUID)
m.statusManager = status.NewManager(&testclient.Fake{})
resultsManager(m, probeType).Remove(containerID)
}
}