Lucas Brutschy created KAFKA-19044: -------------------------------------- Summary: Handle tasks that are not present in the current topology Key: KAFKA-19044 URL: https://issues.apache.org/jira/browse/KAFKA-19044 Project: Kafka Issue Type: Sub-task Reporter: Lucas Brutschy
A heartbeat might be sent to the group coordinator, claiming to own tasks that we do not know about. This may happen for a variety of reasons. We need some logic to handle those requests. In KIP-1071, we propose to return `INVALID_REQUEST` error whenever this happens, effectively letting the clients crash. This is safe, and may be a valid approach for the first version of the protocol. This behavior will, however, make topology updates impossible. [~cadonna] proposed to only check that owned tasks match our set of expected tasks if the topology epochs between the group and the client match. However, even if we let clients crash only when they use the same topology epoch, that would mean that scaling down the number of input partitions for a stateless application would become impossible without crashing the applications. Long term, I am wondering if it isn't a better course of action to just ignore tasks that we do not expect. After all, the client is just saying what he thinks he owns. If we'd just ignore those tasks, the next target assignment would not include the tasks, so the client would automatically be instructed to revoke whatever tasks it thinks it currently has. The aim of this ticket is to implement a check and a behavior for the first version of the protocol, and create follow-up ticket(s) for any extensions for partition scaling and topology updating that we may want to add. -- This message was sent by Atlassian Jira (v8.20.10#820010)