hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ted Yu (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-10549) When there is a hole, LoadIncrementalHFiles will hang in an infinite loop.
Date Thu, 06 Mar 2014 00:34:44 GMT

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

Ted Yu commented on HBASE-10549:
--------------------------------

In deleteMetaInfo():
{code}
+      meta = new HTable(util.getConfiguration(), HTableDescriptor.META_TABLEDESC.getTableName());
{code}
Close meta at the end of deleteMetaInfo().
{code}
+      // TODO Auto-generated catch block
+      e.printStackTrace();
{code}
Replace the above with log statement.
{code}
+    if (indexForCallable < 0
+        || (indexForCallable == startEndKeys.getFirst().length - 1)
+        && !Bytes.equals(startEndKeys.getSecond()[indexForCallable], HConstants.EMPTY_BYTE_ARRAY)
+        || indexForCallable + 1 < startEndKeys.getFirst().length
+        && !(Bytes.compareTo(startEndKeys.getSecond()[indexForCallable],
+          startEndKeys.getFirst()[indexForCallable + 1]) == 0)) {
{code}
If you break the above check into 3, the exception message would point out the exact cause,
making it more user friendly.

> When there is a hole, LoadIncrementalHFiles will hang in an infinite loop.
> --------------------------------------------------------------------------
>
>                 Key: HBASE-10549
>                 URL: https://issues.apache.org/jira/browse/HBASE-10549
>             Project: HBase
>          Issue Type: Bug
>          Components: HFile
>    Affects Versions: 0.94.11
>            Reporter: yuanxinen
>             Fix For: 0.96.2, 0.98.1, 0.99.0, 0.94.18
>
>         Attachments: HBASE-10549-trunk.patch
>
>
> First,I explan my test steps.
> 1.importtsv
> 2.split the region
> 3.delete the region info from .META.(make a hole)
> 4.LoadIncrementalHFiles (this step will hung up in an infinite loop)
> I check the log,there are two issues
> 1.it create _tmp folder in an infinite loop.
> hdfs://hacluster/output3/i/_tmp/_tmp/_tmp/_tmp/_tmp/_tmp/test_table,136.bottom
> 2.when slpliting the hfile,it put the first line data(1211) into two files(top and bottom)
> Input File=hdfs://hacluster/output3/i/3ac6ec287c644a8fb72d96b13e31f576,outFile=hdfs://hacluster/output3/i/_tmp/test_table,2.top,KeyValue=1211/i:value/1390469306407/Put/vlen=1/ts=0
> Input File=hdfs://hacluster/output3/i/3ac6ec287c644a8fb72d96b13e31f576,outFile=hdfs://hacluster/output3/i/_tmp/test_table,2.bottom,KeyValue=1211/i:value/1390469306407/Put/vlen=1/ts=0
> and then I check the code.
> So I think before spliting the hfile,we should check the consistency of startkey and
endkey,if something wrong,we should throw the exception,and stop LoadIncrementalHFiles.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message