risingwavelabs/risingwave · error · MetaError
Hummock error: {0}
Error message
Hummock error: {0} What it means
MetaError::HummockError wraps the Hummock (RisingWave's cloud-native storage engine) error type into the meta error enum, displayed as 'Hummock error: {inner}'. Any failure in the state-store layer touched from the meta service (SST operations, version management, remote storage) surfaces through this wrapper.
Source
Thrown at src/meta/src/error.rs:52
thiserror::Error,
thiserror_ext::ReportDebug,
thiserror_ext::Arc,
thiserror_ext::Construct,
thiserror_ext::Macro,
)]
#[thiserror_ext(
newtype(name = MetaError, backtrace, extra_provide = Self::provide_postgres_error_code),
macro(path = "crate::error")
)]
pub enum MetaErrorInner {
#[error("Metadata model error: {0}")]
MetadataModelError(
#[from]
#[backtrace]
MetadataModelError,
),
#[error("Hummock error: {0}")]
HummockError(
#[from]
#[backtrace]
HummockError,
),
#[error(transparent)]
RpcError(
#[from]
#[backtrace]
RpcError,
),
#[error("{0}")]
PermissionDenied(String),
#[error("Invalid worker: {0}, {1}")]
InvalidWorker(WorkerId, String),View on GitHub (pinned to 6469eb736d)
Solutions
- Inspect the wrapped inner Hummock error for the concrete cause (IO, credentials, timeout).
- Verify object-store configuration (endpoint, bucket, credentials) and connectivity from the meta/worker nodes.
- Retry transient failures; for persistent GC/version errors, check hummock state in the meta catalog.
- Consult storage logs on both meta and compute nodes to localize which component failed.
Defensive patterns
Strategy: retry
Validate before calling
// Verify object-store reachability before Hummock-heavy operations let ok = s3_client.head_bucket(BucketName).await.is_ok(); assert!(ok, "object store must be reachable before meta operations");
Type guard
fn is_hummock_error(e: &MetaError) -> bool {
matches!(e, MetaError::HummockError(_))
} Try / catch
match commit_hummock_version().await {
Err(e @ MetaError::HummockError(inner)) if is_transient(&inner) => {
retry_with_backoff(3, || commit_hummock_version()).await?
}
other => other?,
} Prevention
- Validate object-store credentials/bucket config at startup with a smoke test.
- Set up monitoring on S3/object-store error rates and latency.
- Distinguish transient (network/timeout) from permanent (config) inner errors before retrying.
When it happens
Trigger: Meta-side Hummock operations failing via #[from] HummockError — e.g. committing new Hummock versions, GC/compaction scheduling, or reading object metadata — typically due to S3/object-store issues or version conflicts.
Common situations: Misconfigured or unreachable object storage (wrong S3 credentials/bucket); network problems to the object store; Hummock version conflicts after node restarts; full or throttled storage backends.
Related errors
AI-assisted analysis of risingwavelabs/risingwave@6469eb736d (2026-09-11).
Data as JSON: /api/errors/ede15c39be26bf3c.
Report an issue: GitHub.