Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
Kafka >> mail # dev >> [jira] [Commented] (KAFKA-709) Default queue.enqueue.timeout.ms to -1

Copy link to this message
[jira] [Commented] (KAFKA-709) Default queue.enqueue.timeout.ms to -1

    [ https://issues.apache.org/jira/browse/KAFKA-709?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13558500#comment-13558500 ]

Joe Stein commented on KAFKA-709:

found a test failing related to this

the fix I think is best to just update the AsyncProducerTest case for if someone changes the new default value to something like 0 so it goes to offer instead of put

adding the line props.put("queue.enqueue.timeout.ms", "0")

going to commit this change to AsyncProducerTest.testProducerQueueSize (line 68) so it passes again
> 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: Neha Narkhede
>         Attachments: kafka-709.patch
> 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