You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Marnie McCormack (JIRA)" <qp...@incubator.apache.org> on 2007/02/08 12:29:05 UTC

[jira] Created: (QPID-350) Broker infinite loop on restart with immediate messages

Broker infinite loop on restart with immediate messages
-------------------------------------------------------

                 Key: QPID-350
                 URL: https://issues.apache.org/jira/browse/QPID-350
             Project: Qpid
          Issue Type: Bug
          Components: Java Broker
    Affects Versions: M1
            Reporter: Marnie McCormack


Messages being sent as immediate from .NET client to Java client, across Java broker.

Saw this problem on broker restart (with persistent messages):

2007-02-07 16:03:08,058 ERROR [pool-1-thread-3] queue.ConcurrentSelectorDeliveryManager (ConcurrentSelectorDeliveryManager.java:317) - Unable to deliver message as dequeue failed: org.apache.qpid.server.queue.FailedDequeueException: Failed to dequeue message from rad_u286664_fid-mngodev4
org.apache.qpid.server.queue.FailedDequeueException: Failed to dequeue message from rad_u286664_fid-mngodev4
        at org.apache.qpid.server.queue.AMQQueue.dequeue(AMQQueue.java:548)
        at org.apache.qpid.server.queue.SubscriptionImpl.sendToConsumer(SubscriptionImpl.java:260)
        at org.apache.qpid.server.queue.SubscriptionImpl.send(SubscriptionImpl.java:212)
        at org.apache.qpid.server.queue.ConcurrentSelectorDeliveryManager.sendNextMessage(ConcurrentSelectorDeliveryManager.java:308)
        at org.apache.qpid.server.queue.ConcurrentSelectorDeliveryManager.sendNextMessage(ConcurrentSelectorDeliveryManager.java:361)
        at org.apache.qpid.server.queue.ConcurrentSelectorDeliveryManager.processQueue(ConcurrentSelectorDeliveryManager.java:338)
        at org.apache.qpid.server.queue.ConcurrentSelectorDeliveryManager.access$100(ConcurrentSelectorDeliveryManager.java:47)
        at org.apache.qpid.server.queue.ConcurrentSelectorDeliveryManager$Runner.run(ConcurrentSelectorDeliveryManager.java:471)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
        at java.lang.Thread.run(Thread.java:595)
Caused by: org.apache.qpid.AMQException: Unable to find message with id 7 on queue rad_u286664_fid-mngodev4
        at org.apache.qpid.server.store.berkeleydb.BDBMessageStore.dequeueMessage(BDBMessageStore.java:370)
        at org.apache.qpid.server.queue.WeakReferenceMessageHandle.dequeue(WeakReferenceMessageHandle.java:201)
        at org.apache.qpid.server.queue.AMQMessage.dequeue(AMQMessage.java:457)
        at org.apache.qpid.server.queue.AMQQueue.dequeue(AMQQueue.java:535)
        ... 10 more


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (QPID-350) Broker infinite loop on restart with immediate messages

