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

Matthias J. Sax resolved KAFKA-21025.
-------------------------------------
    Resolution: Fixed

> StreamsGroupHeartbeatRequest.Builder does not clear owned warm-up tasks when 
> it negotiates request version 0
> ------------------------------------------------------------------------------------------------------------
>
>                 Key: KAFKA-21025
>                 URL: https://issues.apache.org/jira/browse/KAFKA-21025
>             Project: Kafka
>          Issue Type: Bug
>          Components: streams
>    Affects Versions: 4.4.0
>            Reporter: Matthias J. Sax
>            Assignee: Matthias J. Sax
>            Priority: Blocker
>             Fix For: 4.4.0
>
>
> `StreamsGroupHeartbeatRequest.Builder.build(short)` clears `TaskOffsets` and 
> `TaskEndOffsets` when the negotiated request version is 0, but does not clear 
> `WarmupTasks`. At the same time, a 4.2 or 4.3 broker rejects a heartbeat that 
> reports a non-empty set of owned warm-up tasks.
> So a client that owns a warm-up task and then negotiates RPC version 0 has 
> every heartbeat rejected with `InvalidRequestException`. The client cannot 
> clear the task on its own, because dropping it requires an assignment, and an 
> assignment only arrives in a heartbeat response. Restarting the member 
> recovers, since a re-joining member reports no owned tasks.
> This bug does not affect 4.4 directly, because we don't assign warmup tasks 
> yet, however, the bug will surface with 4.5 release: KS 4.4 is "warmup task 
> ready" and thus a 4.5 broker might assign warmup tasks to a 4.4 client. If 
> the broker get downgraded afterward to 4.3/4.2, the 4.4 client would report 
> its warmups to the broker, and the broker reject the heartbeat.



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

Reply via email to