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(-)
----------------------------------------------------------------------