juicedata/juicefs · error
%s is not inside JuiceFS
Error message
%s is not inside JuiceFS
What it means
Returned by loadConfig when the upward directory walk from the given path reaches '/' without finding any JuiceFS .config file. It means the path is not inside a JuiceFS mountpoint, so mount status operations (graceful shutdown, mountpoint checks) cannot proceed.
Source
Thrown at cmd/mount_unix.go:168
} else if err != nil {
logger.Warnf("watchdog: failed to parse waiting FUSE requests for connection %d, pid %d: %v; abort not triggered", conn, pid, err)
}
}
}
func loadConfig(path string) (string, *vfs.Config, error) {
for d := path; d != "/"; d = filepath.Dir(d) {
data, err := readConfig(d)
if err == nil {
var conf vfs.Config
err = json.Unmarshal(data, &conf)
return d, &conf, err
}
if !os.IsNotExist(err) {
return "", nil, fmt.Errorf("read %s: %w", d, err)
}
}
return "", nil, fmt.Errorf("%s is not inside JuiceFS", path)
}
func printThreadsStack(pid int) {
if pid <= 1 {
return
}
start := time.Now()
tids, err := os.ReadDir(fmt.Sprintf("/proc/%d/task", pid))
if err != nil {
logger.Warnf("list tasks of pid %d: %s", pid, err)
return
}
var b strings.Builder
for _, tid := range tids {
readThreadStats(pid, tid.Name(), &b)
}
logger.Infof("print kernel stacks of process %d takes %s:\n%s", pid, time.Since(start), b.String())
}View on GitHub (pinned to c9a67b23e8)
Solutions
- Run the command against a path inside the actual JuiceFS mountpoint
- Mount the filesystem first if it is not mounted
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at cmd/mount_unix.go:168 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/38dc7081147f0590.
Report an issue: GitHub.