[
https://issues.apache.org/jira/browse/HDFS-6223?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14088419#comment-14088419
]
Jinghui Wang commented on HDFS-6223:
------------------------------------
Thanks for the clarification.
> Using the command setrep to set the replication factor more than the number
> of datanodes with the -w parameter, the command gets in a infinite loop.
> ----------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: HDFS-6223
> URL: https://issues.apache.org/jira/browse/HDFS-6223
> Project: Hadoop HDFS
> Issue Type: Improvement
> Components: hdfs-client
> Affects Versions: 2.1.1-beta, 2.2.0, 2.3.0
> Reporter: Jinghui Wang
> Assignee: Jinghui Wang
>
> Using the command setrep to set the replication factor more than the number
> of datanodes with the -w parameter gets in a infinite loop. When the -w
> parameter is there, the command gets in the following code to wait for the
> replication factor to be met before exiting. But if the number of datanodes
> is less than the desired replication factor, the exiting condition is never
> met.
> A proposed fix is to add a timeout parameter, so the command will wait for a
> certain amount of time or number of tries before exiting.
> for(boolean done = false; !done; ) {
> BlockLocation[] locations = fs.getFileBlockLocations(status, 0, len);
> int i = 0;
> for(; i < locations.length &&
> locations[i].getHosts().length == rep; i++)
> if (!printWarning && locations[i].getHosts().length > rep) {
> System.out.println("\nWARNING: the waiting time may be long for "
> + "DECREASING the number of replication.");
> printWarning = true;
> }
> done = i == locations.length;
> if (!done) {
> System.out.print(".");
> System.out.flush();
> try {Thread.sleep(10000);} catch (InterruptedException e) {}
> }
> }
--
This message was sent by Atlassian JIRA
(v6.2#6252)