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

  1. 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.