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/25 21:47:15 UTC

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

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
         Environment: Ubunto 9.04 Desktop under VmWare Fusion, Java 1.6.0_16
            Reporter: Keith Thomas


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, jus 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.


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

Posted by "Keith Thomas (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-1869?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Keith Thomas updated HBASE-1869:
--------------------------------

          Description: 
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.

  was:
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, jus going through final testing and packaging. Will attach shortly.

    Affects Version/s: 0.21.0
                       0.20.1
        Fix Version/s: 0.21.0
                       0.20.1

> 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.20.1, 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.


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

Posted by "Keith Thomas (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-1869?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Keith Thomas updated HBASE-1869:
--------------------------------

    Attachment: HBASE-1869.patch

Patch attached, including extra unit test. Have run the (minor) fix through all tests by invoking 'ant clean test javadoc'. 

> 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
>         Environment: Ubunto 9.04 Desktop under VmWare Fusion, Java 1.6.0_16
>            Reporter: Keith Thomas
>         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, jus 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.


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

Posted by "Keith Thomas (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-1869?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Keith Thomas updated HBASE-1869:
--------------------------------

    Status: Patch Available  (was: Open)

Patch attached to Jira.

> 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.20.1, 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.


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

Posted by "stack (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-1869?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

stack updated HBASE-1869:
-------------------------

       Resolution: Fixed
    Fix Version/s:     (was: 0.20.1)
           Status: Resolved  (was: Patch Available)

It looks like HBASE-1840 fixed this for the branch.

Thanks for the patch Keith (good to meet you the last night at HUG).

> 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.


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

Posted by "stack (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-1869?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12759958#action_12759958 ] 

stack commented on HBASE-1869:
------------------------------

I backported this fix to 0.20 branch.  Thanks Keith.

> 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.


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

Posted by "Keith Thomas (JIRA)" <ji...@apache.org>.
    [ 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.