Skip to content

KAFKA-20532: Defensive trimming of min.insync.replicas in controller and kafka-topics to tolerate whitespace-contaminated configs#22453

Open
sahildevgon wants to merge 1 commit into
apache:trunkfrom
sahildevgon:kafka-20532
Open

KAFKA-20532: Defensive trimming of min.insync.replicas in controller and kafka-topics to tolerate whitespace-contaminated configs#22453
sahildevgon wants to merge 1 commit into
apache:trunkfrom
sahildevgon:kafka-20532

Conversation

@sahildevgon

Copy link
Copy Markdown

Summary :
Whitespace-contaminated min.insync.replicas values silently accepted at write time cause a controller failover loop and full cluster unavailability with no operator-visible warning, because the --describe observability path trims whitespace before displaying the value.

Impact
A topic config min.insync.replicas stored with leading or trailing whitespace (e.g. " 2") causes the KRaft controller to enter a continuous failover loop, making the cluster unavailable. The crash is triggered on every alterPartition event (e.g. any replica
restart), so recovery is not spontaneous. Critically, kafka-topics.sh --describe silently strips the whitespace before displaying the value, so the corrupted config is invisible to operators. There is no log warning, no alert, and no way to detect the problem via the standard Admin API observability path. An operator can stare at a failing cluster and see only
clean config values.

More Details in JIRA : https://issues.apache.org/jira/browse/KAFKA-20532

@github-actions github-actions Bot added triage PRs from the community tools kraft labels Jun 2, 2026
…and kafka-topics to tolerate whitespace-contaminated configs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kraft tools triage PRs from the community

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant