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: [email protected]
For additional commands, e-mail: [email protected]