juicedata/juicefs · error
fail 3 times in %s, give up
Error message
fail 3 times in %s, give up
What it means
Returned by launchMount when three consecutive attempts to spawn the mount helper process all failed within ten seconds. It gives up rather than looping forever, typically because the re-exec'd mount child dies immediately each time.
Source
Thrown at cmd/mount_unix.go:1003
if c.Bool("disable-transparent-hugepage") {
utils.DisableTHP()
}
if canShutdownGracefully(mp, conf) {
shutdownGraceful(mp)
}
os.Setenv("_FUSE_FD_COMM", serverAddress)
serveFuseFD(serverAddress)
defer os.Remove(serverAddress)
path, err := os.Executable()
if err != nil {
return fmt.Errorf("find executable: %s", err)
}
start := time.Now()
for attempt := 0; ; attempt++ {
if attempt == 3 && time.Since(start) < time.Second*10 {
return fmt.Errorf("fail 3 times in %s, give up", time.Since(start))
}
// For volcengine VKE serverless container, no umount before mount when
// `JFS_NO_UMOUNT` environment provided
noUmount := os.Getenv("JFS_NO_UMOUNT")
if fuseFd == 0 && (attempt > 0 || noUmount == "0") {
_ = doUmount(mp, true)
}
if runtime.GOOS == "linux" {
if !utils.Exists(serverAddress) {
serveFuseFD(serverAddress)
}
}
mountPid = 0
cmd := exec.Command(path, os.Args[1:]...)
cmd.Stdin = os.Stdin
cmd.Stdout = os.Stdout
cmd.Stderr = os.StderrView on GitHub (pinned to c9a67b23e8)
Solutions
- Check the mount log for why the child mount process exits immediately
- Verify the executable and FUSE device (/dev/fuse) are available
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at cmd/mount_unix.go:1003 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of juicedata/juicefs@c9a67b23e8 (2026-09-06).
Data as JSON: /api/errors/ffcc61639f81e32d.
Report an issue: GitHub.