You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Ted Yu (JIRA)" <ji...@apache.org> on 2014/09/09 06:15:28 UTC

[jira] [Updated] (HBASE-11918) TestVisibilityLabelsWithDistributedLogReplay#testAddVisibilityLabelsOnRSRestart sometimes fails due to VisibilityController initialization not being recognized

     [ https://issues.apache.org/jira/browse/HBASE-11918?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ted Yu updated HBASE-11918:
---------------------------
    Attachment: 11918-v1.txt

When we don't see VisibilityControllerNotReadyException, VisibilityController has passed initialization.

> TestVisibilityLabelsWithDistributedLogReplay#testAddVisibilityLabelsOnRSRestart sometimes fails due to VisibilityController initialization not being recognized
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-11918
>                 URL: https://issues.apache.org/jira/browse/HBASE-11918
>             Project: HBase
>          Issue Type: Test
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>            Priority: Minor
>         Attachments: 11918-v1.txt
>
>
> Here is one example:
> https://builds.apache.org/job/hbase-0.98/lastCompletedBuild/testReport/org.apache.hadoop.hbase.security.visibility/TestVisibilityLabelsWithDistributedLogReplay/testAddVisibilityLabelsOnRSRestart/
> {code}
> 2014-09-09 02:46:05,168 DEBUG [Thread-245] visibility.TestVisibilityLabelsWithDefaultVisLabelService$2(127): Got exception writing labels
> org.apache.hadoop.hbase.security.visibility.VisibilityControllerNotReadyException: org.apache.hadoop.hbase.security.visibility.VisibilityControllerNotReadyException: VisibilityController not yet initialized!
> 	at org.apache.hadoop.hbase.security.visibility.VisibilityController.addLabels(VisibilityController.java:644)
> 	at org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos$VisibilityLabelsService$1.addLabels(VisibilityLabelsProtos.java:5014)
> 	at org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos$VisibilityLabelsService.callMethod(VisibilityLabelsProtos.java:5178)
> 	at org.apache.hadoop.hbase.regionserver.HRegion.execService(HRegion.java:5591)
> 	at org.apache.hadoop.hbase.regionserver.HRegionServer.execServiceOnRegion(HRegionServer.java:3396)
> 	at org.apache.hadoop.hbase.regionserver.HRegionServer.execService(HRegionServer.java:3378)
> 	at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:29591)
> ...
> 2014-09-09 02:46:10,087 DEBUG [Thread-245] visibility.TestVisibilityLabelsWithDefaultVisLabelService$2(127): Got exception writing labels
> org.apache.hadoop.hbase.DoNotRetryIOException: org.apache.hadoop.hbase.DoNotRetryIOException: org.apache.hadoop.hbase.security.visibility.LabelAlreadyExistsException: Label 'secret' already exists
> 	at org.apache.hadoop.hbase.security.visibility.VisibilityController.addLabels(VisibilityController.java:667)
> 	at org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos$VisibilityLabelsService$1.addLabels(VisibilityLabelsProtos.java:5014)
> 	at org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos$VisibilityLabelsService.callMethod(VisibilityLabelsProtos.java:5178)
> 	at org.apache.hadoop.hbase.regionserver.HRegion.execService(HRegion.java:5591)
> 	at org.apache.hadoop.hbase.regionserver.HRegionServer.execServiceOnRegion(HRegionServer.java:3396)
> 	at org.apache.hadoop.hbase.regionserver.HRegionServer.execService(HRegionServer.java:3378)
> 	at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:29591)
> 	at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2027)
> 	at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:108)
> 	at org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:114)
> 	at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:94)
> 	at java.lang.Thread.run(Thread.java:662)
> 	at sun.reflect.GeneratedConstructorAccessor29.newInstance(Unknown Source)
> 	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
> 	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
> 	at org.apache.hadoop.hbase.protobuf.ProtobufUtil.toException(ProtobufUtil.java:1460)
> 	at org.apache.hadoop.hbase.security.visibility.TestVisibilityLabelsWithDefaultVisLabelService$2.run(TestVisibilityLabelsWithDefaultVisLabelService.java:126)
> 	at org.apache.hadoop.hbase.security.visibility.TestVisibilityLabelsWithDefaultVisLabelService$2.run(TestVisibilityLabelsWithDefaultVisLabelService.java:118)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at javax.security.auth.Subject.doAs(Subject.java:396)
> 	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1491)
> 	at org.apache.hadoop.hbase.security.User$SecureHadoopUser.runAs(User.java:268)
> 	at org.apache.hadoop.hbase.security.visibility.TestVisibilityLabelsWithDefaultVisLabelService.testAddVisibilityLabelsOnRSRestart(TestVisibilityLabelsWithDefaultVisLabelService.java:140)
> 	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.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
> 	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> 	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
> 	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
> 	at org.junit.internal.runners.statements.FailOnTimeout$StatementThread.run(FailOnTimeout.java:74)
> {code}
> Here is related code:
> {code}
>               if (t instanceof VisibilityControllerNotReadyException) {
>                 vcInitialized.set(false);
>                 LOG.warn("VisibilityController was not yet initialized");
>                 Threads.sleep(10);
>               }
> {code}
> vcInitialized needs to be set true when VisibilityController initialization is done.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)