aboutsummaryrefslogtreecommitdiff
path: root/weed/command
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2020-10-10 20:09:43 -0700
committerChris Lu <chris.lu@gmail.com>2020-10-10 20:09:43 -0700
commitd155f907c2759ce8c14f50952fd7ea4a68bcac65 (patch)
treeb1215babf3931df8f93e24449686a2583c6ec0e4 /weed/command
parent9b0e8ef026cd74e8c641e922c79a54c5154e5a6b (diff)
downloadseaweedfs-d155f907c2759ce8c14f50952fd7ea4a68bcac65.tar.xz
seaweedfs-d155f907c2759ce8c14f50952fd7ea4a68bcac65.zip
mount: configurable read wait time
Diffstat (limited to 'weed/command')
-rw-r--r--weed/command/mount.go14
-rw-r--r--weed/command/mount_std.go5
2 files changed, 14 insertions, 5 deletions
diff --git a/weed/command/mount.go b/weed/command/mount.go
index 7bf59cdc7..42a79bd1f 100644
--- a/weed/command/mount.go
+++ b/weed/command/mount.go
@@ -2,6 +2,7 @@ package command
import (
"os"
+ "time"
)
type MountOptions struct {
@@ -25,9 +26,10 @@ type MountOptions struct {
}
var (
- mountOptions MountOptions
- mountCpuProfile *string
- mountMemProfile *string
+ mountOptions MountOptions
+ mountCpuProfile *string
+ mountMemProfile *string
+ mountReadRetryTime *time.Duration
)
func init() {
@@ -46,11 +48,13 @@ func init() {
mountOptions.allowOthers = cmdMount.Flag.Bool("allowOthers", true, "allows other users to access the file system")
mountOptions.umaskString = cmdMount.Flag.String("umask", "022", "octal umask, e.g., 022, 0111")
mountOptions.nonempty = cmdMount.Flag.Bool("nonempty", false, "allows the mounting over a non-empty directory")
- mountCpuProfile = cmdMount.Flag.String("cpuprofile", "", "cpu profile output file")
- mountMemProfile = cmdMount.Flag.String("memprofile", "", "memory profile output file")
mountOptions.outsideContainerClusterMode = cmdMount.Flag.Bool("outsideContainerClusterMode", false, "allows other users to access the file system")
mountOptions.uidMap = cmdMount.Flag.String("map.uid", "", "map local uid to uid on filer, comma-separated <local_uid>:<filer_uid>")
mountOptions.gidMap = cmdMount.Flag.String("map.gid", "", "map local gid to gid on filer, comma-separated <local_gid>:<filer_gid>")
+
+ mountCpuProfile = cmdMount.Flag.String("cpuprofile", "", "cpu profile output file")
+ mountMemProfile = cmdMount.Flag.String("memprofile", "", "memory profile output file")
+ mountReadRetryTime = cmdMount.Flag.Duration("readRetryTime", 6*time.Second, "maximum read retry wait time")
}
var cmdMount = &Command{
diff --git a/weed/command/mount_std.go b/weed/command/mount_std.go
index 14374eb5c..20d08314c 100644
--- a/weed/command/mount_std.go
+++ b/weed/command/mount_std.go
@@ -5,6 +5,7 @@ package command
import (
"context"
"fmt"
+ "github.com/chrislusf/seaweedfs/weed/filer"
"github.com/chrislusf/seaweedfs/weed/filesys/meta_cache"
"os"
"os/user"
@@ -29,6 +30,10 @@ import (
func runMount(cmd *Command, args []string) bool {
grace.SetupProfiling(*mountCpuProfile, *mountMemProfile)
+ if *mountReadRetryTime < time.Second {
+ *mountReadRetryTime = time.Second
+ }
+ filer.ReadWaitTime = *mountReadRetryTime
umask, umaskErr := strconv.ParseUint(*mountOptions.umaskString, 8, 64)
if umaskErr != nil {