juicedata/juicefs · error
no volume provided
Error message
no volume provided
What it means
Splitting the endpoint URI's path yielded no components beyond the root, meaning the gluster:// URL names no volume. GlusterFS requires a volume name in the path (gluster://host/volume); this validation guard rejects endpoints that only specify hosts.
Source
Thrown at pkg/object/gluster.go:284
func (g *gluster) Chmod(path string, mode os.FileMode) error {
return g.vol().Chmod(path, mode)
}
func (g *gluster) Chown(path string, owner, group string) error {
return notSupported
}
func newGluster(endpoint, ak, sk, token string) (ObjectStorage, error) {
if !strings.Contains(endpoint, "://") {
endpoint = fmt.Sprintf("gluster://%s", endpoint)
}
uri, err := url.ParseRequestURI(endpoint)
if err != nil {
return nil, fmt.Errorf("Invalid endpoint %s: %s", endpoint, err)
}
ps := strings.Split(uri.Path, "/")
if len(ps) == 1 {
return nil, fmt.Errorf("no volume provided")
}
name := ps[1]
// multiple clients for possible performance improvement
var size int
if ssize := os.Getenv("JFS_NUM_GLUSTER_CLIENTS"); ssize != "" {
size, _ = strconv.Atoi(ssize)
if size > 8 {
size = 8
}
}
if size < 1 {
size = 1
}
// logging
level := gfapi.LogInfo
if slevel := os.Getenv("JFS_GLUSTER_LOG_LEVEL"); slevel != "" {
switch strings.ToUpper(slevel) {
case "ERROR":View on GitHub (pinned to c9a67b23e8)
Solutions
- Append the volume name to the endpoint, e.g. gluster://host/myvol
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at pkg/object/gluster.go:284 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/dcb21d63251dc0ba.
Report an issue: GitHub.