kafka runtime_error ai_generated true

org.apache.kafka.common.errors.ReassignmentInProgressException:分区my_topic-0没有进行中的重新分配

org.apache.kafka.common.errors.ReassignmentInProgressException: No reassignment in progress for partition my_topic-0

ID: kafka/no-reassignment-in-progress

其他格式: JSON · Markdown 中文 · English
88%修复率
84%置信度
1证据数
2024-03-10首次发现

根因分析

管理客户端尝试取消或修改一个不存在或已完成的重新分配,原因是元数据过期或分区标识符错误。

English

Admin client attempted to cancel or alter a partition reassignment that does not exist or has already completed, due to stale metadata or incorrect partition identifier.

generic

官方文档

https://kafka.apache.org/documentation/#adminclient_reassignpartitions

解决方案

  1. First, verify the current reassignment status using `kafka-reassign-partitions.sh --bootstrap-server localhost:9092 --verify --reassignment-json-file reassign.json`. If completed, no further action needed.
  2. If the reassignment never started due to a previous error, re-submit the reassignment JSON using `kafka-reassign-partitions.sh --execute` with the correct partition list.
  3. Use the AdminClient API: `adminClient.listPartitionReassignments().all().get()` to check active reassignments before attempting cancel. Example Java code: `ListPartitionReassignmentsResult result = adminClient.listPartitionReassignments();`

无效尝试

常见但无效的做法:

  1. 90% 失败

    If the reassignment is already complete, retrying the same cancel will always fail because there is no in-progress reassignment.

  2. 70% 失败

    In modern Kafka (2.6+), reassignments are tracked via the 'reassign_partitions' topic; deleting ZK nodes is ineffective and may cause corruption.

  3. 80% 失败

    Restarting a broker does not affect the reassignment state; the admin client will still see no in-progress reassignment.