risingwavelabs/risingwave · critical
`iceberg_compaction_config_refresh_interval_sec` must be gre
Error message
`iceberg_compaction_config_refresh_interval_sec` must be greater than 0
What it means
validate_config in src/meta/node/src/lib.rs:656 panics when `meta.iceberg_compaction_config_refresh_interval_sec` is 0. This interval controls how often the meta node refreshes Iceberg compaction configuration; a zero interval would busy-loop refreshes and is rejected.
Source
Thrown at src/meta/node/src/lib.rs:656
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_config_refresh_interval_sec` to a positive value (e.g. 30) in the config file.
- Remove the override to use the default refresh interval.
- Restart the meta node after correcting the value; the check runs only at startup.
Example fix
// before [meta] iceberg_compaction_config_refresh_interval_sec = 0 // after [meta] iceberg_compaction_config_refresh_interval_sec = 30
Defensive patterns
Strategy: validation
Validate before calling
assert!(cfg.meta.iceberg_compaction_config_refresh_interval_sec > 0, "iceberg_compaction_config_refresh_interval_sec must be > 0");
Prevention
- Don't zero refresh intervals for immediacy; restart the node after config edits instead.
- Add automated asserts on startup-critical meta fields.
- Pin production configs to reviewed defaults.
When it happens
Trigger: Meta node startup with `meta.iceberg_compaction_config_refresh_interval_sec` set to 0 in the config.
Common situations: Trying to make config changes take effect immediately by zeroing the refresh interval, or copy-paste config mistakes.
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.
Related errors
- 'copy-on-write' mode is not supported for append-only iceber
- Invalid order key: empty item in `{expr}`
- Invalid order key item `{item}`
- Duplicate column `{column}` in order_key
- `meta_leader_lease_secs` must be greater than 2
AI-assisted analysis of risingwavelabs/risingwave@6469eb736d (2026-09-11).
Data as JSON: /api/errors/2ba603bf39be38d5.
Report an issue: GitHub.