Lucas Bradstreet created KAFKA-9946:
---------------------------------------
Summary: KAFKA-9539/StopReplicaRequest deletePartition changes may
cause premature topic deletion handling in controller
Key: KAFKA-9946
URL: https://issues.apache.org/jira/browse/KAFKA-9946
Project: Kafka
Issue Type: Bug
Components: core
Affects Versions: 2.6.0
Reporter: Lucas Bradstreet
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|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.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)