Return-Path: Delivered-To: apmail-activemq-dev-archive@www.apache.org Received: (qmail 68035 invoked from network); 1 Apr 2009 14:19:56 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 1 Apr 2009 14:19:56 -0000 Received: (qmail 11881 invoked by uid 500); 1 Apr 2009 14:19:55 -0000 Delivered-To: apmail-activemq-dev-archive@activemq.apache.org Received: (qmail 11830 invoked by uid 500); 1 Apr 2009 14:19:55 -0000 Mailing-List: contact dev-help@activemq.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@activemq.apache.org Delivered-To: mailing list dev@activemq.apache.org Received: (qmail 11820 invoked by uid 99); 1 Apr 2009 14:19:55 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 01 Apr 2009 14:19:55 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 01 Apr 2009 14:19:54 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id AD3AD234C045 for ; Wed, 1 Apr 2009 07:19:34 -0700 (PDT) Message-ID: <1846318509.1238595574704.JavaMail.jira@brutus> Date: Wed, 1 Apr 2009 07:19:34 -0700 (PDT) From: "Michael Gottschalk (JIRA)" To: dev@activemq.apache.org Subject: [jira] Created: (AMQ-2191) Incorrect handling of interruptions during commit or rollback of a transaction MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: ae95407df07c98740808b2ef9da0087c X-Virus-Checked: Checked by ClamAV on apache.org Incorrect handling of interruptions during commit or rollback of a transaction ------------------------------------------------------------------------------ Key: AMQ-2191 URL: https://issues.apache.org/activemq/browse/AMQ-2191 Project: ActiveMQ Issue Type: Bug Affects Versions: 5.3.0 Environment: Java 1.6.0_02 Kubuntu Linux 2.6.24-22 Bitronix Transaction Manager 1.3.2 Reporter: Michael Gottschalk We have a process framework that sends interruptions to threads that should be stopped or paused. Some of these threads interact with ActiveMQ, so interruptions can occur inside ActiveMQ at different points. A problem occurs if the interruption is detected in ActiveMQConnection.syncSendPacket during commit or rollback of a transaction. ActiveMQ then throws a JMSException so that it occurs to Bitronix that XA transaction is in an inconsistent state (see stacktrace in the attached file). In our opinion, the interruption should be ignored by ActiveMQ during the critical commit or rollback phase. It is not mandatory that an interruption has an immediate effect. Especially such a non-interruptable step as rollback or commit should be performed even though an interruption occurs. I created a patch for the class TransactionContext which, in case of an interruption, resets the interruption state of the thread, retries the syncSendPacket method call and restores the thread's interruption state afterwards. In this manner, no inconsistent state exceptions occur in the transaction manager any longer and interruption is deferred until the commit/rollback has succeeded. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.