juicedata/juicefs · error

get start %v: %s

Error message

get start %v: %s

What it means

Returned by etcdClient.List when the etcd Get call for the range starting at the computed start key fails. It wraps the etcd client error (unreachable endpoint, timeout, auth) so listing cannot produce keys.

Source

Thrown at pkg/object/etcd.go:130

	return string(next)
}

func (c *etcdClient) List(ctx context.Context, prefix, start, token, delimiter string, limit int64, followLink bool) ([]Object, bool, string, error) {
	if delimiter != "" {
		return nil, false, "", notSupported
	}
	if start == "" {
		start = prefix
	}
	var opts = []etcd.OpOption{etcd.WithLimit(limit), etcd.WithSort(etcd.SortByKey, etcd.SortAscend)}
	if len(prefix) > 0 && prefix[0] != 0xFF {
		opts = append(opts, etcd.WithRange(genNextKey(prefix)))
	} else {
		opts = append(opts, etcd.WithFromKey())
	}
	resp, err := c.client.Get(ctx, start, opts...)
	if err != nil {
		return nil, false, "", fmt.Errorf("get start %v: %s", start, err)
	}
	var objs []Object
	for _, kv := range resp.Kvs {
		k := string(kv.Key)
		if !strings.HasPrefix(k, prefix) {
			break
		}
		objs = append(objs, &obj{
			k,
			int64(len(kv.Value)),
			time.Now(),
			strings.HasSuffix(k, "/"),
			"",
			"",
		})
	}
	var nextMarker string
	if resp.More && len(objs) > 0 {

View on GitHub (pinned to c9a67b23e8)

Solutions

  1. Check etcd endpoint health and network connectivity
  2. Verify etcd credentials if authentication is enabled
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at pkg/object/etcd.go:130 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/bc7faad961b062b6. Report an issue: GitHub.