You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2023/11/06 12:25:00 UTC

[jira] [Work logged] (ARTEMIS-4480) exclusiveConsumer release needs an operation context completion callbacks to ensure isolation for delivered and transacted messages

     [ https://issues.apache.org/jira/browse/ARTEMIS-4480?focusedWorklogId=889001&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-889001 ]

ASF GitHub Bot logged work on ARTEMIS-4480:
-------------------------------------------

                Author: ASF GitHub Bot
            Created on: 06/Nov/23 12:24
            Start Date: 06/Nov/23 12:24
    Worklog Time Spent: 10m 
      Work Description: gtully commented on code in PR #4659:
URL: https://github.com/apache/activemq-artemis/pull/4659#discussion_r1383250630


##########
artemis-protocols/artemis-openwire-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/openwire/OpenWireConnection.java:
##########
@@ -1338,7 +1339,11 @@ public Response processRemoveSubscription(RemoveSubscriptionInfo subInfo) throws
 
       @Override
       public Response processRollbackTransaction(TransactionInfo info) throws Exception {
-         Transaction tx = lookupTX(info.getTransactionId(), null, true);
+         Transaction tx = lookupTX(info.getTransactionId(), null);
+
+         if (tx == null) {
+            throw new IllegalStateException("Transaction not started, " + info.getTransactionId());

Review Comment:
   there is currently no use of the bundle in any of the exceptions, that can be another PR if really necessary





Issue Time Tracking
-------------------

    Worklog Id:     (was: 889001)
    Time Spent: 1.5h  (was: 1h 20m)

> exclusiveConsumer release needs an operation context completion callbacks to ensure isolation for delivered and transacted messages
> -----------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: ARTEMIS-4480
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-4480
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: Broker, OpenWire
>            Reporter: Gary Tully
>            Assignee: Gary Tully
>            Priority: Major
>          Time Spent: 1.5h
>  Remaining Estimate: 0h
>
> in order to see order on a queue from a consumer perspective, the consumer must be exclusive. Any pending work for any previous consumer, delivered put back on the queue or pending transaction completion rollback or commit or close must have occurred before dispatch to a new consumer resumes.
> The removal of the consumer must wait to release the exclusive consumer flag. To do this it must be able to be sure that all previous completions on the context are done.
> This requires consistent use of the operation context to enforce sequential completion.
> This problem was visible with openwire which typically has a large prefetch, resulting in many messages in the delivering list, moved there on rollback from the acks list of a transaction.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)