lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dawid Weiss (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (SOLR-5914) Almost all Solr tests no longer cleanup their temp dirs on Windows
Date Thu, 27 Mar 2014 10:31:16 GMT

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

Dawid Weiss commented on SOLR-5914:
-----------------------------------

I've looked at refactoring it a bit. The temporary folder and file creation in tests is very,
very hairy. And time-consuming to fix. My conclusions so far:
- we should add deleteOnExit to forbidden APIs; most of its use is laziness, and potentially
bugs like this one:
{code}
    if (!success) {
      try {
        file.deleteOnExit();
      } catch (Exception e) {
        log.error("Error deleting file on exit: " + file, e);
      }
    }
{code}

- asserting on a 'clean' temporary folder state may be impossible given how much code would
have to be fixed (unless somebody can lend a hand here).

- global TEMP_DIR is evil. Use TestUtil.createTempFile and TestUtil.getTempDir (which I will
rename to createTempDir).

A patch will follow once I run the tests and ensure I didn't break anything. The patch removes
refs to TEMP_DIR and cleans a lot of junk code. By calling TestUtil.* methods the temporary
folders/ files are removed after a test class completes. Failure to remove a folder or a directory
will cause a test suite failure.

> Almost all Solr tests no longer cleanup their temp dirs on Windows
> ------------------------------------------------------------------
>
>                 Key: SOLR-5914
>                 URL: https://issues.apache.org/jira/browse/SOLR-5914
>             Project: Solr
>          Issue Type: Bug
>          Components: Tests
>    Affects Versions: 4.8
>            Reporter: Uwe Schindler
>            Assignee: Dawid Weiss
>            Priority: Critical
>             Fix For: 4.8
>
>         Attachments: SOLR-5914 .patch, SOLR-5914 .patch, branch4x-jenkins.png, build-plugin.jpg,
trunk-jenkins.png
>
>
> Recently the Windows Jenkins Build server has the problem of all-the time running out
of disk space. This machine runs 2 workspaces (4.x and trunk) and has initially 8 Gigabytes
of free SSD disk space.
> Because of the recently all-the time failing tests, the test framework does not forcefully
clean up the "J0" working folders after running tests. This leads to the fact, that the workspace
is filled with tons of Solr Home dirs. I tried this on my local machine:
> - run ant test
> - go to build/.../test/J0 and watch folders appearing: Almost every test no longer cleans
up after shutting down, leaving a million of files there. This is approx 3 to 4 Gigabytes!!!
> In Lucene the folders are correctly removed. This has happened recently, so i think we
have some code like ([~erickerickson] !!!):
> {{new Properties().load(new FileInputStream(...))}} that does not close the files. Because
of this, the test's afterClass cannot clean up folders anymore. If you look in the test log,
you see messages like "{{!!!! WARNING: best effort to remove C:\Users\JenkinsSlave\workspace\Lucene-Solr-4.x-Windows\solr\build\solr-core\test\J0\.\org.apache.solr.cloud.TestShortCircuitedRequests-1395693845226
FAILED !!!!!}}" all the time.
> So if anybody committed some changes that might not close files correctly, please fix!
Otherwise I have to disable testing on windows - and I will no longer run solr, tests, too:
My local computer also uses gigabytes of temp space after running tests!



--
This message was sent by Atlassian JIRA
(v6.2#6252)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Mime
View raw message