You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Gary Tully (JIRA)" <ji...@apache.org> on 2010/08/24 11:47:47 UTC

[jira] Created: (AMQ-2876) Message received from Queue before its expiration and acknowledged after it, is put to deadletter queue in error

Message received from Queue before its expiration and acknowledged after it, is put to deadletter queue in error
----------------------------------------------------------------------------------------------------------------

                 Key: AMQ-2876
                 URL: https://issues.apache.org/activemq/browse/AMQ-2876
             Project: ActiveMQ
          Issue Type: Bug
          Components: Broker
    Affects Versions: 5.3.2
            Reporter: Gary Tully
            Assignee: Gary Tully
             Fix For: 5.4.1


message expiry processing in queue subscription when an standard ack is received will process the expired message even though the message has been processed by the consumer. This processing will place the message in the DLQ by default. End result, consumer has the message and DLQ has the message. Because this message was acked before it expired as seen by the consumer but after expiry as seen by the broker, it should not be sent to the DLQ. This holds for expiry checking that is done on receipt of an ACK.

If the reply is lost for some time, and the broker expires the inflight message, the ack will be ignored with a warn and normal expiry processing will ensue. In this case, the broker gets to expire the message completely before the consumer gets to reply.

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


[jira] Updated: (AMQ-2876) Message received from Queue before its expiration and acknowledged after it, is put to deadletter queue in error

Posted by "Gary Tully (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/AMQ-2876?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gary Tully updated AMQ-2876:
----------------------------

    Affects Version/s: 5.4.0

> Message received from Queue before its expiration and acknowledged after it, is put to deadletter queue in error
> ----------------------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-2876
>                 URL: https://issues.apache.org/activemq/browse/AMQ-2876
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.3.2, 5.4.0
>            Reporter: Gary Tully
>            Assignee: Gary Tully
>             Fix For: 5.4.1
>
>
> message expiry processing in queue subscription when an standard ack is received will process the expired message even though the message has been processed by the consumer. This processing will place the message in the DLQ by default. End result, consumer has the message and DLQ has the message. Because this message was acked before it expired as seen by the consumer but after expiry as seen by the broker, it should not be sent to the DLQ. This holds for expiry checking that is done on receipt of an ACK.
> If the reply is lost for some time, and the broker expires the inflight message, the ack will be ignored with a warn and normal expiry processing will ensue. In this case, the broker gets to expire the message completely before the consumer gets to reply.

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


[jira] Resolved: (AMQ-2876) Message received from Queue before its expiration and acknowledged after it, is put to deadletter queue in error

Posted by "Gary Tully (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/AMQ-2876?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gary Tully resolved AMQ-2876.
-----------------------------

    Resolution: Fixed

fixes in r988455

when processing the ack, the message will no longer be expired as it has been delivered ok. 
If asnyc message expiry processing has already expired the message, then the ack will be ignored and a warning will be issued in the log for that message ack. The act of processing the ack will not result in expiry otherwise.

> Message received from Queue before its expiration and acknowledged after it, is put to deadletter queue in error
> ----------------------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-2876
>                 URL: https://issues.apache.org/activemq/browse/AMQ-2876
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.3.2, 5.4.0
>            Reporter: Gary Tully
>            Assignee: Gary Tully
>             Fix For: 5.4.1
>
>
> message expiry processing in queue subscription when an standard ack is received will process the expired message even though the message has been processed by the consumer. This processing will place the message in the DLQ by default. End result, consumer has the message and DLQ has the message. Because this message was acked before it expired as seen by the consumer but after expiry as seen by the broker, it should not be sent to the DLQ. This holds for expiry checking that is done on receipt of an ACK.
> If the reply is lost for some time, and the broker expires the inflight message, the ack will be ignored with a warn and normal expiry processing will ensue. In this case, the broker gets to expire the message completely before the consumer gets to reply.

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