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 err

View on GitHub (pinned to c9a67b23e8)

Solutions

  1. Check the logged inner error (DB read failures)
  2. 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.