[
https://issues.apache.org/jira/browse/HBASE-9863?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13812433#comment-13812433
]
Ted Yu commented on HBASE-9863:
-------------------------------
bq. can we remove synchronized, instead make sure the callers have proper
synchronization?
isTableAvailableAndInitialized() is called by start() which is not
synchronized. Doing the above would equate to adding synchronized(this) in
start() before calling isTableAvailableAndInitialized().
Is that what you meant ?
For 'NamespaceDescriptor get(String name)', the semantics is the same as the
original method.
> Intermittently
> TestZooKeeper#testRegionAssignmentAfterMasterRecoveryDueToZKExpiry hangs
> ---------------------------------------------------------------------------------------
>
> Key: HBASE-9863
> URL: https://issues.apache.org/jira/browse/HBASE-9863
> Project: HBase
> Issue Type: Bug
> Reporter: Ted Yu
> Assignee: Ted Yu
> Attachments: 9863-v1.txt, 9863-v2.txt, 9863-v3.txt
>
>
> TestZooKeeper#testRegionAssignmentAfterMasterRecoveryDueToZKExpiry sometimes
> hung.
> Here were two recent occurrences:
> https://builds.apache.org/job/PreCommit-HBASE-Build/7676/console
> https://builds.apache.org/job/PreCommit-HBASE-Build/7671/console
> There were 9 occurrences of the following in both stack traces:
> {code}
> "FifoRpcScheduler.handler1-thread-5" daemon prio=10 tid=0x09df8800 nid=0xc17
> waiting for monitor entry [0x6fdf8000]
> java.lang.Thread.State: BLOCKED (on object monitor)
> at
> org.apache.hadoop.hbase.master.TableNamespaceManager.isTableAvailableAndInitialized(TableNamespaceManager.java:250)
> - waiting to lock <0x7f69b5f0> (a
> org.apache.hadoop.hbase.master.TableNamespaceManager)
> at
> org.apache.hadoop.hbase.master.HMaster.isTableNamespaceManagerReady(HMaster.java:3146)
> at
> org.apache.hadoop.hbase.master.HMaster.getNamespaceDescriptor(HMaster.java:3105)
> at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:1743)
> at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:1782)
> at
> org.apache.hadoop.hbase.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java:38221)
> at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:1983)
> at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:92)
> {code}
> The test hung here:
> {code}
> "pool-1-thread-1" prio=10 tid=0x74f7b800 nid=0x5aa5 in Object.wait()
> [0x74efe000]
> java.lang.Thread.State: TIMED_WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <0xcc848348> (a org.apache.hadoop.hbase.ipc.RpcClient$Call)
> at org.apache.hadoop.hbase.ipc.RpcClient.call(RpcClient.java:1436)
> - locked <0xcc848348> (a org.apache.hadoop.hbase.ipc.RpcClient$Call)
> at
> org.apache.hadoop.hbase.ipc.RpcClient.callBlockingMethod(RpcClient.java:1654)
> at
> org.apache.hadoop.hbase.ipc.RpcClient$BlockingRpcChannelImplementation.callBlockingMethod(RpcClient.java:1712)
> at
> org.apache.hadoop.hbase.protobuf.generated.MasterProtos$MasterService$BlockingStub.createTable(MasterProtos.java:40372)
> at
> org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation$5.createTable(HConnectionManager.java:1931)
> at org.apache.hadoop.hbase.client.HBaseAdmin$2.call(HBaseAdmin.java:598)
> at org.apache.hadoop.hbase.client.HBaseAdmin$2.call(HBaseAdmin.java:594)
> at
> org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:116)
> - locked <0x7faa26d0> (a org.apache.hadoop.hbase.client.RpcRetryingCaller)
> at
> org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:94)
> - locked <0x7faa26d0> (a org.apache.hadoop.hbase.client.RpcRetryingCaller)
> at
> org.apache.hadoop.hbase.client.HBaseAdmin.executeCallable(HBaseAdmin.java:3124)
> at
> org.apache.hadoop.hbase.client.HBaseAdmin.createTableAsync(HBaseAdmin.java:594)
> at
> org.apache.hadoop.hbase.client.HBaseAdmin.createTable(HBaseAdmin.java:485)
> at
> org.apache.hadoop.hbase.TestZooKeeper.testRegionAssignmentAfterMasterRecoveryDueToZKExpiry(TestZooKeeper.java:486)
> {code}
--
This message was sent by Atlassian JIRA
(v6.1#6144)