This fixes #5 reported by @s905060 where a new assignment could not be generated in some cases. The issue happens because the reassignment algorithm overoptimize to avoid movement of replicas at the cost of entering a state where a replica cannot be assigned to any broker. This PR fixes the issue by retrying assignment by allowing an incrementally-increasing number of partition movement, until an assignment succeeds.
This fixes #5 reported by @s905060 where a new assignment could not be generated in some cases. The issue happens because the reassignment algorithm overoptimize to avoid movement of replicas at the cost of entering a state where a replica cannot be assigned to any broker. This PR fixes the issue by retrying assignment by allowing an incrementally-increasing number of partition movement, until an assignment succeeds.