You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafodion.apache.org by db...@apache.org on 2016/01/09 01:08:40 UTC

[1/2] incubator-trafodion git commit: Fix for JIRA TRAFODION-1748 UnknownTransactionException in prepare causes error 97

Repository: incubator-trafodion
Updated Branches:
  refs/heads/master 60ffbd9aa -> 47ca2755b


Fix for JIRA TRAFODION-1748
UnknownTransactionException in prepare causes error 97


Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/4723e1a3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/4723e1a3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/4723e1a3

Branch: refs/heads/master
Commit: 4723e1a3f3ca9451101011011fce4ea1d93a1ba4
Parents: 60ffbd9
Author: Sean Broeder <sb...@edev03.esgyn.local>
Authored: Fri Jan 8 19:58:16 2016 +0000
Committer: Sean Broeder <sb...@edev03.esgyn.local>
Committed: Fri Jan 8 19:58:16 2016 +0000

----------------------------------------------------------------------
 .../transactional/TransactionManager.java       |  9 +------
 .../TransactionRegionLocation.java              | 22 +++++++++++++----
 .../client/transactional/TransactionState.java  | 13 ++++++----
 .../transactional/TrxRegionEndpoint.java        | 26 ++++++++++++--------
 4 files changed, 42 insertions(+), 28 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/4723e1a3/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/TransactionManager.java
----------------------------------------------------------------------
diff --git a/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/TransactionManager.java b/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/TransactionManager.java
index ad96b9f..220d4ac 100644
--- a/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/TransactionManager.java
+++ b/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/TransactionManager.java
@@ -2007,14 +2007,7 @@ public class TransactionManager {
              }
           } catch (Exception e) {
             LOG.error("exception in doCommit for transaction: " + transactionState.getTransactionId() + " "  + e);
-              // This happens on a NSRE that is triggered by a split
-  /*            try {
-                  abort(transactionState);
-              } catch (Exception abortException) {
-
-                  LOG.warn("Exeption during abort", abortException);
-              }
-  */
+            // This happens on a NSRE that is triggered by a split
             throw new CommitUnsuccessfulException(e);
           }
 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/4723e1a3/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/TransactionRegionLocation.java
