juicedata/juicefs · error
dump trash failed
Error message
dump trash failed
What it means
During a metadata dump, serializing the trash directory (TrashInode subtree) failed after the root directory was dumped successfully. The trash section of the JSON dump could not be completed due to an underlying database read error.
Source
Thrown at pkg/meta/sql.go:5132
_ = 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 err
}
return bw.Flush()
})
}
func (m *dbMeta) loadEntry(e *DumpedEntry, chs []chan interface{}, aclMaxId *uint32) {
inode := e.Attr.Inode
attr := e.Attr
n := &node{
Inode: inode,
Flags: attr.Flags,
Type: typeFromString(attr.Type),
Mode: attr.Mode,View on GitHub (pinned to c9a67b23e8)
Solutions
- Inspect the underlying DB error, then rerun dump to a new file
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at pkg/meta/sql.go:5132 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/34e7b0c004cfe0eb.
Report an issue: GitHub.