risingwavelabs/risingwave · critical
`iceberg_compaction_report_timeout_sec` must be greater than
Error message
`iceberg_compaction_report_timeout_sec` must be greater than 0
What it means
validate_config in src/meta/node/src/lib.rs:650 panics when `config.meta.iceberg_compaction_report_timeout_sec` is 0. This timeout bounds how long the meta node waits for Iceberg compaction progress reports; zero would time out immediately and break Iceberg compaction reporting.
Source
Thrown at src/meta/node/src/lib.rs:650
panic!("{}", error_msg);
}
if config.meta.checkpoint_read_max_in_flight_chunks == 0 {
let error_msg = "`checkpoint_read_max_in_flight_chunks` must be greater than 0";
tracing::error!(error_msg);
panic!("{}", error_msg);
}
if config.meta.compaction_task_id_refill_capacity == 0 {
let error_msg = "`compaction_task_id_refill_capacity` must be greater than 0";
tracing::error!(error_msg);
panic!("{}", error_msg);
}
if config.meta.iceberg_compaction_report_timeout_sec == 0 {
let error_msg = "`iceberg_compaction_report_timeout_sec` must be greater than 0";
tracing::error!(error_msg);
panic!("{}", error_msg);
}
if config.meta.iceberg_compaction_config_refresh_interval_sec == 0 {
let error_msg = "`iceberg_compaction_config_refresh_interval_sec` must be greater than 0";
tracing::error!(error_msg);
panic!("{}", error_msg);
}
}
View on GitHub (pinned to 6469eb736d)
Solutions
- Set `meta.iceberg_compaction_report_timeout_sec` to a positive value in the config file.
- Remove the override so the default timeout applies.
- If reporting is undesirable, look for a dedicated enable/disable flag instead of a zero timeout.
Example fix
// before [meta] iceberg_compaction_report_timeout_sec = 0 // after [meta] iceberg_compaction_report_timeout_sec = 30
Defensive patterns
Strategy: validation
Validate before calling
assert!(cfg.meta.iceberg_compaction_report_timeout_sec > 0, "iceberg_compaction_report_timeout_sec must be > 0");
Prevention
- Never use zero timeouts to disable behavior; search for a feature flag instead.
- Include Iceberg knobs in your config review checklist.
- Test Iceberg compaction in staging after any meta config change.
When it happens
Trigger: Meta node startup with `meta.iceberg_compaction_report_timeout_sec` set to 0 in the config.
Common situations: Iceberg table setups where users attempted to disable reporting via a zero timeout, or typos in config files.
Understand the failure class
Background: "Invalid value" and "allowed values are" config errors: what your library rejected and how to fix it — this error's family across 41 libraries.
- Timeouts: ETIMEDOUT, deadlines, and hung requests — what actually expires when a request times out.
Related errors
- `compaction.type` must not be set when `write_mode` is `copy
- `{option}` is not supported for '{}' compaction type
- `compaction-interval-sec` must be greater than 0 when `enabl
- `compaction.max_snapshots_num` must be greater than 0, got:
- `compaction.target_file_size_mb` must be greater than 0
AI-assisted analysis of risingwavelabs/risingwave@6469eb736d (2026-09-11).
Data as JSON: /api/errors/07f1192ec6bb1cae.
Report an issue: GitHub.