Details
-
Bug
-
Status: Resolved
-
Critical
-
Resolution: Fixed
-
None
-
None
-
None
Description
It seems like https://github.com/apache/kafka/commit/7c7d55dbd8d42f6378d13ba02d62633366a7ede8 does not handle StopReplicaRequest where deletePartition(s) is set to false correctly when another delete topic request is outstanding at the time of the response being received.
In the failing code it seems like two StopReplicaRequest(s) are sent, one with the delete flag set on partitions, and one without. It seems like the request without the delete flag set on any partitions is prematurely triggering the controller to believe that the topic was deleted successfully.
We previously didn't set a callback if the StopReplicaRequest was not a delete request https://github.com/apache/kafka/commit/7c7d55dbd8d42f6378d13ba02d62633366a7ede8#diff-987fef43991384a3ebec5fb55e53b577L570. Now we set it unconditionally https://github.com/apache/kafka/commit/7c7d55dbd8d42f6378d13ba02d62633366a7ede8#diff-987fef43991384a3ebec5fb55e53b577L570, but the callback does not distinguish between the partition states where a delete was being performed and where it was not. This happens on all IBP versions.
Attachments
Issue Links
- links to