From c744385804a7e51fdb15cc86894b30ff69bdcd70 Mon Sep 17 00:00:00 2001 From: Jan Safranek Date: Mon, 5 Aug 2019 10:06:44 +0200 Subject: [PATCH] Add limit of stored errors There should be a limit so the set of errors does not grow too much in case of some bug in the populator. --- .../volumemanager/cache/desired_state_of_world.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pkg/kubelet/volumemanager/cache/desired_state_of_world.go b/pkg/kubelet/volumemanager/cache/desired_state_of_world.go index b4c746e07a9..3387a2a93b4 100644 --- a/pkg/kubelet/volumemanager/cache/desired_state_of_world.go +++ b/pkg/kubelet/volumemanager/cache/desired_state_of_world.go @@ -206,6 +206,12 @@ type podToMount struct { outerVolumeSpecName string } +const ( + // Maximum errors to be stored per pod in desiredStateOfWorld.podErrors to + // prevent unbound growth. + maxPodErrors = 10 +) + func (dsw *desiredStateOfWorld) AddPodToVolume( podName types.UniquePodName, pod *v1.Pod, @@ -436,7 +442,9 @@ func (dsw *desiredStateOfWorld) AddErrorToPod(podName types.UniquePodName, err s defer dsw.Unlock() if errs, found := dsw.podErrors[podName]; found { - errs.Insert(err) + if errs.Len() <= maxPodErrors { + errs.Insert(err) + } return } dsw.podErrors[podName] = sets.NewString(err)