Kihwal Lee created HDFS-4937:
--------------------------------
Summary: ReplicationMonitor can infinite-loop in
BlockPlacementPolicyDefault#chooseRandom()
Key: HDFS-4937
URL: https://issues.apache.org/jira/browse/HDFS-4937
Project: Hadoop HDFS
Issue Type: Bug
Components: namenode
Affects Versions: 0.23.8, 2.0.4-alpha
Reporter: Kihwal Lee
When a large number of nodes are removed by refreshing node lists, the network
topology is updated. If the refresh happens at the right moment, the
replication monitor thread may stuck in the while loop of {{chooseRandom()}}.
This is because the old cluster size is used in the terminal condition check of
the loop. This usually happens when a block with a high replication factor is
being processed. Since replicas/rack is calculated beforehand, no node choice
may satisfy the goodness criteria if refreshing removed racks.
All nodes will end up in the excluded list, but the size will still be less
than the previously recorded cluster size, so it will loop infinitely. This has
been seen in a production environment.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira