From f567b85cc4e83de7d2e689b3496b081882f0e2cb Mon Sep 17 00:00:00 2001 From: Claudiu Belu Date: Tue, 26 Jul 2022 17:47:58 +0300 Subject: [PATCH] kubelet: Fixes plugin Watcher for Windows Currently, the plugin Watcher checks if a file is a socket or not by running mode&os.ModeSocket != 0, which can't be True on Windows. util.IsUnixDomainSocket should be used instead. --- pkg/kubelet/pluginmanager/pluginwatcher/plugin_watcher.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/kubelet/pluginmanager/pluginwatcher/plugin_watcher.go b/pkg/kubelet/pluginmanager/pluginwatcher/plugin_watcher.go index b3a1a8b67e4..9d5fce72a89 100644 --- a/pkg/kubelet/pluginmanager/pluginwatcher/plugin_watcher.go +++ b/pkg/kubelet/pluginmanager/pluginwatcher/plugin_watcher.go @@ -131,12 +131,12 @@ func (w *Watcher) traversePluginDir(dir string) error { return nil } - switch mode := info.Mode(); { - case mode.IsDir(): + mode := info.Mode() + if mode.IsDir() { if err := w.fsWatcher.Add(path); err != nil { return fmt.Errorf("failed to watch %s, err: %v", path, err) } - case mode&os.ModeSocket != 0: + } else if isSocket, _ := util.IsUnixDomainSocket(path); isSocket { event := fsnotify.Event{ Name: path, Op: fsnotify.Create, @@ -145,7 +145,7 @@ func (w *Watcher) traversePluginDir(dir string) error { if err := w.handleCreateEvent(event); err != nil { klog.ErrorS(err, "Error when handling create", "event", event) } - default: + } else { klog.V(5).InfoS("Ignoring file", "path", path, "mode", mode) }