juicedata/juicefs · error

Invalid endpoint %s: %s

Error message

Invalid endpoint %s: %s

What it means

url.ParseRequestURI rejected the gluster endpoint after scheme prefixing. A validation guard: the endpoint string is not a parseable URI (malformed host, bad characters, missing authority), so no gluster volume connection can be attempted.

Source

Thrown at pkg/object/gluster.go:280

func (g *gluster) Chtimes(path string, mtime time.Time) error {
	return notSupported
}

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

View on GitHub (pinned to c9a67b23e8)

Solutions

  1. Provide a well-formed gluster endpoint, e.g. gluster://host/volume
Defensive patterns

Strategy: validation

When it happens

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