MetaStore does not detect and rollback failed transactions
----------------------------------------------------------
Key: HIVE-1679
URL: https://issues.apache.org/jira/browse/HIVE-1679
Project: Hadoop Hive
Issue Type: Bug
Components: Metastore
Affects Versions: 0.5.0, 0.6.0, 0.7.0
Reporter: Carl Steinbach
Most of the methods in HiveMetaStore and ObjectStore adhere to the following
idiom when
interacting with the ObjectStore:
{code}
boolean success = false;
try {
ms.openTransaction();
/* do some stuff */
success = ms.commitTransaction();
} finally {
if (!success) {
ms.rollbackTransaction();
}
}
{code}
The problem with this is that ObjectStore.commitTransaction() always returns
TRUE:
{code}
public boolean commitTransaction() {
assert (openTrasactionCalls >= 1);
if (!currentTransaction.isActive()) {
throw new RuntimeException(
"Commit is called, but transaction is not active. Either there are"
+ " mismatching open and close calls or rollback was called in
the same trasaction");
}
openTrasactionCalls--;
if ((openTrasactionCalls == 0) && currentTransaction.isActive()) {
transactionStatus = TXN_STATUS.COMMITED;
currentTransaction.commit();
}
return true;
}
{code}
Consequently, the transaction appears to always succeed and ObjectStore is never
directed to rollback transactions that have actually failed.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.