hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ShiXing (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-6327) HLog can be null when create table
Date Fri, 06 Jul 2012 04:08:34 GMT

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

ShiXing commented on HBASE-6327:
--------------------------------

TestServerCustomProtocol passed locally for me.

-------------------------------------------------------------------------------
Test set: org.apache.hadoop.hbase.regionserver.TestServerCustomProtocol
-------------------------------------------------------------------------------
Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 14.787 sec

In the testReport, it shows that table.coprocessorExec()'s result does not contain some region.
{code}
Error Message

Results should contain region test,bbb,1341531289968.2e838a3a40aeebafb0c3093c5098ce23. for
row 'bbb'
Stacktrace

java.lang.AssertionError: Results should contain region test,bbb,1341531289968.2e838a3a40aeebafb0c3093c5098ce23.
for row 'bbb'
	at org.junit.Assert.fail(Assert.java:93)
	at org.junit.Assert.assertTrue(Assert.java:43)
	at org.apache.hadoop.hbase.regionserver.TestServerCustomProtocol.verifyRegionResults(TestServerCustomProtocol.java:361)
	at org.apache.hadoop.hbase.regionserver.TestServerCustomProtocol.verifyRegionResults(TestServerCustomProtocol.java:353)
	at org.apache.hadoop.hbase.regionserver.TestServerCustomProtocol.testSingleMethod(TestServerCustomProtocol.java:191)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
{code}

But the logs shows that the regions are all assigned:
{code}
2012-07-05 23:34:50,184 INFO  [pool-1-thread-1] master.AssignmentManager(1751): Assigning
region test,,1341531289965.cc5dddba941b937a5ebd9f80a582024a. to asf001.sp2.ygridcore.net,59854,1341531283318
2012-07-05 23:34:50,242 INFO  [pool-1-thread-1] master.AssignmentManager(1751): Assigning
region test,bbb,1341531289968.2e838a3a40aeebafb0c3093c5098ce23. to asf001.sp2.ygridcore.net,59854,1341531283318
2012-07-05 23:34:50,258 INFO  [pool-1-thread-1] master.AssignmentManager(1751): Assigning
region test,ccc,1341531289970.9bcbc7b96efbb051d046fb87d207bc5d. to asf001.sp2.ygridcore.net,59854,1341531283318
{code}

Also I found there are maybe thread leak log:
{code}
Standard Error

2012-07-05 23:34:51,775 INFO  [pool-1-thread-1] hbase.ResourceChecker(145): before regionserver.TestServerCustomProtocol#testSingleMethod:
144 threads, 271 file descriptors 3 connections, 
2012-07-05 23:34:51,793 DEBUG [pool-1-thread-1] client.MetaScanner(202): Scanning .META. starting
at row=test,,00000000000000 for max=2147483647 rows using hconnection 0x81b83c
2012-07-05 23:34:51,879 INFO  [pool-1-thread-1] hbase.ResourceChecker(145): after regionserver.TestServerCustomProtocol#testSingleMethod:
147 threads (was 144), 271 file descriptors (was 271). 3 connections (was 3),  -thread leak?-

{code}
I also looked several other test case log, for example some of the coprocessors https://builds.apache.org/job/PreCommit-HBASE-Build/2333//testReport/org.apache.hadoop.hbase.coprocessor/,
there is no thread leak log.
                
> HLog can be null when create table
> ----------------------------------
>
>                 Key: HBASE-6327
>                 URL: https://issues.apache.org/jira/browse/HBASE-6327
>             Project: HBase
>          Issue Type: Bug
>            Reporter: ShiXing
>            Assignee: ShiXing
>         Attachments: 6327.txt, HBASE-6327-trunk-V1.patch, createTableFailedMaster.log
>
>
> As HBASE-4010 discussed, the HLog can be null.
> We have meet createTable failed because the no use hlog.
> When createHReagion, the HLog.LogSyncer is run sync(), in under layer it call the DFSClient.DFSOutputStream.sync().

> Then the hlog.closeAndDelete() was called,firstly the HLog.close() will interrupt the
LogSyncer, and interrupt DFSClient.DFSOutputStream.sync().The DFSClient.DFSOutputStream will
store the exception and throw it when we called DFSClient.close(). 
> The HLog.close() call the writer.close()/DFSClient.close() after interrupt the LogSyncer.
And there is no catch exception for the close().
> So the Master throw exception to the client. There is no need to throw this exception,
further, the hlog is no use.
> Our cluster is 0.90, the logs is attached, after "closing hlog writer", there is no log
for the createTable().
> The trunk and 0.92, 0.94, we used just one hlog, and if the exception happends, the client
will got createTable failed, but indeed ,we expect all the regions for the table can also
be assigned.
> I will give the patch for this later.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

Mime
View raw message