[ 
https://issues.apache.org/jira/browse/KAFKA-19044?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Lucas Brutschy updated KAFKA-19044:
-----------------------------------
    Description: 
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. The aim of this ticket 
is to implement a check and a behavior for the first version of the protocol, 
which is to always return `INVALID_REQUEST` if an unknown task is sent to the 
group coordinator.

We can relax this constraint once we allow topology updating with topology 
epochs.

 

  was:
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. 

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.

 


> 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
>          Components: streams
>            Reporter: Lucas Brutschy
>            Priority: Major
>
> 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. The aim of this 
> ticket is to implement a check and a behavior for the first version of the 
> protocol, which is to always return `INVALID_REQUEST` if an unknown task is 
> sent to the group coordinator.
> We can relax this constraint once we allow topology updating with topology 
> epochs.
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to