Chris Riccomini created KAFKA-709:
-------------------------------------

             Summary: Default queue.enqueue.timeout.ms to -1
                 Key: KAFKA-709
                 URL: https://issues.apache.org/jira/browse/KAFKA-709
             Project: Kafka
          Issue Type: Bug
          Components: producer 
    Affects Versions: 0.8
            Reporter: Chris Riccomini
            Assignee: Jun Rao


Hey Guys,

It seems that, by default, producers in 0.8 are async, and have a default 
queue.enqueue.timeout.ms of 0. This means that anyone who reads messages faster 
than they're producing them will likely end up eventually hitting this 
exception:

Exception in thread "Thread-3" kafka.common.QueueFullException: Event queue is 
full of unsent messages, could not send event: 
KeyedMessage(PageViewEventByGroupJson,Missing Page 
Group,java.nio.HeapByteBuffer[pos=0 lim=125 cap=125])
        at 
kafka.producer.Producer$$anonfun$asyncSend$1.apply(Producer.scala:111)
        at kafka.producer.Producer$$anonfun$asyncSend$1.apply(Producer.scala:89)
        at 
scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:34)
        at scala.collection.mutable.WrappedArray.foreach(WrappedArray.scala:32)
        at kafka.producer.Producer.asyncSend(Producer.scala:89)
        at kafka.producer.Producer.send(Producer.scala:77)

As it says in https://cwiki.apache.org/KAFKA/kafka-mirroring.html, this can 
result in losing messages, and nasty exceptions in the logs. I think the better 
default is setting queue.enqueue.timeout.ms to -1, which will just block until 
the queue frees up.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to