juicedata/juicefs · error
dump dir %d failed
Error message
dump dir %d failed
What it means
Returned by dbMeta.DumpMeta when recursively dumping the root directory tree fails (non-fast path). The inner error is logged; the outer 'don't retry' wording exists because partial JSON output has already been written, so retrying would produce a corrupt append rather than fix it.
Source
Thrown at pkg/meta/sql.go:5119
bar.Increment()
if trash != nil {
trash.Name = "Trash"
bar.IncrTotal(1)
bar.Increment()
}
showProgress := func(totalIncr, currentIncr int64) {
if !useTotal {
bar.IncrTotal(totalIncr)
}
bar.IncrInt64(currentIncr)
}
if m.snap != nil {
_ = m.dumpDirFast(root, tree, bw, 1, showProgress)
} else {
showProgress(int64(len(tree.Entries)), 0)
if err = m.dumpDir(s, root, tree, bw, 1, threads, showProgress); err != nil {
logger.Errorf("dump dir %d failed: %s", root, err)
return fmt.Errorf("dump dir %d failed", root) // don't retry
}
}
if trash != nil {
if _, err = bw.WriteString(","); err != nil {
return err
}
if m.snap != nil {
_ = m.dumpDirFast(TrashInode, trash, bw, 1, showProgress)
} else {
showProgress(int64(len(trash.Entries)), 0)
if err = m.dumpDir(s, TrashInode, trash, bw, 1, threads, showProgress); err != nil {
logger.Errorf("dump trash failed: %s", err)
return fmt.Errorf("dump trash failed") // don't retry
}
}
}
if _, err = bw.WriteString("\n}\n"); err != nil {
return errView on GitHub (pinned to c9a67b23e8)
Solutions
- Check the logged inner error (DB read failures)
- Restart the dump from scratch into a fresh output file
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at pkg/meta/sql.go:5119 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/6522e4cb203d909c.
Report an issue: GitHub.