You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-issues@hadoop.apache.org by "Mingliang Liu (JIRA)" <ji...@apache.org> on 2017/03/10 08:09:04 UTC
[jira] [Comment Edited] (HADOOP-14170) FileSystemContractBaseTest
is not cleaning up test directory clearly
[ https://issues.apache.org/jira/browse/HADOOP-14170?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15904301#comment-15904301 ]
Mingliang Liu edited comment on HADOOP-14170 at 3/10/17 8:08 AM:
-----------------------------------------------------------------
One simple solution is to clean up this directory as well in {{tearDown()}} method. This is enough because subclass may need to use different test root (e.g. S3A using /forkid for parallel tests), but the existing tests are still using {{/test}} instead.
Another approach is to use method-specific sub-directory for each test case in which way they don't interfere with each other. But we still need to clean up both {{/test}} and {{/user/bob/test}} after the whole test. Or we can address that later after this patch.
I think a feasible solution is to always use {{path("test")}} for normal tests except those tests against root (e.g. {{testRootDirAlwaysExists()}}) in which case we have to use {{path("/test")}}. This should be clear in each test case - test root or not. I'll upload a patch for this solution.
was (Author: liuml07):
One simple solution is to clean up this directory as well in {{tearDown()}} method. This is ideal though.
Another approach is to use method-specific sub-directory for each test case in which way they don't interfere with each other. But we still need to clean up both {{/test}} and {{/user/bob/test}} after the whole test.
I think a good solution is to always use {{path("test")}} for normal tests except tests against root (e.g. {{testRootDirAlwaysExists()}}) in which case we use {{path("/test")}} instead. This should be clear in each test case - test root or not. I'll upload a patch for this solution.
> FileSystemContractBaseTest is not cleaning up test directory clearly
> --------------------------------------------------------------------
>
> Key: HADOOP-14170
> URL: https://issues.apache.org/jira/browse/HADOOP-14170
> Project: Hadoop Common
> Issue Type: Bug
> Components: fs
> Reporter: Mingliang Liu
> Assignee: Mingliang Liu
>
> In {{FileSystemContractBaseTest::tearDown()}} method, it cleans up the {{path("/test")}} directory, which will be qualified as {{/test}} (against root instead of working directory because it's absolute):
> {code}
> @Override
> protected void tearDown() throws Exception {
> try {
> if (fs != null) {
> fs.delete(path("/test"), true);
> }
> } catch (IOException e) {
> LOG.error("Error deleting /test: " + e, e);
> }
> }
> {code}
> But in the test, it uses {{path("test")}} sometimes, which will be made qualified against the working directory (e.g. {{/user/bob/test}}).
> This makes some tests fail intermittently, e.g. {{ITestS3AFileSystemContract}}. Also see the discussion in [HADOOP-13934].
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
---------------------------------------------------------------------
To unsubscribe, e-mail: common-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-issues-help@hadoop.apache.org