[ https://issues.apache.org/jira/browse/HBASE-4973?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
nkeywal updated HBASE-4973: --------------------------- Status: Patch Available (was: Open) > On failure, HBaseAdmin sleeps one time too many > ----------------------------------------------- > > Key: HBASE-4973 > URL: https://issues.apache.org/jira/browse/HBASE-4973 > Project: HBase > Issue Type: Improvement > Components: client > Affects Versions: 0.94.0 > Reporter: nkeywal > Assignee: nkeywal > Priority: Minor > Attachments: 4973_HBaseAdmin.patch > > > In this code last sleep is useless as we're not retrying. This can slow down > failure scenarios by a few seconds (up to 32 second). > {noformat} > public HBaseAdmin(Configuration c) > throws MasterNotRunningException, ZooKeeperConnectionException { > this.conf = HBaseConfiguration.create(c); > this.connection = HConnectionManager.getConnection(this.conf); > this.pause = this.conf.getLong("hbase.client.pause", 1000); > this.numRetries = this.conf.getInt("hbase.client.retries.number", 10); > this.retryLongerMultiplier = this.conf.getInt( > "hbase.client.retries.longer.multiplier", 10); > int tries = 0; > for (; tries < numRetries; ++tries) { > try { > this.connection.getMaster(); > break; > } catch (MasterNotRunningException mnre) { > HConnectionManager.deleteStaleConnection(this.connection); > this.connection = HConnectionManager.getConnection(this.conf); > } catch (UndeclaredThrowableException ute) { > HConnectionManager.deleteStaleConnection(this.connection); > this.connection = HConnectionManager.getConnection(this.conf); > } > try { // Sleep > Thread.sleep(getPauseTime(tries)); > } catch (InterruptedException e) { > Thread.currentThread().interrupt(); > // we should delete connection between client and zookeeper > HConnectionManager.deleteStaleConnection(this.connection); > throw new MasterNotRunningException("Interrupted"); > } > } > if (tries >= numRetries) { > // we should delete connection between client and zookeeper > HConnectionManager.deleteStaleConnection(this.connection); > throw new MasterNotRunningException("Retried " + numRetries + " times"); > } > } > {noformat} -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira