{"record":{"id":"a230bad3a6b39870","repo":"risingwavelabs/risingwave","slug":"parallelism-control-batch-size-must-be-greater-t","errorCode":null,"errorMessage":"`parallelism_control_batch_size` must be greater than 0","messagePattern":"`parallelism_control_batch_size` must be greater than 0","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"critical","filePath":"src/meta/node/src/lib.rs","lineNumber":626,"sourceCode":"            config.session_init,\n            shutdown,\n        ))\n        .await\n        .unwrap();\n    })\n}\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);","sourceCodeStart":608,"sourceCodeEnd":644,"githubUrl":"https://github.com/risingwavelabs/risingwave/blob/6469eb736d691e8e9b8a419a57edd6429ca77417/src/meta/node/src/lib.rs#L608-L644","documentation":"validate_config in src/meta/node/src/lib.rs:626 panics when `config.meta.parallelism_control_batch_size` equals 0. This batch size controls how many parallelism-control operations are processed per batch; zero would make batching meaningless or divide-by-zero-prone, so it is rejected at startup.","triggerScenarios":"Meta node startup (`start` -> `validate_config`) with `meta.parallelism_control_batch_size` set to 0 in the config.","commonSituations":"Users disabling the parallelism control feature by setting its batch size to 0, or mis-copied config files.","solutions":["Set `meta.parallelism_control_batch_size` to a positive integer (e.g. the default) in the config file.","If the goal is to disable parallelism control, use the dedicated feature flag rather than zeroing the batch size.","Delete the custom line to fall back to the built-in default."],"exampleFix":"// before\n[meta]\nparallelism_control_batch_size = 0\n\n// after\n[meta]\nparallelism_control_batch_size = 256","handlingStrategy":"validation","validationCode":"assert!(cfg.meta.parallelism_control_batch_size > 0, \"parallelism_control_batch_size must be > 0\");","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Use config schema checks or `config` crate typed validation before startup.","Never zero a batch-size knob to disable a feature; find the dedicated toggle.","Regenerate example config after upgrades (`./risedev generate-example-config`)."],"tags":["config","meta-node","startup","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"}