{"record":{"id":"ffcc61639f81e32d","repo":"juicedata/juicefs","slug":"fail-3-times-in-s-give-up","errorCode":null,"errorMessage":"fail 3 times in %s, give up","messagePattern":"fail 3 times in (.+?), give up","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cmd/mount_unix.go","lineNumber":1003,"sourceCode":"\tif c.Bool(\"disable-transparent-hugepage\") {\n\t\tutils.DisableTHP()\n\t}\n\n\tif canShutdownGracefully(mp, conf) {\n\t\tshutdownGraceful(mp)\n\t}\n\tos.Setenv(\"_FUSE_FD_COMM\", serverAddress)\n\tserveFuseFD(serverAddress)\n\tdefer os.Remove(serverAddress)\n\n\tpath, err := os.Executable()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"find executable: %s\", err)\n\t}\n\tstart := time.Now()\n\tfor attempt := 0; ; attempt++ {\n\t\tif attempt == 3 && time.Since(start) < time.Second*10 {\n\t\t\treturn fmt.Errorf(\"fail 3 times in %s, give up\", time.Since(start))\n\t\t}\n\t\t// For volcengine VKE serverless container, no umount before mount when\n\t\t// `JFS_NO_UMOUNT` environment provided\n\t\tnoUmount := os.Getenv(\"JFS_NO_UMOUNT\")\n\t\tif fuseFd == 0 && (attempt > 0 || noUmount == \"0\") {\n\t\t\t_ = doUmount(mp, true)\n\t\t}\n\t\tif runtime.GOOS == \"linux\" {\n\t\t\tif !utils.Exists(serverAddress) {\n\t\t\t\tserveFuseFD(serverAddress)\n\t\t\t}\n\t\t}\n\n\t\tmountPid = 0\n\t\tcmd := exec.Command(path, os.Args[1:]...)\n\t\tcmd.Stdin = os.Stdin\n\t\tcmd.Stdout = os.Stdout\n\t\tcmd.Stderr = os.Stderr","sourceCodeStart":985,"sourceCodeEnd":1021,"githubUrl":"https://github.com/juicedata/juicefs/blob/c9a67b23e8e08ec23ec331aa6f1675e2319e921c/cmd/mount_unix.go#L985-L1021","documentation":"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.","triggerScenarios":"Thrown at cmd/mount_unix.go:1003 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the mount log for why the child mount process exits immediately","Verify the executable and FUSE device (/dev/fuse) are available"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"c9a67b23e8e08ec23ec331aa6f1675e2319e921c","analyzedAt":"2026-09-06T17:55:48.476Z","contentChangedAt":"2026-09-06T17:55:48.476Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}