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

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


+
Jay Kreps 2013-01-17, 03:06
Copy link to this message
-
[jira] [Commented] (KAFKA-709) Default queue.enqueue.timeout.ms to -1
"Joe Stein 2013-01-21, 03:16

    [ 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