IndexOutOfBoundsException in FSEditLog
--------------------------------------
Key: HADOOP-4999
URL: https://issues.apache.org/jira/browse/HADOOP-4999
Project: Hadoop Core
Issue Type: Bug
Components: dfs
Reporter: Boris Shkolnik
when we go over a collection of editStreams in FSEditLog::logEdit we
pre-calculate number of iterations for the "for loop":
int numEditStreams = editStreams.size();
for (int idx = 0; idx < numEditStreams(); idx++) {
...
processIOError(idx);
...
}
but there is a possibility of an IOError that will call processIOError(idx)
which will remove an editStream from editStreams inside the loop, and that will
cause IndexOutOfBoundsException when end of collection is reached.
proposed fix: recalculate size of the collection on every iteration (it is very
cheap, cause it just returns an integer).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.