diff --git a/pkg/volume/flexvolume/probe.go b/pkg/volume/flexvolume/probe.go index 5dc1fa35cab..2c4c5d0f98c 100644 --- a/pkg/volume/flexvolume/probe.go +++ b/pkg/volume/flexvolume/probe.go @@ -228,6 +228,10 @@ func (prober *flexVolumeProber) updateEventsMap(eventDirAbs string, op volume.Pr // Each file or directory change triggers two events: one from the watch on itself, another from the watch // on its parent directory. func (prober *flexVolumeProber) addWatchRecursive(filename string) error { + // this may be called with an actual absolute path on Windows (with a C:\ prefix). + // But the prober.fs.Walk below will execute filepath.Join(fs.root, filenameAbove), which + // will result in an incorrect path, you can't join C:\path and C:\another\path. + filename = strings.TrimPrefix(filename, `C:\`) addWatch := func(path string, info os.FileInfo, err error) error { if err == nil && info.IsDir() { if err := prober.watcher.AddWatch(path); err != nil { diff --git a/pkg/volume/flexvolume/probe_test.go b/pkg/volume/flexvolume/probe_test.go index 655c761987a..e79c4aaa70a 100644 --- a/pkg/volume/flexvolume/probe_test.go +++ b/pkg/volume/flexvolume/probe_test.go @@ -72,11 +72,6 @@ func TestProberExistingDriverBeforeInit(t *testing.T) { // Probes newly added drivers after prober is running. func TestProberAddRemoveDriver(t *testing.T) { - // Skip tests that fail on Windows, as discussed during the SIG Testing meeting from January 10, 2023 - if goruntime.GOOS == "windows" { - t.Skip("Skipping test that fails on Windows") - } - // Arrange _, fs, watcher, prober := initTestEnvironment(t) prober.Probe() @@ -210,11 +205,6 @@ func TestEmptyPluginDir(t *testing.T) { // Issue an event to remove plugindir. New directory should still be watched. func TestRemovePluginDir(t *testing.T) { - // Skip tests that fail on Windows, as discussed during the SIG Testing meeting from January 10, 2023 - if goruntime.GOOS == "windows" { - t.Skip("Skipping test that fails on Windows") - } - // Arrange driverPath, fs, watcher, _ := initTestEnvironment(t) err := fs.RemoveAll(pluginDir) @@ -236,11 +226,6 @@ func TestRemovePluginDir(t *testing.T) { // Issue an event to remove plugindir. New directory should still be watched. func TestNestedDriverDir(t *testing.T) { - // Skip tests that fail on Windows, as discussed during the SIG Testing meeting from January 10, 2023 - if goruntime.GOOS == "windows" { - t.Skip("Skipping test that fails on Windows") - } - // Arrange _, fs, watcher, _ := initTestEnvironment(t) // Assert