Return-Path: X-Original-To: apmail-db-derby-commits-archive@www.apache.org Delivered-To: apmail-db-derby-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id C48C210206 for ; Thu, 25 Apr 2013 17:50:41 +0000 (UTC) Received: (qmail 35634 invoked by uid 500); 25 Apr 2013 17:50:41 -0000 Delivered-To: apmail-db-derby-commits-archive@db.apache.org Received: (qmail 35609 invoked by uid 500); 25 Apr 2013 17:50:41 -0000 Mailing-List: contact derby-commits-help@db.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: "Derby Development" List-Id: Delivered-To: mailing list derby-commits@db.apache.org Received: (qmail 35602 invoked by uid 99); 25 Apr 2013 17:50:41 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 25 Apr 2013 17:50:41 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 25 Apr 2013 17:50:40 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 542732388A3D; Thu, 25 Apr 2013 17:50:20 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1475873 - in /db/derby/code/branches/10.10: ./ java/engine/org/apache/derby/impl/store/raw/xact/Xact.java java/engine/org/apache/derby/loc/messages.xml java/shared/org/apache/derby/shared/common/reference/SQLState.java Date: Thu, 25 Apr 2013 17:50:20 -0000 To: derby-commits@db.apache.org From: mikem@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20130425175020.542732388A3D@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: mikem Date: Thu Apr 25 17:50:19 2013 New Revision: 1475873 URL: http://svn.apache.org/r1475873 Log: DERBY-4729 add more information to the XACT_PROTOCOL_VIOLATION returned from store. backported change #1471079 from trunk to 10.10 branch. When this error is reported it is often hard to reproduce, so adding printing of internal state of the Transaction when it is hit. Hopefully this help in understanding what is going on when the error is hit. Modified: db/derby/code/branches/10.10/ (props changed) db/derby/code/branches/10.10/java/engine/org/apache/derby/impl/store/raw/xact/Xact.java db/derby/code/branches/10.10/java/engine/org/apache/derby/loc/messages.xml db/derby/code/branches/10.10/java/shared/org/apache/derby/shared/common/reference/SQLState.java Propchange: db/derby/code/branches/10.10/ ------------------------------------------------------------------------------ Merged /db/derby/code/trunk:r1471079 Modified: db/derby/code/branches/10.10/java/engine/org/apache/derby/impl/store/raw/xact/Xact.java URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.10/java/engine/org/apache/derby/impl/store/raw/xact/Xact.java?rev=1475873&r1=1475872&r2=1475873&view=diff ============================================================================== --- db/derby/code/branches/10.10/java/engine/org/apache/derby/impl/store/raw/xact/Xact.java (original) +++ db/derby/code/branches/10.10/java/engine/org/apache/derby/impl/store/raw/xact/Xact.java Thu Apr 25 17:50:19 2013 @@ -757,7 +757,8 @@ public class Xact extends RawTransaction if (state == CLOSED) { throw StandardException.newException( - SQLState.XACT_PROTOCOL_VIOLATION); + SQLState.XACT_PROTOCOL_VIOLATION_DETAILED, + toInternalDetailString()); } if (SanityManager.DEBUG) @@ -929,7 +930,8 @@ public class Xact extends RawTransaction if (!sanityCheck_xaclosed) { throw StandardException.newException( - SQLState.XACT_PROTOCOL_VIOLATION); + SQLState.XACT_PROTOCOL_VIOLATION_DETAILED, + toInternalDetailString()); } } @@ -1041,7 +1043,8 @@ public class Xact extends RawTransaction if (state == CLOSED) { throw StandardException.newException( - SQLState.XACT_PROTOCOL_VIOLATION); + SQLState.XACT_PROTOCOL_VIOLATION_DETAILED, + toInternalDetailString()); } // Should only be called during recovery on global transactions, @@ -1761,7 +1764,8 @@ public class Xact extends RawTransaction if (readOnly) { throw StandardException.newException( - SQLState.XACT_PROTOCOL_VIOLATION); + SQLState.XACT_PROTOCOL_VIOLATION_DETAILED, + toInternalDetailString()); } state = UPDATE; @@ -1821,7 +1825,8 @@ public class Xact extends RawTransaction { // This is where we catch attempted activity on a prepared xact. throw StandardException.newException( - SQLState.XACT_PROTOCOL_VIOLATION); + SQLState.XACT_PROTOCOL_VIOLATION_DETAILED, + toInternalDetailString()); } if (SanityManager.DEBUG) @@ -1880,7 +1885,8 @@ public class Xact extends RawTransaction if (state == PREPARED || state == CLOSED) { throw StandardException.newException( - SQLState.XACT_PROTOCOL_VIOLATION); + SQLState.XACT_PROTOCOL_VIOLATION_DETAILED, + toInternalDetailString()); } if (SanityManager.DEBUG) @@ -2575,7 +2581,8 @@ public class Xact extends RawTransaction if (state == PREPARED) { throw StandardException.newException( - SQLState.XACT_PROTOCOL_VIOLATION); + SQLState.XACT_PROTOCOL_VIOLATION_DETAILED, + toInternalDetailString()); } prepareCommit(COMMIT_SYNC); @@ -2587,7 +2594,8 @@ public class Xact extends RawTransaction if (state != PREPARED) { throw StandardException.newException( - SQLState.XACT_PROTOCOL_VIOLATION); + SQLState.XACT_PROTOCOL_VIOLATION_DETAILED, + toInternalDetailString()); } prepareCommit(COMMIT_SYNC); @@ -2695,6 +2703,32 @@ public class Xact extends RawTransaction } } + public String toInternalDetailString() + { + + return ( + "savedEndStatus = " + savedEndStatus + "\n" + + "needSync = " + needSync + "\n" + + "justCreated = " + justCreated + "\n" + + "myGlobalId = " + myGlobalId + "\n" + + "myId = " + myId + "\n" + + "state = " + state + "\n" + + "inComplete = " + inComplete + "\n" + + "seenUpdates = " + seenUpdates + "\n" + + "inPostCommitProcessing = " + inPostCommitProcessing + "\n" + + "logStart = " + logStart + "\n" + + "logLast = " + logLast + "\n" + + "recoveryTransaction = " + recoveryTransaction + "\n" + + "postCompleteMode = " + postCompleteMode + "\n" + + "sanityCheck_xaclosed = " + sanityCheck_xaclosed + "\n" + + "transName = " + transName + "\n" + + "readOnly = " + readOnly + "\n" + + "flush_log_on_xact_end = " + flush_log_on_xact_end + "\n" + + "backupBlocked = " + backupBlocked + "\n" + + "dontWaitForLocks = " + dontWaitForLocks + "\n"); + } + + /** * Get string id of the transaction that would be when the Transaction Modified: db/derby/code/branches/10.10/java/engine/org/apache/derby/loc/messages.xml URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.10/java/engine/org/apache/derby/loc/messages.xml?rev=1475873&r1=1475872&r2=1475873&view=diff ============================================================================== --- db/derby/code/branches/10.10/java/engine/org/apache/derby/loc/messages.xml (original) +++ db/derby/code/branches/10.10/java/engine/org/apache/derby/loc/messages.xml Thu Apr 25 17:50:19 2013 @@ -1106,6 +1106,12 @@ Guide. Operation is not supported in an internal transaction. + + 40XT8 + An internal error was identified by RawStore module. Internal state detail from the transaction is as follows: {0} + internalTransactionState + + Modified: db/derby/code/branches/10.10/java/shared/org/apache/derby/shared/common/reference/SQLState.java URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.10/java/shared/org/apache/derby/shared/common/reference/SQLState.java?rev=1475873&r1=1475872&r2=1475873&view=diff ============================================================================== --- db/derby/code/branches/10.10/java/shared/org/apache/derby/shared/common/reference/SQLState.java (original) +++ db/derby/code/branches/10.10/java/shared/org/apache/derby/shared/common/reference/SQLState.java Thu Apr 25 17:50:19 2013 @@ -453,6 +453,7 @@ public interface SQLState { String XACT_INTERNAL_TRANSACTION_EXCEPTION = "40XT5"; String XACT_CANNOT_ACTIVATE_TRANSACTION = "40XT6"; String XACT_NOT_SUPPORTED_IN_INTERNAL_XACT = "40XT7"; + String XACT_PROTOCOL_VIOLATION_DETAILED = "40XT8"; /* ** RawStore - Transactions.Basic system exceptions