[ https://issues.apache.org/jira/browse/KAFKA-7565?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16767474#comment-16767474 ]
Rajini Sivaram commented on KAFKA-7565: --------------------------------------- [~hachikuji] I am not sure if this is covered by your PR for KAFKA-7831. We have a check for whether the partitions returned in a fetch response are still in the fetch session and we return if that is not the case: https://github.com/apache/kafka/blob/b02b5b63a5d43ab552c6cec1237707b2edd1bb36/clients/src/main/java/org/apache/kafka/clients/consumer/internals/Fetcher.java#L234 Further down in the code, we assume that the partitions do exist in the session and access the partitions without checking for null: https://github.com/apache/kafka/blob/b02b5b63a5d43ab552c6cec1237707b2edd1bb36/clients/src/main/java/org/apache/kafka/clients/consumer/internals/Fetcher.java#L243 Presumably fetch session partitions can change in between lines 234 aand 243 since the response could be processed on the heartbeat thread. With the changes from your PR for KAFKA-7831, can we guarantee that the session partitions wont change? > NPE in KafkaConsumer > -------------------- > > Key: KAFKA-7565 > URL: https://issues.apache.org/jira/browse/KAFKA-7565 > Project: Kafka > Issue Type: Bug > Components: clients > Affects Versions: 1.1.1 > Reporter: Alexey Vakhrenev > Priority: Critical > Fix For: 2.2.0 > > > The stacktrace is > {noformat} > java.lang.NullPointerException > at > org.apache.kafka.clients.consumer.internals.Fetcher$1.onSuccess(Fetcher.java:221) > at > org.apache.kafka.clients.consumer.internals.Fetcher$1.onSuccess(Fetcher.java:202) > at > org.apache.kafka.clients.consumer.internals.RequestFuture.fireSuccess(RequestFuture.java:167) > at > org.apache.kafka.clients.consumer.internals.RequestFuture.complete(RequestFuture.java:127) > at > org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient$RequestFutureCompletionHandler.fireCompletion(ConsumerNetworkClient.java:563) > at > org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.firePendingCompletedRequests(ConsumerNetworkClient.java:390) > at > org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:244) > at > org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:233) > at > org.apache.kafka.clients.consumer.KafkaConsumer.pollOnce(KafkaConsumer.java:1171) > at > org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:1115) > {noformat} > Couldn't find minimal reproducer, but it happens quite often in our system. > We use {{pause()}} and {{wakeup()}} methods quite extensively, maybe it is > somehow related. -- This message was sent by Atlassian JIRA (v7.6.3#76005)