{"record":{"id":"893fab5672ceb1fa","repo":"juicedata/juicefs","slug":"failed-to-get-an-object-expect-hello-but-got","errorCode":null,"errorMessage":"failed to get an object: expect \"hello\", but got %v, error: %s","messagePattern":"failed to get an object: expect \"hello\", but got (.+?), error: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cmd/objbench.go","lineNumber":793,"sourceCode":"\t})\n\n\trunCase(\"put an object\", func(blob object.ObjectStorage) error {\n\t\tbr := []byte(\"hello\")\n\t\tif err := blob.Put(ctx, key, bytes.NewReader(br)); err != nil {\n\t\t\treturn fmt.Errorf(\"put object failed: %s\", err)\n\t\t}\n\t\tdefer blob.Delete(ctx, key) //nolint:errcheck\n\t\treturn nil\n\t})\n\n\trunCase(\"get an object\", func(blob object.ObjectStorage) error {\n\t\tbr := []byte(\"hello\")\n\t\tif err := blob.Put(ctx, key, bytes.NewReader(br)); err != nil {\n\t\t\treturn fmt.Errorf(\"put object failed: %s\", err)\n\t\t}\n\t\tdefer blob.Delete(ctx, key) //nolint:errcheck\n\t\tif d, e := get(blob, key, 0, -1); e != nil || d != string(br) {\n\t\t\treturn fmt.Errorf(`failed to get an object: expect \"hello\", but got %v, error: %s`, d, e)\n\t\t}\n\t\tif d, e := get(blob, key, 0, 5); e != nil || d != string(br) {\n\t\t\treturn fmt.Errorf(`failed to get an object: expect \"hello\", but got %v, error: %s`, d, e)\n\t\t}\n\t\treturn nil\n\t})\n\n\trunCase(\"get non-exist\", func(blob object.ObjectStorage) error {\n\t\tif _, err := blob.Get(ctx, \"not_exists_file\", 0, -1); err == nil {\n\t\t\treturn fmt.Errorf(\"get not existed object should failed: %s\", err)\n\t\t}\n\t\treturn nil\n\t})\n\n\trunCase(\"get partial object\", func(blob object.ObjectStorage) error {\n\t\tbr := []byte(\"hello\")\n\t\tif err := blob.Put(ctx, key, bytes.NewReader(br)); err != nil {\n\t\t\treturn fmt.Errorf(\"put object failed: %s\", err)","sourceCodeStart":775,"sourceCodeEnd":811,"githubUrl":"https://github.com/juicedata/juicefs/blob/c9a67b23e8e08ec23ec331aa6f1675e2319e921c/cmd/objbench.go#L775-L811","documentation":"Returned by objbench's 'get an object' test when reading back the uploaded 'hello' object yields different bytes or errors. It verifies basic read-after-write correctness and reports the mismatched content and error.","triggerScenarios":"Thrown at cmd/objbench.go:793 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check endpoint/credentials and that no proxy alters object content","Re-run the benchmark to rule out transient corruption"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"c9a67b23e8e08ec23ec331aa6f1675e2319e921c","analyzedAt":"2026-09-06T17:55:48.476Z","contentChangedAt":"2026-09-06T17:55:48.476Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}