[
https://issues.apache.org/jira/browse/KAFKA-5004?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15954476#comment-15954476
]
Matthias J. Sax commented on KAFKA-5004:
----------------------------------------
I did not know that this is by design -- talked to [~cmccabe] and he did not
know either. IMHO, a "clean" solution would be, to disable the heartbeat thread
if the client connects to {{0.10.0}} broker and sends heartbeats on {{poll()}}
as {{0.10.0}} consumer does. Not sure, how complex this would be to do though.
[~cmccabe] had the idea to set a "flag" on the heartbeat thread each time
{{poll()}} is called, and let the heartbeat thread stop if
{{max.poll.interval.ms}} passed and flag got not "renewed".
> poll() timeout not enforced when connecting to 0.10.0 broker
> ------------------------------------------------------------
>
> Key: KAFKA-5004
> URL: https://issues.apache.org/jira/browse/KAFKA-5004
> Project: Kafka
> Issue Type: Bug
> Components: clients, consumer
> Affects Versions: 0.10.2.0
> Reporter: Matthias J. Sax
>
> In 0.10.1, heartbeat thread and new poll timeout {{max.poll.interval.ms}} got
> introduced via KIP-62. In 0.10.2, we added client-broker backward
> compatibility.
> Now, if a 0.10.2 client connects to a 0.10.0 broker, the broker only
> understand the heartbeat timeout but not the poll timeout, while the client
> is still using the heartbeat background threat. Thus, the new client config
> {{max.poll.interval.ms}} is ignored.
> In the worst case, the polling threat might die while the heartbeat thread is
> still up. Thus, the broker would not timeout the client and no rebalance
> would be triggered while at the same time the client is effectively dead not
> making any progress in its assigned partitions.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)