{"record":{"id":"934eaaaf01e74765","repo":"risingwavelabs/risingwave","slug":"checkpoint-read-chunk-size-must-be-greater-than","errorCode":null,"errorMessage":"`checkpoint_read_chunk_size` must be greater than 0","messagePattern":"`checkpoint_read_chunk_size` must be greater than 0","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"critical","filePath":"src/meta/node/src/lib.rs","lineNumber":632,"sourceCode":"}\n\nfn validate_config(config: &RwConfig) {\n    if config.meta.meta_leader_lease_secs <= 2 {\n        let error_msg = \"`meta_leader_lease_secs` must be greater than 2\";\n        tracing::error!(error_msg);\n        panic!(\"{}\", error_msg);\n    }\n\n    if config.meta.parallelism_control_batch_size == 0 {\n        let error_msg = \"`parallelism_control_batch_size` must be greater than 0\";\n        tracing::error!(error_msg);\n        panic!(\"{}\", error_msg);\n    }\n\n    if config.meta.checkpoint_read_chunk_size == 0 {\n        let error_msg = \"`checkpoint_read_chunk_size` must be greater than 0\";\n        tracing::error!(error_msg);\n        panic!(\"{}\", error_msg);\n    }\n\n    if config.meta.checkpoint_read_max_in_flight_chunks == 0 {\n        let error_msg = \"`checkpoint_read_max_in_flight_chunks` must be greater than 0\";\n        tracing::error!(error_msg);\n        panic!(\"{}\", error_msg);\n    }\n\n    if config.meta.compaction_task_id_refill_capacity == 0 {\n        let error_msg = \"`compaction_task_id_refill_capacity` must be greater than 0\";\n        tracing::error!(error_msg);\n        panic!(\"{}\", error_msg);\n    }\n\n    if config.meta.iceberg_compaction_report_timeout_sec == 0 {\n        let error_msg = \"`iceberg_compaction_report_timeout_sec` must be greater than 0\";\n        tracing::error!(error_msg);\n        panic!(\"{}\", error_msg);","sourceCodeStart":614,"sourceCodeEnd":650,"githubUrl":"https://github.com/risingwavelabs/risingwave/blob/6469eb736d691e8e9b8a419a57edd6429ca77417/src/meta/node/src/lib.rs#L614-L650","documentation":"validate_config in src/meta/node/src/lib.rs:632 panics when `config.meta.checkpoint_read_chunk_size` is 0. This value is the per-chunk size for checkpoint read operations from the hummock snapshot; zero-sized chunks are invalid and would stall or break checkpoint reads.","triggerScenarios":"Meta node startup with `meta.checkpoint_read_chunk_size` set to 0 in the config.","commonSituations":"Hand-tuned hummock checkpoint configs, editing example.toml carelessly, or env-var overrides resolving to 0.","solutions":["Set `meta.checkpoint_read_chunk_size` to a positive value in the config file.","Remove the override so the default chunk size is applied.","If you changed it for checkpoint performance, re-tune with a non-zero value (e.g. several MB) and benchmark."],"exampleFix":"// before\n[meta]\ncheckpoint_read_chunk_size = 0\n\n// after\n[meta]\ncheckpoint_read_chunk_size = 8388608","handlingStrategy":"validation","validationCode":"assert!(cfg.meta.checkpoint_read_chunk_size > 0, \"checkpoint_read_chunk_size must be > 0\");","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Prefer the documented defaults for hummock checkpoint tuning.","Add pre-deployment config validation to your deployment pipeline.","Comment units (bytes/chunks) next to each knob in config templates."],"tags":["config","meta-node","checkpoint","validation"],"backgroundTag":"invalid-config-value","analyzedSha":"6469eb736d691e8e9b8a419a57edd6429ca77417","analyzedAt":"2026-09-11T21:06:21.487Z","contentChangedAt":"2026-09-11T21:06:21.487Z","schemaVersion":2},"datasetVersion":"2026-09-14T16:17:12.679Z"}