From 6e3f8f38908ec9c1d54825467403bbbc0a834e30 Mon Sep 17 00:00:00 2001 From: Martin Polednik Date: Thu, 16 Nov 2017 15:01:07 +0100 Subject: [PATCH] deviceplugin: fix race when multiple plugins are registered Signed-off-by: Martin Polednik --- pkg/kubelet/cm/deviceplugin/device_plugin_handler.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkg/kubelet/cm/deviceplugin/device_plugin_handler.go b/pkg/kubelet/cm/deviceplugin/device_plugin_handler.go index 23d67c3fd6d..38248733c9a 100644 --- a/pkg/kubelet/cm/deviceplugin/device_plugin_handler.go +++ b/pkg/kubelet/cm/deviceplugin/device_plugin_handler.go @@ -77,6 +77,10 @@ func NewHandlerImpl(updateCapacityFunc func(v1.ResourceList)) (*HandlerImpl, err deviceManagerMonitorCallback := func(resourceName string, added, updated, deleted []pluginapi.Device) { var capacity = v1.ResourceList{} kept := append(updated, added...) + + handler.Lock() + defer handler.Unlock() + if _, ok := handler.allDevices[resourceName]; !ok { handler.allDevices[resourceName] = sets.NewString() }