[ https://issues.apache.org/jira/browse/KAFKA-6979?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16780983#comment-16780983 ]
Shannon Carey commented on KAFKA-6979: -------------------------------------- This change is very useful to prevent KafkaConsumer.position() from blocking forever when there is no leader for a partition. In previous versions of Kafka client (0.10, 0.11), the stack trace would look something like below, due to Fetcher#resetOffset() passing Long.MAX_VALUE as the timeout to Fetcher#retrieveOffsetsByTimes(). {code:java} java.lang.Thread.State: RUNNABLE at sun.nio.ch.KQueueArrayWrapper.kevent0(KQueueArrayWrapper.java:-1) at sun.nio.ch.KQueueArrayWrapper.poll(KQueueArrayWrapper.java:198) at sun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:117) at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86) - locked <0x2562> (a sun.nio.ch.KQueueSelectorImpl) - locked <0x2563> (a java.util.Collections$UnmodifiableSet) - locked <0x2564> (a sun.nio.ch.Util$2) at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97) at org.apache.kafka.common.network.Selector.select(Selector.java:489) at org.apache.kafka.common.network.Selector.poll(Selector.java:298) at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:349) at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:226) - locked <0x2565> (a org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient) at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:203) at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.awaitMetadataUpdate(ConsumerNetworkClient.java:138) at org.apache.kafka.clients.consumer.internals.Fetcher.retrieveOffsetsByTimes(Fetcher.java:422) at org.apache.kafka.clients.consumer.internals.Fetcher.resetOffset(Fetcher.java:370) at org.apache.kafka.clients.consumer.internals.Fetcher.resetOffsetsIfNeeded(Fetcher.java:227) at org.apache.kafka.clients.consumer.KafkaConsumer.updateFetchPositions(KafkaConsumer.java:1592) at org.apache.kafka.clients.consumer.KafkaConsumer.position(KafkaConsumer.java:1265) {code} > Add max.block.ms to consumer for default timeout behavior > --------------------------------------------------------- > > Key: KAFKA-6979 > URL: https://issues.apache.org/jira/browse/KAFKA-6979 > Project: Kafka > Issue Type: Improvement > Components: consumer > Reporter: Jason Gustafson > Assignee: Dhruvil Shah > Priority: Blocker > Fix For: 2.0.0 > > > Implement max.block.ms as described in KIP-266: > https://cwiki.apache.org/confluence/display/KAFKA/KIP-266%3A+Fix+consumer+indefinite+blocking+behavior. -- This message was sent by Atlassian JIRA (v7.6.3#76005)