[
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)