juicedata/juicefs · error

put object failed: %s

Error message

put object failed: %s

What it means

A filesystem-only benchmark case attempted blob.Put of a small test object (key 'put_test_file') and the underlying storage rejected the write. Wraps the storage-layer error so the benchmark reports which filesystem-backed object operation failed.

Source

Thrown at cmd/objbench.go:752

			return "", err
		}
		defer r.Close()
		data, err := io.ReadAll(r)
		if err != nil {
			return "", err
		}
		return string(data), nil
	}
	key := "put_test_file"

	funFSCase := func(name string, fn func() error) {
		runCase(name, func(blob object.ObjectStorage) error {
			if !isFileSystem {
				return utils.ErrNotSUP
			}
			br := []byte("hello")
			if err := blob.Put(ctx, key, bytes.NewReader(br)); err != nil {
				return fmt.Errorf("put object failed: %s", err)
			}
			defer blob.Delete(ctx, key) //nolint:errcheck
			return warning(fn())
		})
	}

	runCase("create a bucket", func(blob object.ObjectStorage) error {
		created := true
		if err := blob.Put(ctx, key, bytes.NewReader([]byte("1"))); err != nil {
			created = false
		}
		defer blob.Delete(ctx, key) //nolint:errcheck

		if !created {
			if err := blob.Create(ctx); err != nil {
				return fmt.Errorf("can't create bucket: %s", err)
			}
		}

View on GitHub (pinned to c9a67b23e8)

Solutions

  1. Check write permissions and space on the target storage
  2. Verify the endpoint/credentials used by objbench
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at cmd/objbench.go:752 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/294b242268dea2a3. Report an issue: GitHub.