Hi,
My development instance has been having problems dropping tables.
After some debugging, I’ve been able to reproduce the failure with just a
simple DELETE on a user table. See the log below.
When I do a naked DELETE, it succeeds. I notice that transID=0 is passed to
HBaseClient_JNI::checkAndDeleteRow.
But when I do a BEGIN WORK, then DELETE, it fails with the same sort of
error I was seeing on DROP TABLE. I notice in that case I have a non-zero
transID passed to HBaseClient_JNI::checkAndDeleteRow. I have noticed that
when I do DROP TABLE, I always have a non-zero transID here. Hence my
failures.
Is anyone else seeing this? I’m on a fairly recent Trafodion 2.0 baseline.
Dave
>>insert into t4 values (17,18),(1,0);
--- 2 row(s) inserted.
>>!delete;
>>delete from t4 where a = 1;
Breakpoint 3, HBaseClient_JNI::checkAndDeleteRow (this=0x7fffe81ba0c8,
heap=0x7fffe81e36f8, tableName=0x7fffe81e6cd0 "TRAFODION.SEABASE.T4",
hbs=0x101881f8, useTRex=true, transID=0, rowID=..., columnToCheck=...,
columnValToCheck=..., timestamp=-1, asyncOperation=false,
outHtc=0x7ffffffeffe8) at ../executor/HBaseClient_JNI.cpp:3364
3364 QRLogger::log(CAT_SQL_HBASE, LL_DEBUG,
"HBaseClient_JNI::checkAndDeleteRow(%ld, %s) called.", transID, rowID.val);
(gdb) c
Continuing.
--- 1 row(s) deleted.
>>begin work;
--- SQL operation complete.
>>delete from t4 where a = 17;
Breakpoint 3, HBaseClient_JNI::checkAndDeleteRow (this=0x7fffe81ba0c8,
heap=0x7fffe81e36f8, tableName=0x7fffe81e6cd0 "TRAFODION.SEABASE.T4",
hbs=0x10187e18, useTRex=true, transID=80016, rowID=...,
columnToCheck=...,
columnValToCheck=..., timestamp=-1, asyncOperation=false,
outHtc=0x7fffffff0048) at ../executor/HBaseClient_JNI.cpp:3364
3364 QRLogger::log(CAT_SQL_HBASE, LL_DEBUG,
"HBaseClient_JNI::checkAndDeleteRow(%ld, %s) called.", transID, rowID.val);
(gdb) c
Continuing.
*** ERROR[8448] Unable to access Hbase interface. Call to
ExpHbaseInterface::checkAndDeleteRow returned error
HBASE_ACCESS_ERROR(-706). Cause:
java.io.IOException: Coprocessor result is null, retries exhausted
org.apache.hadoop.hbase.client.transactional.TransactionalTable.checkAndDelete(TransactionalTable.java:486)
org.apache.hadoop.hbase.client.transactional.RMInterface.checkAndDelete(RMInterface.java:402)
org.trafodion.sql.HTableClient.checkAndDeleteRow(HTableClient.java:939)
org.trafodion.sql.HBaseClient.checkAndDeleteRow(HBaseClient.java:1554)
.
--- 0 row(s) deleted.
>>rollback work;
--- SQL operation complete.
>>