----------------------------------------------------------------------
diff --git a/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/TransactionRegionLocation.java b/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/TransactionRegionLocation.java
index 1656a52..e2ff67b 100755
--- a/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/TransactionRegionLocation.java
+++ b/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/TransactionRegionLocation.java
@@ -74,7 +74,7 @@ public class TransactionRegionLocation extends HRegionLocation {
    }
 
    public int compareTo(TransactionRegionLocation o) {
-      if (LOG.isTraceEnabled()) LOG.trace("compareTo TransactionRegionLocation ENTRY: " + o);
+      if (LOG.isTraceEnabled()) LOG.trace("compareTo TransactionRegionLocation ENTRY: " + o.getRegionInfo().getRegionNameAsString());
       int result = super.getHostname().compareTo(o.getHostname());
       if (result != 0){
          if (LOG.isTraceEnabled()) LOG.trace("compareTo hostnames differ: mine: " + super.getHostname() + " hex: " +
@@ -88,10 +88,22 @@ public class TransactionRegionLocation extends HRegionLocation {
       }
       result = super.getRegionInfo().compareTo(o.getRegionInfo());
       if (result != 0) {
-         if (super.getRegionInfo().getEncodedName().compareTo(o.getRegionInfo().getEncodedName()) == 0) {
-            if (LOG.isTraceEnabled()) LOG.trace("compareTo TransactionRegionLocation regionInfo differs:\n    mine: end key: " + Hex.encodeHexString(super.getRegionInfo().getEndKey()) + " hex: " +
-               Hex.encodeHexString(super.getRegionInfo().getRegionName()) + "\n object's end key: " + Hex.encodeHexString(o.getRegionInfo().getEndKey()) + " hex: " +
-               Hex.encodeHexString(o.getRegionInfo().getRegionName()) + "result is " + result);
+         if (super.getRegionInfo().getEncodedName().compareTo(o.getRegionInfo().getEncodedName()) == 0){
+            if (LOG.isTraceEnabled()) LOG.trace("compareTo regionInfo RegionNames match " + o.getRegionInfo().getEncodedName());
+            if (super.getRegionInfo().containsRange(o.getRegionInfo().getStartKey(), o.getRegionInfo().getEndKey())) {
+               if (LOG.isTraceEnabled()) LOG.trace("This region contains object's start and end keys.  Regions match " + o.getRegionInfo().getEncodedName());
+               result = 0;
+               return result;
+            }
+            if (LOG.isTraceEnabled()) LOG.trace("compareTo TransactionRegionLocation regionInfo RegionNames match, but object end keys differ:\n  this hex name: "
+                        + Hex.encodeHexString(super.getRegionInfo().getRegionName()) + "\n   obj hex name: "
+                        + Hex.encodeHexString(o.getRegionInfo().getRegionName())
+                        + "\n This end key    : " + Hex.encodeHexString(super.getRegionInfo().getEndKey())
+                        + "\n Object's end key: " + Hex.encodeHexString(o.getRegionInfo().getEndKey())  + "\n result " + result);
+         }
+         else {
+            if (LOG.isTraceEnabled()) LOG.trace("compareTo TransactionRegionLocation regionInfo.getEncodedName differs:\n      mine: "
+                    + super.getRegionInfo().getEncodedName() + "\n object's : " + o.getRegionInfo().getEncodedName() + " result is " + result);
          }
       }
       return result;

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/4723e1a3/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/TransactionState.java
----------------------------------------------------------------------
diff --git a/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/TransactionState.java b/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/TransactionState.java
index 57772a1..bb85b57 100644
--- a/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/TransactionState.java
+++ b/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/TransactionState.java
@@ -286,13 +286,16 @@ public class TransactionState {
         boolean added = participatingRegions.add(trRegion);
 
         if (added) {
-            if (LOG.isTraceEnabled()) LOG.trace("Added new trRegion to participatingRegions [" + trRegion.getRegionInfo().getRegionNameAsString() + "], endKey: "
-                  + Hex.encodeHexString(trRegion.getRegionInfo().getEndKey()) + " and transaction [" + transactionId + "]");
-
+           if (LOG.isTraceEnabled()) LOG.trace("Added new trRegion (#" + participatingRegions.size()
+                        + ") to participatingRegions ["        + trRegion.getRegionInfo().getRegionNameAsString()
+                        + "], endKey: "        + Hex.encodeHexString(trRegion.getRegionInfo().getEndKey()) 
+                        + " and transaction [" + transactionId + "]");
         }
         else {
-            if (LOG.isTraceEnabled()) LOG.trace("trRegion already present in participatinRegions [" + trRegion.getRegionInfo().getEncodedName() + "], endKey: "
-                  + Hex.encodeHexString(trRegion.getRegionInfo().getEndKey()) + " and transaction [" + transactionId + "]");
+           if (LOG.isTraceEnabled()) LOG.trace("trRegion already present in (" + participatingRegions.size()
+                       + ") participatinRegions ["    + trRegion.getRegionInfo().getEncodedName()
+                       + "], endKey: "        + Hex.encodeHexString(trRegion.getRegionInfo().getEndKey()) 
+                       + " and transaction [" + transactionId + "]");
         }
 
         return added;

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/4723e1a3/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/coprocessor/transactional/TrxRegionEndpoint.java
----------------------------------------------------------------------
diff --git a/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/coprocessor/transactional/TrxRegionEndpoint.java b/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/coprocessor/transactional/TrxRegionEndpoint.java
index 2d1eea7..583fca2 100755
--- a/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/coprocessor/transactional/TrxRegionEndpoint.java
+++ b/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/coprocessor/transactional/TrxRegionEndpoint.java
@@ -4268,6 +4268,8 @@ CoprocessorService, Coprocessor {
     }
 
     String key = getTransactionalUniqueId(transactionId);
+    if (LOG.isTraceEnabled()) LOG.trace("TrxRegionEndpoint coprocessor: beginTransaction -- new TrxTransactionState for txId: "
+           + transactionId + " for key: " + key);
     synchronized (transactionsById) {
       transactionsById.put(key, state);
     }
@@ -4325,8 +4327,8 @@ CoprocessorService, Coprocessor {
   private TrxTransactionState beginTransIfNotExist(final long transactionId) throws IOException{
 
     if (LOG.isTraceEnabled()) LOG.trace("Enter TrxRegionEndpoint coprocessor: beginTransIfNotExist, txid: "
-              + transactionId + " transactionsById size: "
-              + transactionsById.size());
+            + transactionId + ", regionName " + regionInfo.getRegionNameAsString()
+            + " transactionsById size: " + transactionsById.size());
     checkClosing(transactionId);
 
     String key = getTransactionalUniqueId(transactionId);
@@ -4334,7 +4336,8 @@ CoprocessorService, Coprocessor {
       TrxTransactionState state = transactionsById.get(key);
 
       if (state == null) {
-        if (LOG.isTraceEnabled()) LOG.trace("TrxRegionEndpoint coprocessor: Begin transaction in beginTransIfNotExist beginning the transaction internally as state was null");
+        if (LOG.isTraceEnabled()) LOG.trace("TrxRegionEndpoint coprocessor: Begin transaction for txid: " + transactionId
+                + " in beginTransIfNotExist beginning the transaction internally as state was null for key " + key);
         this.beginTransaction(transactionId);
         state =  transactionsById.get(key);
       }
@@ -4420,15 +4423,16 @@ CoprocessorService, Coprocessor {
    * @return TransactionRegionInterface commit code
    * @throws IOException
    */
-  public int commitRequest(final long transactionId, final int participantNum) throws IOException {
+  public int commitRequest(final long transactionId, final int participantNum) throws IOException, UnknownTransactionException {
      return commitRequest(transactionId, participantNum, true);
   }
 
   public int commitRequest(final long transactionId, final int participantNum, boolean flushHLOG) throws IOException,
                                                                                UnknownTransactionException {
     long txid = 0;
+    String lv_regionName = new String(m_Region.getRegionInfo().getRegionNameAsString());
     if (LOG.isDebugEnabled()) LOG.debug("TrxRegionEndpoint coprocessor: commitRequest -- ENTRY txId: "
-               + transactionId + " participantNum " + participantNum);
+               + transactionId + " participantNum " + participantNum + ", regionName " + lv_regionName);
     TrxTransactionState state;
 
     int lv_totalCommits = 0;
@@ -4454,13 +4458,14 @@ CoprocessorService, Coprocessor {
     } catch (UnknownTransactionException e) {
       if (LOG.isDebugEnabled()) LOG.debug("TrxRegionEndpoint coprocessor: commitRequest Unknown transaction ["
                  + transactionId + "] in region [" 
-                 + m_Region.getRegionInfo().getRegionNameAsString()
+                 + lv_regionName
                  + "], participantNum " + participantNum + " ignoring");
      state = null;
     }
       // may change to indicate a NOTFOUND case  then depends on the TM ts state, if reinstated tx, ignore the exception
       if (state == null) {
-        String errMsg = "TrxRegionEndpoint coprocessor: commitRequest encountered unknown transactionID txId: " + transactionId;
+        String errMsg = "TrxRegionEndpoint coprocessor: commitRequest for participant " + participantNum
+               + " encountered unknown transactionID txId: " + transactionId + " in region " + lv_regionName;
         if (LOG.isTraceEnabled()) LOG.trace(errMsg);
         //return COMMIT_UNSUCCESSFUL_FROM_COPROCESSOR;
         throw new UnknownTransactionException(errMsg);
@@ -4478,7 +4483,8 @@ CoprocessorService, Coprocessor {
         }
         state.setStatus(Status.ABORTED);
         retireTransaction(state, true);
-        if (LOG.isTraceEnabled()) LOG.trace("TrxRegionEndpoint coprocessor: commitRequest encountered conflict txId: " + transactionId + "returning COMMIT_CONFLICT");
+        if (LOG.isTraceEnabled()) LOG.trace("TrxRegionEndpoint coprocessor: commitRequest encountered conflict txId: "
+                 + transactionId + "returning COMMIT_CONFLICT");
         return COMMIT_CONFLICT;
       }
 
@@ -4488,8 +4494,8 @@ CoprocessorService, Coprocessor {
       // No conflicts, we can commit.
       if (LOG.isTraceEnabled()) LOG.trace("TrxRegionEndpoint coprocessor: No conflicts for transaction " + transactionId
 		+ " found in region "
-		+ m_Region.getRegionInfo().getRegionNameAsString()
-		+ ". Votes to commit");
+        + lv_regionName
+        + ". Participant " + participantNum + " votes to commit");
 
       // If there are writes we must keep record of the transaction
       putBySequenceStartTime = System.nanoTime();


[2/2] incubator-trafodion git commit: Merge [TRAFODION-1748] PR 256 Fix to error 97 problem

Posted by db...@apache.org.
Merge [TRAFODION-1748] PR 256 Fix to error 97 problem


Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/47ca2755
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/47ca2755
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/47ca2755

Branch: refs/heads/master
Commit: 47ca2755ba47d7297f3f25b24cda04bee89f490c
Parents: 60ffbd9 4723e1a
Author: Dave Birdsall <db...@apache.org>
Authored: Sat Jan 9 00:08:00 2016 +0000
Committer: Dave Birdsall <db...@apache.org>
Committed: Sat Jan 9 00:08:00 2016 +0000

----------------------------------------------------------------------
 .../transactional/TransactionManager.java       |  9 +------
 .../TransactionRegionLocation.java              | 22 +++++++++++++----
 .../client/transactional/TransactionState.java  | 13 ++++++----
 .../transactional/TrxRegionEndpoint.java        | 26 ++++++++++++--------
 4 files changed, 42 insertions(+), 28 deletions(-)
----------------------------------------------------------------------