Skip to content

Commit 8abacc4

Browse files
committed
Driver should check socket parent directory before trying to bind it
1 parent d6ac89c commit 8abacc4

File tree

1 file changed

+10
-7
lines changed

1 file changed

+10
-7
lines changed

pkg/gce-pd-csi-driver/server.go

+10-7
Original file line numberDiff line numberDiff line change
@@ -87,19 +87,22 @@ func (s *nonBlockingGRPCServer) serve(endpoint string, ids csi.IdentityServer, c
8787
if err := os.Remove(addr); err != nil && !os.IsNotExist(err) {
8888
klog.Fatalf("Failed to remove %s, error: %s", addr, err.Error())
8989
}
90+
91+
listenDir := filepath.Dir(addr)
92+
if _, err := os.Stat(listenDir); err != nil {
93+
if os.IsNotExist(err) {
94+
klog.Fatalf("Expected Kubelet plugin watcher to create parent dir %s but did not find such a dir", listenDir)
95+
} else {
96+
klog.Fatalf("Failed to stat %s, error: %s", listenDir, err.Error())
97+
}
98+
}
99+
90100
} else if u.Scheme == "tcp" {
91101
addr = u.Host
92102
} else {
93103
klog.Fatalf("%v endpoint scheme not supported", u.Scheme)
94104
}
95105

96-
if u.Scheme == "unix" {
97-
listenDir, _ := filepath.Split(addr)
98-
if _, err := os.Stat(listenDir); err != nil {
99-
klog.Fatalf("Failed to stat %s, error: %s", listenDir, err.Error())
100-
}
101-
}
102-
103106
klog.V(4).Infof("Start listening with scheme %v, addr %v", u.Scheme, addr)
104107
listener, err := net.Listen(u.Scheme, addr)
105108
if err != nil {

0 commit comments

Comments
 (0)