activemq-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Christian Posta (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (APLO-201) Warning on reaching nack limit(DLQ): java.lang.AssertionError: assertion failed: uow.have_locators
Date Thu, 12 Jul 2012 20:07:35 GMT

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

Christian Posta commented on APLO-201:
--------------------------------------

So here's what I observed & have attached a unit test.

By the time nak_limit is reached, the message was already flushed to disk and is sent to the
specified dead-letter queue. Since there are either no consumers on the DLQ, or there are
slow consumers on the DLQ, the message/QueueEntryRecord for the DLQ will eventually get flushed
to disk too but Apollo will complain since the message isn't actually in memory anymore (it
was already put onto disk when it first came in to the original queue so a.message_record==null).
Since LevelDB is considered "locator_based" we might not need to have the message_record !=null
..there might be some alterations to the logic that determines whether "have_locators" is
true or false. Will talk with Hiram. 

 def have_locators:Boolean = {
      actions.values.foreach{ a =>
        // There must either be a dequeue or a message record for a enqueue request.
        if( !a.enqueues.isEmpty && ( a.message_record==null && a.dequeues.isEmpty
) ) {
          return false
        }
        if( locator_based && a.message_record==null && !a.dequeues.isEmpty
) {
          a.dequeues.foreach { d =>
            if ( d.message_locator.get() == null ) {
              return false
            }
          }
        }
      }
      true  
    }
                
> Warning on reaching nack limit(DLQ): java.lang.AssertionError: assertion failed: uow.have_locators
> --------------------------------------------------------------------------------------------------
>
>                 Key: APLO-201
>                 URL: https://issues.apache.org/jira/browse/APLO-201
>             Project: ActiveMQ Apollo
>          Issue Type: Bug
>          Components: apollo-broker
>    Affects Versions: 1.3
>         Environment: 1.3 stable
>            Reporter: Torben Fitschen
>
> 2012-05-09 11:57:59,538 | WARN  | java.lang.AssertionError: assertion failed: uow.have_locators
| org.apache.activemq.apollo.broker.Broker | hawtdispatch-DEFAULT-1
> 2012-05-09 11:57:59,540 | DEBUG | java.lang.AssertionError: assertion failed: uow.have_locators
| org.apache.activemq.apollo.broker.Broker | hawtdispatch-DEFAULT-1
> java.lang.AssertionError: assertion failed: uow.have_locators
>         at scala.Predef$.assert(Predef.scala:103)
>         at org.apache.activemq.apollo.broker.store.DelayingStoreSupport$$anonfun$4.apply(DelayingStoreSupport.scala:492)
>         at org.apache.activemq.apollo.broker.store.DelayingStoreSupport$$anonfun$4.apply(DelayingStoreSupport.scala:487)
>         at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:200)
>         at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:200)
>         at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59)
>         at scala.collection.immutable.List.foreach(List.scala:45)
>         at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:30)
>         at scala.collection.mutable.ListBuffer.foreach(ListBuffer.scala:42)
>         at scala.collection.TraversableLike$class.flatMap(TraversableLike.scala:200)
>         at scala.collection.mutable.ListBuffer.flatMap(ListBuffer.scala:42)
>         at org.apache.activemq.apollo.broker.store.DelayingStoreSupport$class.drain_flushes(DelayingStoreSupport.scala:487)
>         at org.apache.activemq.apollo.broker.store.leveldb.LevelDBStore.drain_flushes(LevelDBStore.scala:44)
>         at org.apache.activemq.apollo.broker.store.DelayingStoreSupport$$anonfun$3.apply$mcV$sp(DelayingStoreSupport.scala:473)
>         at org.fusesource.hawtdispatch.package$$anon$3.run(hawtdispatch.scala:357)
>         at org.fusesource.hawtdispatch.internal.HawtCustomDispatchSource$1.run(HawtCustomDispatchSource.java:125)
>         at org.fusesource.hawtdispatch.internal.SerialDispatchQueue.run(SerialDispatchQueue.java:96)
>         at org.fusesource.hawtdispatch.internal.pool.SimpleThread.run(SimpleThread.java:77)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message