[ 
https://issues.apache.org/jira/browse/HDFS-3734?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13426537#comment-13426537
 ] 

Vinay commented on HDFS-3734:
-----------------------------

Here is the modified test case
{code}@Test(timeout = 60000)
  public void testReplicationAdjusted() throws IOException {
    // start a cluster 
    Configuration conf = new HdfsConfiguration();
    // Replicate and heartbeat fast to shave a few seconds off test
    conf.setInt(DFSConfigKeys.DFS_NAMENODE_REPLICATION_INTERVAL_KEY, 1);
    conf.setInt(DFSConfigKeys.DFS_HEARTBEAT_INTERVAL_KEY, 1);

    MiniDFSCluster cluster = null;
    try {
      cluster = new MiniDFSCluster.Builder(conf).numDataNodes(2)
          .build();
      cluster.waitActive();
      FileSystem fs = cluster.getFileSystem();
  
      // Create a file with replication count 1
      Path p = new Path("/testfile");
      DFSTestUtil.createFile(fs, p, 10, /*repl*/ (short)1, 1);
      DFSTestUtil.waitReplication(fs, p, (short)1);

      Path p2 = new Path("/testfile2");
      DFSTestUtil.createFile(fs, p2, 10, /*repl*/ (short)1, 1);
      DFSTestUtil.waitReplication(fs, p2, (short)1);
  
      // Shut down and restart cluster with new minimum replication of 2
      cluster.shutdown();
      cluster = null;
      
      conf.setInt(DFSConfigKeys.DFS_NAMENODE_REPLICATION_MIN_KEY, 2);
  
      cluster = new MiniDFSCluster.Builder(conf).numDataNodes(2)
        .format(false).build();
      cluster.waitActive();
      fs = cluster.getFileSystem();
      
      // The file should get adjusted to replication 2 when
      // the edit log is replayed.
      DFSTestUtil.waitReplication(fs, p, (short)2);
    } finally {
      if (cluster != null) {
        cluster.shutdown();
      }
    }
  }{code}
                
> TestFSEditLogLoader.testReplicationAdjusted() will hang if number of blocks 
> are more than one
> ---------------------------------------------------------------------------------------------
>
>                 Key: HDFS-3734
>                 URL: https://issues.apache.org/jira/browse/HDFS-3734
>             Project: Hadoop HDFS
>          Issue Type: Bug
>    Affects Versions: 2.1.0-alpha, 3.0.0
>            Reporter: Vinay
>
> TestFSEditLogLoader.testReplicationAdjusted() which was added in HDFS-2003 
> will fail if number of blocks before cluster restart are more than one.
> Test Scenario:
> --------------
> 1. Write a file with min replication as 1 and replication factor as 1.
> 2. Change the min replication to 2 and restart the cluster.
> Expected: Min replication should be automatically reset on cluster restart by 
> replicating more blocks.
> Currently, if the number of blocks before restart is only one, then on 
> restart NN will not enter safemode, hence replication will happen and 
> satisfies min replication factor.
> If initial blocks count is more than 1 which are having replication factor as 
> 1, then on restart NN will enter safemode and will never come out.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to