Hi
Iam using kafka async producer, after publisher 1M+ messages, all my
producer threads get hung and not doing any thing. Following is my thread
dump.

"KafkaMessageWorker-georrlite-2" #70 daemon prio=5 os_prio=0
tid=0x00007f85d00cc800 nid=0x56b4 waiting on condition [0x00007f859faf9000]
   java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for  <0x0000000664f444f8> (a
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
at
org.apache.kafka.clients.producer.internals.BufferPool.allocate(BufferPool.java:137)
at
org.apache.kafka.clients.producer.internals.RecordAccumulator.append(RecordAccumulator.java:157)
at
org.apache.kafka.clients.producer.KafkaProducer.send(KafkaProducer.java:338)

"KafkaMessageWorker-georrlite-1" #68 daemon prio=5 os_prio=0
tid=0x00007f85d00c5800 nid=0x56b3 waiting on condition [0x00007f859fbfa000]
   java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for  <0x0000000664eb4d10> (a
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
at
org.apache.kafka.clients.producer.internals.BufferPool.allocate(BufferPool.java:137)
at
org.apache.kafka.clients.producer.internals.RecordAccumulator.append(RecordAccumulator.java:157)
at
org.apache.kafka.clients.producer.KafkaProducer.send(KafkaProducer.java:338)


Is there any parameters i need to tweek or is it expected ?

When i looked at the code, there is a wait on condition
(BufferPool.java:137#moreMemory.await()), i am not getting clue when and
how will this lock is unlocked(or signaled).

-SK

Reply via email to