[ 
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

        

Reply via email to