radai rosenblatt created KAFKA-4228: ---------------------------------------
Summary: Sender thread death leaves KafkaProducer in a bad state Key: KAFKA-4228 URL: https://issues.apache.org/jira/browse/KAFKA-4228 Project: Kafka Issue Type: Bug Components: clients Affects Versions: 0.10.0.1 Reporter: radai rosenblatt a KafkaProducer's Sender thread may die: {noformat} 2016/09/28 00:28:01.065 ERROR [KafkaThread] [kafka-producer-network-thread | mm_ei-lca1_uniform] [kafka-mirror-maker] [] Uncaught exception in kafka-producer-network-thread | mm_ei-lca1_uni java.lang.OutOfMemoryError: Java heap space at java.nio.HeapByteBuffer.<init>(HeapByteBuffer.java:57) ~[?:1.8.0_40] at java.nio.ByteBuffer.allocate(ByteBuffer.java:335) ~[?:1.8.0_40] at org.apache.kafka.common.requests.RequestSend.serialize(RequestSend.java:35) ~[kafka-clients-0.9.0.666.jar:?] at org.apache.kafka.common.requests.RequestSend.<init>(RequestSend.java:29) ~[kafka-clients-0.9.0.666.jar:?] at org.apache.kafka.clients.producer.internals.Sender.produceRequest(Sender.java:355) ~[kafka-clients-0.9.0.666.jar:?] at org.apache.kafka.clients.producer.internals.Sender.createProduceRequests(Sender.java:337) ~[kafka-clients-0.9.0.666.jar:?] at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:211) ~[kafka-clients-0.9.0.666.jar:?] at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:134) ~[kafka-clients-0.9.0.666.jar:?] at java.lang.Thread.run(Thread.java:745) [?:1.8.0_40] {noformat} which leaves the producer in a bad state. in this state, a call to flush(), for example, will hang indefinitely as the sender thread is not around to flush batches but theyve not been aborted. even worse, this can happen in MirrorMaker just before a rebalance, at which point MM will just block indefinitely during a rebalance and the end result is unowned topic partitions. a dead sender thread should result in closing the producer, and a closed producer should result in MirrorMaker death. -- This message was sent by Atlassian JIRA (v6.3.4#6332)