juicedata/juicefs · error

init

Error message

init %s: %s

What it means

Returned by newGluster when initializing a gfapi Volume handle against the gluster hosts fails — unreachable glusterd, unknown volume, or library issues. The wrapped error names the volume that failed.

Solutions

  1. Verify gluster hosts are reachable and the volume exists
  2. Check gluster daemon status and firewall rules
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at pkg/object/gluster.go:326 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/8298656e1226a3ac. Report an issue: GitHub.

Appendix: source

Thrown at pkg/object/gluster.go:326

		case "DEBUG":
			level = gfapi.LogDebug
		case "TRACE":
			level = gfapi.LogTrace
		}
	}
	logPath := os.Getenv("JFS_GLUSTER_LOG_PATH")
	hosts := strings.Split(uri.Host, ",")
	pid := os.Getpid()
	ostore := gluster{
		name: name,
		vols: make([]*gfapi.Volume, size),
	}
	for i := range ostore.vols {
		v := &gfapi.Volume{}
		// TODO: support port in host
		err = v.Init(name, hosts...)
		if err != nil {
			return nil, fmt.Errorf("init %s: %s", name, err)
		}
		if logPath == "" {
			err = v.SetLogging(fmt.Sprintf("/var/log/glusterfs/%s-%s-%d-%d.log", hosts[0], name, pid, i), level)
		} else {
			err = v.SetLogging(logPath, level)
		}
		if err != nil {
			logger.Warnf("Set gluster logging for vol %s: %s", name, err)
		}
		err = v.Mount()
		if err != nil {
			return nil, fmt.Errorf("mount %s: %s", name, err)
		}
		ostore.vols[i] = v
	}
	return &ostore, nil
}

View on GitHub (pinned to c9a67b23e8)