{"record":{"id":"437bf8157b6223b3","repo":"rustfs/rustfs","slug":"selectobjectcontent-object-has-invalid-logical-siz","errorCode":null,"errorMessage":"SelectObjectContent object has invalid logical size {size}","messagePattern":"SelectObjectContent object has invalid logical size (.+?)","errorType":"exception","errorClass":"PrepareSelectObjectSnapshotError","httpStatus":null,"severity":"error","filePath":"crates/ecstore/src/store/object.rs","lineNumber":862,"sourceCode":"                            return Err(StorageError::PrefixAccessDenied(bucket.to_string(), object_info.name.clone()));\n                        }\n                    }\n                    if !page.is_truncated {\n                        break;\n                    }\n                    let next_marker = page\n                        .next_marker\n                        .ok_or_else(|| Error::other(\"recursive delete version scan did not return a continuation marker\"))?;\n                    if marker.as_ref() == Some(&next_marker) && version_marker == page.next_version_idmarker {\n                        return Err(Error::other(\"recursive delete version scan did not advance\"));\n                    }\n                    marker = Some(next_marker);\n                    version_marker = page.next_version_idmarker;\n                }\n            }\n        }\n    }\n    delete_prefix_with_tier_delete_journal(store, bucket, object, opts, tier_journal_api).await\n}\n\n/// A GET whose object identity has been resolved while its namespace read lock\n/// remains held, but whose body reader has not been constructed yet.\n///\n/// The application can evaluate request preconditions and cache coordination\n/// against [`Self::object_info`] before consuming this value. Dropping it\n/// releases the read lock without constructing a body reader.\npub struct PreparedGetObjectReader {\n    pool: Arc<Sets>,\n    bucket: String,\n    object: String,\n    range: Option<HTTPRangeSpec>,\n    headers: HeaderMap,\n    opts: ObjectOptions,\n    metadata: crate::set_disk::PreparedGetObjectMetadata,\n    read_lock_guard: Option<ObjectLockDiagGuard>,\n}","sourceCodeStart":844,"sourceCodeEnd":880,"githubUrl":"https://github.com/rustfs/rustfs/blob/5dca076efed96e7b842de07c4c2111035ae7c7a2/crates/ecstore/src/store/object.rs#L844-L880","documentation":"PrepareSelectObjectSnapshotError::InvalidSize: the object's logical size recorded in metadata is not usable for snapshotting (e.g. negative or nonsensical), so ranges over it cannot be trusted; indicates corrupted metadata.","triggerScenarios":"Thrown at crates/ecstore/src/store/object.rs:466 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Heal the object metadata from consistent replicas","Reject the Select request as invalid object state","Verify xl.meta size fields on the affected disks"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"5dca076efed96e7b842de07c4c2111035ae7c7a2","analyzedAt":"2026-08-20T21:57:04.799Z","contentChangedAt":"2026-08-20T21:57:04.799Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}