Posted by "Martin Ritchie (JIRA)" <qp...@incubator.apache.org>.
    [ https://issues.apache.org/jira/browse/QPID-350?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12491348 ] 

Martin Ritchie commented on QPID-350:
-------------------------------------

Problem looks to be that the message is missing from the given MessageStore as a result the FailedDequeueException occurs. But as the message is not removed from the Queue the DeliveryManger continues to try and deliver it as it is next in the list. 

In this case the message should be moved to an DeadLetterQueue.. which we don't have yet.

Wrapping the                     sub.send(message, _queue);

line in the ConcurrentSelectorDeliveryManager should prevent this recursive restart problem .. but only currently at the expense of throwing the message away. The reason behind why message (7 in this case) cannot be found is perhaps more important.


                try
                {
                    sub.send(message, _queue);
                    //remove sent message from our queue.
                    removed = messageQueue.poll();
                    //If we don't remove the message from _messages
                    // Otherwise the Async send will never end
                }
                catch (FailedDequeueException fde)
                {
                    // Message should be moved to dead letter queue
                    _log.error("MESSAGE LOSS: unable to Dequeue Message so removing from queue:" + fde);
                    removed = messageQueue.poll();
                    // sendToDeadletter(removed);
                }

> Broker infinite loop on restart with immediate messages
> -------------------------------------------------------
>
>                 Key: QPID-350
>                 URL: https://issues.apache.org/jira/browse/QPID-350
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker
>    Affects Versions: M1
>            Reporter: Marnie McCormack
>
> Messages being sent as immediate from .NET client to Java client, across Java broker.
> Saw this problem on broker restart (with persistent messages):
> 2007-02-07 16:03:08,058 ERROR [pool-1-thread-3] queue.ConcurrentSelectorDeliveryManager (ConcurrentSelectorDeliveryManager.java:317) - Unable to deliver message as dequeue failed: org.apache.qpid.server.queue.FailedDequeueException: Failed to dequeue message from rad_u286664_fid-mngodev4
> org.apache.qpid.server.queue.FailedDequeueException: Failed to dequeue message from rad_u286664_fid-mngodev4
>         at org.apache.qpid.server.queue.AMQQueue.dequeue(AMQQueue.java:548)
>         at org.apache.qpid.server.queue.SubscriptionImpl.sendToConsumer(SubscriptionImpl.java:260)
>         at org.apache.qpid.server.queue.SubscriptionImpl.send(SubscriptionImpl.java:212)
>         at org.apache.qpid.server.queue.ConcurrentSelectorDeliveryManager.sendNextMessage(ConcurrentSelectorDeliveryManager.java:308)
>         at org.apache.qpid.server.queue.ConcurrentSelectorDeliveryManager.sendNextMessage(ConcurrentSelectorDeliveryManager.java:361)
>         at org.apache.qpid.server.queue.ConcurrentSelectorDeliveryManager.processQueue(ConcurrentSelectorDeliveryManager.java:338)
>         at org.apache.qpid.server.queue.ConcurrentSelectorDeliveryManager.access$100(ConcurrentSelectorDeliveryManager.java:47)
>         at org.apache.qpid.server.queue.ConcurrentSelectorDeliveryManager$Runner.run(ConcurrentSelectorDeliveryManager.java:471)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
>         at java.lang.Thread.run(Thread.java:595)
> Caused by: org.apache.qpid.AMQException: Unable to find message with id 7 on queue rad_u286664_fid-mngodev4
>         at org.apache.qpid.server.store.berkeleydb.BDBMessageStore.dequeueMessage(BDBMessageStore.java:370)
>         at org.apache.qpid.server.queue.WeakReferenceMessageHandle.dequeue(WeakReferenceMessageHandle.java:201)
>         at org.apache.qpid.server.queue.AMQMessage.dequeue(AMQMessage.java:457)
>         at org.apache.qpid.server.queue.AMQQueue.dequeue(AMQQueue.java:535)
>         ... 10 more

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Assigned: (QPID-350) Broker infinite loop on restart with immediate messages

Posted by "Martin Ritchie (JIRA)" <qp...@incubator.apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-350?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Martin Ritchie reassigned QPID-350:
-----------------------------------

    Assignee: Rupert Smith

Rupert to test and reproduce or close.

> Broker infinite loop on restart with immediate messages
> -------------------------------------------------------
>
>                 Key: QPID-350
>                 URL: https://issues.apache.org/jira/browse/QPID-350
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker
>    Affects Versions: M1
>            Reporter: Marnie McCormack
>            Assignee: Rupert Smith
>
> Messages being sent as immediate from .NET client to Java client, across Java broker.
> Saw this problem on broker restart (with persistent messages):
> 2007-02-07 16:03:08,058 ERROR [pool-1-thread-3] queue.ConcurrentSelectorDeliveryManager (ConcurrentSelectorDeliveryManager.java:317) - Unable to deliver message as dequeue failed: org.apache.qpid.server.queue.FailedDequeueException: Failed to dequeue message from rad_u286664_fid-mngodev4
> org.apache.qpid.server.queue.FailedDequeueException: Failed to dequeue message from rad_u286664_fid-mngodev4
>         at org.apache.qpid.server.queue.AMQQueue.dequeue(AMQQueue.java:548)
>         at org.apache.qpid.server.queue.SubscriptionImpl.sendToConsumer(SubscriptionImpl.java:260)
>         at org.apache.qpid.server.queue.SubscriptionImpl.send(SubscriptionImpl.java:212)
>         at org.apache.qpid.server.queue.ConcurrentSelectorDeliveryManager.sendNextMessage(ConcurrentSelectorDeliveryManager.java:308)
>         at org.apache.qpid.server.queue.ConcurrentSelectorDeliveryManager.sendNextMessage(ConcurrentSelectorDeliveryManager.java:361)
>         at org.apache.qpid.server.queue.ConcurrentSelectorDeliveryManager.processQueue(ConcurrentSelectorDeliveryManager.java:338)
>         at org.apache.qpid.server.queue.ConcurrentSelectorDeliveryManager.access$100(ConcurrentSelectorDeliveryManager.java:47)
>         at org.apache.qpid.server.queue.ConcurrentSelectorDeliveryManager$Runner.run(ConcurrentSelectorDeliveryManager.java:471)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
>         at java.lang.Thread.run(Thread.java:595)
> Caused by: org.apache.qpid.AMQException: Unable to find message with id 7 on queue rad_u286664_fid-mngodev4
>         at org.apache.qpid.server.store.berkeleydb.BDBMessageStore.dequeueMessage(BDBMessageStore.java:370)
>         at org.apache.qpid.server.queue.WeakReferenceMessageHandle.dequeue(WeakReferenceMessageHandle.java:201)
>         at org.apache.qpid.server.queue.AMQMessage.dequeue(AMQMessage.java:457)
>         at org.apache.qpid.server.queue.AMQQueue.dequeue(AMQQueue.java:535)
>         ... 10 more

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Closed: (QPID-350) Broker infinite loop on restart with immediate messages

Posted by "Aidan Skinner (JIRA)" <qp...@incubator.apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-350?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Aidan Skinner closed QPID-350.
------------------------------

    Resolution: Fixed

This doesn't happen anymore

> Broker infinite loop on restart with immediate messages
> -------------------------------------------------------
>
>                 Key: QPID-350
>                 URL: https://issues.apache.org/jira/browse/QPID-350
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker
>    Affects Versions: M1
>            Reporter: Marnie McCormack
>            Assignee: Rupert Smith
>
> Messages being sent as immediate from .NET client to Java client, across Java broker.
> Saw this problem on broker restart (with persistent messages):
> 2007-02-07 16:03:08,058 ERROR [pool-1-thread-3] queue.ConcurrentSelectorDeliveryManager (ConcurrentSelectorDeliveryManager.java:317) - Unable to deliver message as dequeue failed: org.apache.qpid.server.queue.FailedDequeueException: Failed to dequeue message from rad_u286664_fid-mngodev4
> org.apache.qpid.server.queue.FailedDequeueException: Failed to dequeue message from rad_u286664_fid-mngodev4
>         at org.apache.qpid.server.queue.AMQQueue.dequeue(AMQQueue.java:548)
>         at org.apache.qpid.server.queue.SubscriptionImpl.sendToConsumer(SubscriptionImpl.java:260)
>         at org.apache.qpid.server.queue.SubscriptionImpl.send(SubscriptionImpl.java:212)
>         at org.apache.qpid.server.queue.ConcurrentSelectorDeliveryManager.sendNextMessage(ConcurrentSelectorDeliveryManager.java:308)
>         at org.apache.qpid.server.queue.ConcurrentSelectorDeliveryManager.sendNextMessage(ConcurrentSelectorDeliveryManager.java:361)
>         at org.apache.qpid.server.queue.ConcurrentSelectorDeliveryManager.processQueue(ConcurrentSelectorDeliveryManager.java:338)
>         at org.apache.qpid.server.queue.ConcurrentSelectorDeliveryManager.access$100(ConcurrentSelectorDeliveryManager.java:47)
>         at org.apache.qpid.server.queue.ConcurrentSelectorDeliveryManager$Runner.run(ConcurrentSelectorDeliveryManager.java:471)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
>         at java.lang.Thread.run(Thread.java:595)
> Caused by: org.apache.qpid.AMQException: Unable to find message with id 7 on queue rad_u286664_fid-mngodev4
>         at org.apache.qpid.server.store.berkeleydb.BDBMessageStore.dequeueMessage(BDBMessageStore.java:370)
>         at org.apache.qpid.server.queue.WeakReferenceMessageHandle.dequeue(WeakReferenceMessageHandle.java:201)
>         at org.apache.qpid.server.queue.AMQMessage.dequeue(AMQMessage.java:457)
>         at org.apache.qpid.server.queue.AMQQueue.dequeue(AMQQueue.java:535)
>         ... 10 more

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.