{"record":{"id":"e8ec16cd0051fe8f","repo":"risingwavelabs/risingwave","slug":"sharedbuffer-error-0","errorCode":null,"errorMessage":"SharedBuffer error: {0}","messagePattern":"SharedBuffer error: (.+?)","errorType":"exception","errorClass":"HummockError","httpStatus":null,"severity":"error","filePath":"src/storage/src/hummock/error.rs","lineNumber":45,"sourceCode":"    #[error(\"Invalid format version: {0}\")]\n    InvalidFormatVersion(u32),\n    #[error(\"Checksum mismatch: expected {expected}, found: {found}\")]\n    ChecksumMismatch { expected: u64, found: u64 },\n    #[error(\"Invalid block\")]\n    InvalidBlock,\n    #[error(\"Encode error: {0}\")]\n    EncodeError(String),\n    #[error(\"Decode error: {0}\")]\n    DecodeError(String),\n    #[error(\"ObjectStore failed with IO error: {0}\")]\n    ObjectIoError(\n        #[from]\n        #[backtrace]\n        ObjectError,\n    ),\n    #[error(\"Meta error: {0}\")]\n    MetaError(String),\n    #[error(\"SharedBuffer error: {0}\")]\n    SharedBufferError(String),\n    #[error(\"Wait epoch error: {0}\")]\n    WaitEpoch(String),\n    #[error(\"Next epoch error: {0}\")]\n    NextEpoch(String),\n    #[error(\"Change log retention miss: table {table_id}, epoch {epoch}\")]\n    ChangeLogRetentionMiss { table_id: TableId, epoch: u64 },\n    #[error(\"Time-travel version expired: table {table_id}, epoch {epoch}\")]\n    TimeTravelVersionExpired { table_id: TableId, epoch: u64 },\n    #[error(\n        \"Committed epoch mismatch: table {table_id}, committed_epoch {committed_epoch}, read_epoch {read_epoch}\"\n    )]\n    CommittedEpochMismatch {\n        table_id: TableId,\n        committed_epoch: u64,\n        read_epoch: u64,\n    },\n    #[error(\"Barrier read is unavailable for now. Likely the cluster is recovering\")]","sourceCodeStart":27,"sourceCodeEnd":63,"githubUrl":"https://github.com/risingwavelabs/risingwave/blob/6469eb736d691e8e9b8a419a57edd6429ca77417/src/storage/src/hummock/error.rs#L27-L63","documentation":"An operation on Hummock's in-memory shared buffer (write batch/memtable staging) failed, with the reason in the String payload. Shared buffers hold recently written data before it is uploaded as SSTs, so this surfaces during flush/ingest handling of that buffer. The string describes the specific failure.","triggerScenarios":"Writing to or flushing a write batch/shared buffer where the buffer-layer operation (build/append/serialize) returns an error.","commonSituations":"Memory pressure or misconfigured shared buffer size; serialization failure of buffered data; internal bugs in batch handling under concurrent writes.","solutions":["Read the wrapped message to pinpoint the shared-buffer operation that failed.","Check hummock shared buffer size config and worker memory limits; increase if under-provisioned.","Retry the write/flush; transient failures during flush usually succeed after retry.","Report to maintainers with the message if it reproduces on a supported configuration."],"exampleFix":"// before\n[storage] shared_buffer_size = \"64MB\"  # too small for write load\n// after\n[storage] shared_buffer_size = \"1GB\"","handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"// Rust\nmatch hummock_write(batch) {\n    Err(e) if e.to_string().starts_with(\"SharedBuffer error\") => {\n        // inspect message; consider retry after buffer pressure subsides\n    }\n    r => r?,\n}","preventionTips":["Size shared_buffer_size to the write workload.","Monitor memory usage on storage nodes.","Retry flush failures with backoff before failing writes."],"tags":["storage","hummock","memtable","memory"],"backgroundTag":"internal-invariant-violation","analyzedSha":"6469eb736d691e8e9b8a419a57edd6429ca77417","analyzedAt":"2026-09-11T21:06:21.487Z","contentChangedAt":"2026-09-11T21:06:21.487Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}