Vamsi Subhash Achanta created KAFKA-3657: --------------------------------------------
Summary: NewProducer NullPointerException on ProduceRequest Key: KAFKA-3657 URL: https://issues.apache.org/jira/browse/KAFKA-3657 Project: Kafka Issue Type: Bug Components: network, producer Affects Versions: 0.8.2.1 Environment: linux 3.2.0 debian7 Reporter: Vamsi Subhash Achanta Assignee: Jun Rao The producer upon send.get() on the future appends to the accumulator the record batches and the Sender.java (separate thread) flushes it to the server. The produce request waits on the countDownLatch in the FutureRecordMetadata: public RecordMetadata get() throws InterruptedException, ExecutionException { this.result.await(); In this case, the client thread is blocked for ever (as it is get() without timeout) for the response and the response upon poll by the Sender returns an attachment with the batch value as null. The batch is processed and the request is errored out. The Sender catches a global level exception and then goes ahead. As the accumulator is drained, the response will never be returned and the producer client thread calling get() is blocked for ever on the latch await call. I checked at the server end but still haven't found the reason for null batch. Any pointers on this? ERROR [2016-05-01 21:00:09,256] [kafka-producer-network-thread |producer-app] [Sender] message_id: group_id: : Uncaught error in kafka producer I/O thread: ! java.lang.NullPointerException: null ! at org.apache.kafka.clients.producer.internals.Sender.completeBatch(Sender.java:266) ! at org.apache.kafka.clients.producer.internals.Sender.handleResponse(Sender.java:236) ! at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:196) ! at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:122) ! at java.lang.Thread.run(Thread.java:745) -- This message was sent by Atlassian JIRA (v6.3.4#6332)