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

Ted Yu commented on HBASE-20907:
--------------------------------

Thanks for fixing the flaky test.

There is some utility method which you can make use of.
e.g. I tried the following change in place of your addition:
{code}
    UTIL.waitTableAvailable(TableName.NAMESPACE_TABLE_NAME);
{code}
The test passes.
Is the above a little cleaner ?

> Fix Intermittent failure on TestProcedurePriority
> -------------------------------------------------
>
>                 Key: HBASE-20907
>                 URL: https://issues.apache.org/jira/browse/HBASE-20907
>             Project: HBase
>          Issue Type: Test
>            Reporter: Yu Li
>            Assignee: Yu Li
>            Priority: Major
>             Fix For: 3.0.0, 2.0.2, 2.1.1
>
>         Attachments: HBASE-20907.patch
>
>
> From a local UT check against 2.1.0-RC1, HMaster failed to initialize before 
> time out. Checking the test log we could see below message:
> {noformat}
> 2018-07-17 20:06:37,142 DEBUG [Thread-4003] 
> client.RpcRetryingCallerImpl(131): Call exception, tries=6, retries=6, 
> started=4173 ms ago, cancelled=false, msg=java.io.IOException: Inject error
>         at 
> org.apache.hadoop.hbase.master.procedure.TestProcedurePriority$MyCP.preGetOp(TestProcedurePriority.java:92)
>         at 
> org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost$19.call(RegionCoprocessorHost.java:841)
>         at 
> org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost$19.call(RegionCoprocessorHost.java:838)
>         at 
> org.apache.hadoop.hbase.coprocessor.CoprocessorHost$ObserverOperationWithoutResult.callObserver(CoprocessorHost.java:540)
>         at 
> org.apache.hadoop.hbase.coprocessor.CoprocessorHost.execOperation(CoprocessorHost.java:614)
>         at 
> org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost.preGet(RegionCoprocessorHost.java:838)
>         at 
> org.apache.hadoop.hbase.regionserver.RSRpcServices.get(RSRpcServices.java:2520)
>         at 
> org.apache.hadoop.hbase.regionserver.RSRpcServices.get(RSRpcServices.java:2460)
>         at 
> org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:41998)
>         at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:409)
>         at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:130)
>         at 
> org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:324)
>         at 
> org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:304)
> , details=row 'hbase:namespace' on table 'hbase:meta' at 
> region=hbase:meta,,1.1588230740, 
> hostname=hdpdevm1.et2sqa.tbsite.net,59254,1531829189215, seqNum=-1, 
> exception=java.io.IOException: java.io.IOException: Inject error
>         at 
> org.apache.hadoop.hbase.master.procedure.TestProcedurePriority$MyCP.preGetOp(TestProcedurePriority.java:92)
>         at 
> org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost$19.call(RegionCoprocessorHost.java:841)
>         ...
>         at org.apache.hadoop.hbase.client.HTable.get(HTable.java:386)
>         at org.apache.hadoop.hbase.client.HTable.get(HTable.java:360)
>         at 
> org.apache.hadoop.hbase.MetaTableAccessor.getTableState(MetaTableAccessor.java:1078)
>         at 
> org.apache.hadoop.hbase.MetaTableAccessor.tableExists(MetaTableAccessor.java:403)
>         at 
> org.apache.hadoop.hbase.master.TableNamespaceManager.start(TableNamespaceManager.java:94)
> {noformat}
> In current test code we will set {{FAIL}} to true w/o checking whether 
> namespace manager is already up, and if not lucky we will run into the above 
> case and get a timeout.
> The fix will be quite straight forward.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to