[ https://issues.apache.org/jira/browse/HDFS-6223?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andrew Wang resolved HDFS-6223. ------------------------------- Resolution: Not a Problem I agree with [~sureshms] on the behavior of the -w flag with setrep, so will resolve this for now. [~jinghuiyin], please reopen if you disagree. > 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)