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

nkeywal commented on HBASE-6175:
--------------------------------

Todd said on hdfs mailing list:
{noformat}
This is the expected behavior based on the default configuration of
dfs.replication.min. When you close the file, the client waits until
all of the DNs have the block fully written, but the DNs report the
replica to the NN asychronously. So with the default configuration,
the client then only waits for 1 replica to be available before
allowing the file to be closed.

If you need to wait for more replicas, I would recommend polling after
closing the file.
{noformat}

So I need to check if it's just the test or if HBase really needs to know the 
exact number of replica.
                
> TestFSUtils flaky on hdfs getFileStatus method
> ----------------------------------------------
>
>                 Key: HBASE-6175
>                 URL: https://issues.apache.org/jira/browse/HBASE-6175
>             Project: HBase
>          Issue Type: Bug
>          Components: test
>    Affects Versions: 0.96.0
>            Reporter: nkeywal
>            Assignee: nkeywal
>            Priority: Trivial
>             Fix For: 0.96.0
>
>
> This is a simplified version of a TestFSUtils issue: a sleep and the test 
> works 100% of the time. No sleep and it becomes flaky. Root cause unknown. 
> While the issue appears on the tests, the root cause could be an issue on 
> real production system as well.
> {noformat}
> @Test
>  public void testFSUTils() throws Exception {
>    final String hosts[] = {"host1", "host2", "host3", "host4"};
>    Path testFile = new Path("/test1.txt");
>    HBaseTestingUtility htu = new HBaseTestingUtility();
>    try {
>      htu.startMiniDFSCluster(hosts).waitActive();
>      FileSystem fs = htu.getDFSCluster().getFileSystem();
>      for (int i = 0; i < 100; ++i) {
>        FSDataOutputStream out = fs.create(testFile);
>        byte[] data = new byte[1];
>        out.write(data, 0, 1);
>        out.close();
>        // Put a sleep here to make me work
>        //Thread.sleep(2000);
>        FileStatus status = fs.getFileStatus(testFile);
>        HDFSBlocksDistribution blocksDistribution =
>          FSUtils.computeHDFSBlocksDistribution(fs, status, 0, 
> status.getLen());
>        assertEquals("Wrong number of hosts distributing blocks. at
> iteration "+i, 3,
>          blocksDistribution.getTopHosts().size());
>        fs.delete(testFile, true);
>      }
>    } finally {
>      htu.shutdownMiniDFSCluster();
>    }
>  }
> {noformat}

--
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