You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Keith Thomas (JIRA)" <ji...@apache.org> on 2009/09/26 01:56:16 UTC

[jira] Commented: (HBASE-1869) IndexedTable delete fails when used in conjunction with RowLock()

    [ https://issues.apache.org/jira/browse/HBASE-1869?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12759820#action_12759820 ] 

Keith Thomas commented on HBASE-1869:
-------------------------------------

My previous fix HBASE-1840 only stooped this exception being thrown upon updates, unfortunately I didn't think to test deletes. Maybe 1840 was improved upon by others after I submitted it to make it also handle deletions with a row locked. However if my fix was taken as-is then this later fix HBASE-1869 is required to fix both updates and deletions. I hope this makes sense and apologize if my problem descriptions have caused unnecessary confusion.

P.S. It was great to meet you too 'Stack', thanks for your feedback, much appreciated.



> IndexedTable delete fails when used in conjunction with RowLock()
> -----------------------------------------------------------------
>
>                 Key: HBASE-1869
>                 URL: https://issues.apache.org/jira/browse/HBASE-1869
>             Project: Hadoop HBase
>          Issue Type: Bug
>          Components: contrib
>    Affects Versions: 0.20.0, 0.20.1, 0.21.0
>         Environment: Ubunto 9.04 Desktop under VmWare Fusion, Java 1.6.0_16
>            Reporter: Keith Thomas
>             Fix For: 0.21.0
>
>         Attachments: HBASE-1869.patch
>
>
> Created the following test in TestIndexedTable,
>   public void testLockedRowDelete() throws IOException {
>     writeInitalRows();
>     // Delete the first row;
>     byte[] row = PerformanceEvaluation.format(0);
>     RowLock lock = table.lockRow(row);
>     table.delete(new Delete(row, HConstants.LATEST_TIMESTAMP, lock));
>     table.unlockRow(lock);    
>     assertRowDeleted(NUM_ROWS - 1);  
>   }
> }
> which fails and throws the following exception,
> java.io.IOException: java.io.IOException: Invalid row lock
> 	at org.apache.hadoop.hbase.regionserver.HRegion.getLock(HRegion.java:1621)
> 	at org.apache.hadoop.hbase.regionserver.HRegion.delete(HRegion.java:1094)
> 	at org.apache.hadoop.hbase.regionserver.tableindexed.IndexedRegion.delete(IndexedRegion.java:269)
> 	at org.apache.hadoop.hbase.regionserver.HRegionServer.delete(HRegionServer.java:2014)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at org.apache.hadoop.hbase.ipc.HBaseRPC$Server.call(HBaseRPC.java:648)
> 	at org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:915)
> Patch coded for the latest version in SVN (looks like 0.21.0) , just going through final testing and packaging. Will attach shortly.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.