aboutsummaryrefslogtreecommitdiff
path: root/weed/command/filer.go
diff options
context:
space:
mode:
authorKonstantin Lebedev <9497591+kmlebedev@users.noreply.github.com>2022-09-01 22:33:23 +0500
committerGitHub <noreply@github.com>2022-09-01 10:33:23 -0700
commit8c3040db81ac3c3a5b80d675ba3cf044420d4b9a (patch)
tree123184c7635b1f578884c5ec5d0e4c64f8122e64 /weed/command/filer.go
parent90d55cd179732a375f112c72893e2cca1b41afd1 (diff)
downloadseaweedfs-8c3040db81ac3c3a5b80d675ba3cf044420d4b9a.tar.xz
seaweedfs-8c3040db81ac3c3a5b80d675ba3cf044420d4b9a.zip
avoid DATA RACE on S3Options.localFilerSocket (#3571)
* avoid DATA RACE on S3Options.localFilerSocket https://github.com/seaweedfs/seaweedfs/issues/3552 * copy localSocket
Diffstat (limited to 'weed/command/filer.go')
-rw-r--r--weed/command/filer.go13
1 files changed, 7 insertions, 6 deletions
diff --git a/weed/command/filer.go b/weed/command/filer.go
index 0dd35e5bd..452e76228 100644
--- a/weed/command/filer.go
+++ b/weed/command/filer.go
@@ -293,17 +293,18 @@ func (fo *FilerOptions) startFiler() {
httpS := &http.Server{Handler: defaultMux}
if runtime.GOOS != "windows" {
- if *fo.localSocket == "" {
- *fo.localSocket = fmt.Sprintf("/tmp/seaweefs-filer-%d.sock", *fo.port)
+ localSocket := *fo.localSocket
+ if localSocket == "" {
+ localSocket = fmt.Sprintf("/tmp/seaweefs-filer-%d.sock", *fo.port)
}
- if err := os.Remove(*fo.localSocket); err != nil && !os.IsNotExist(err) {
- glog.Fatalf("Failed to remove %s, error: %s", *fo.localSocket, err.Error())
+ if err := os.Remove(localSocket); err != nil && !os.IsNotExist(err) {
+ glog.Fatalf("Failed to remove %s, error: %s", localSocket, err.Error())
}
go func() {
// start on local unix socket
- filerSocketListener, err := net.Listen("unix", *fo.localSocket)
+ filerSocketListener, err := net.Listen("unix", localSocket)
if err != nil {
- glog.Fatalf("Failed to listen on %s: %v", *fo.localSocket, err)
+ glog.Fatalf("Failed to listen on %s: %v", localSocket, err)
}
httpS.Serve(filerSocketListener)
}()