CR Hota created HDFS-13637: ------------------------------ Summary: RBF: Router fails when threadIndex (in ConnectionPool) wraps around Integer.MIN_VALUE Key: HDFS-13637 URL: https://issues.apache.org/jira/browse/HDFS-13637 Project: Hadoop HDFS Issue Type: Sub-task Components: federation Reporter: CR Hota
{code:java} int threadIndex = this.clientIndex.getAndIncrement(); for (int i=0; i<size; i++) { int index = (threadIndex + i) % size; conn = tmpConnections.get(index); if (conn != null && conn.isUsable()) { return conn; } } {code} The above code in ConnectionPool.java getConnection method throws java.lang.ArrayIndexOutOfBoundsException when clientIndex wraps to Integer.MIN_VALUE and makes router reject all requests. threadIndex should be reset to 0. {code:java} if (threadIndex < 0) { // Wrap around 0 to keep array lookup index positive this.clientIndex.set(0); threadIndex = this.clientIndex.getAndIncrement(); } {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: hdfs-dev-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-dev-h...@hadoop.apache.org