[
https://issues.apache.org/jira/browse/HBASE-4138?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13071153#comment-13071153
]
ramkrishna.s.vasudevan commented on HBASE-4138:
-----------------------------------------------
I am planning to make the following changes,
If the ZookeeperWatcher is called by the HMaster then I will be creating a new
constructor allowing it to create the base node.
For all other components RS, HBaseAdmin, HTable I will not allow the base node
creation. Including Replication related code.
This will ensure that only master creates the base node and no other component
can create it.
Is this change fine ? I have tested it in my testing environment.
There are some related testcases which I had to change so the changes may be in
more places.
If it is fine, should i give patch for trunk and 0.90.x version or only for
trunk so that I can prepare the patch and upload it asap.
Thanks in advance.
> If zookeeper.znode.parent is not specifed explicitly in Client code then
> HTable object loops continuously waiting for the root region by using /hbase
> as the base node.
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: HBASE-4138
> URL: https://issues.apache.org/jira/browse/HBASE-4138
> Project: HBase
> Issue Type: Bug
> Components: client
> Affects Versions: 0.90.3
> Reporter: ramkrishna.s.vasudevan
> Assignee: ramkrishna.s.vasudevan
> Fix For: 0.90.4
>
>
> Change the zookeeper.znode.parent property (default is /hbase).
> Now do not specify this change in the client code.
> Use the HTable Object.
> The HTable is not able to find the root region and keeps continuously looping.
> Find the stack trace:
> ====================
> Object.wait(long) line: not available [native method]
> RootRegionTracker(ZooKeeperNodeTracker).blockUntilAvailable(long) line: 122
> RootRegionTracker.waitRootRegionLocation(long) line: 73
> HConnectionManager$HConnectionImplementation.locateRegion(byte[],
> byte[], boolean) line: 578
> HConnectionManager$HConnectionImplementation.locateRegion(byte[],
> byte[]) line: 558
> HConnectionManager$HConnectionImplementation.locateRegionInMeta(byte[],
> byte[], byte[], boolean, Object) line: 687
> HConnectionManager$HConnectionImplementation.locateRegion(byte[],
> byte[], boolean) line: 589
> HConnectionManager$HConnectionImplementation.locateRegion(byte[],
> byte[]) line: 558
> HConnectionManager$HConnectionImplementation.locateRegionInMeta(byte[],
> byte[], byte[], boolean, Object) line: 687
> HConnectionManager$HConnectionImplementation.locateRegion(byte[],
> byte[], boolean) line: 593
> HConnectionManager$HConnectionImplementation.locateRegion(byte[],
> byte[]) line: 558
> HTable.<init>(Configuration, byte[]) line: 171
> HTable.<init>(Configuration, String) line: 145
> HBaseTest.test() line: 45
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira