[ https://issues.apache.org/jira/browse/HBASE-4138?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13072359#comment-13072359 ]
Ted Yu commented on HBASE-4138: ------------------------------- {code} + String errorMsg = "ZooKeeper available but base node mismatch. Check the value configured in the 'zookeeper.znode.parent'. " {code} The first sentence looks redundant with succeeding sentences, making the line longer than 80 characters. It can be omitted. For ZooKeeperNodeTracker.java: {code} + abortable + .abort( + "Unexpected exception handling while checking if basenode exists.", + e); {code} can be condensed into one line with message "Exception while checking if basenode exists" For ZooKeeperWatcher ctor, the following is redundant: {code} + * @throws ZooKeeperConnectionException {code} Remove this comment which you have done in this JIRA: {code} // TODO: Move this to an init method somewhere so not everyone calls it? {code} Are all tests passing for you ? Good work. > 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.92.0 > > Attachments: HBASE-4138_trunk_1.patch, HBASE-4138_trunk_2.patch > > > 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