Output to file stops after a while
----------------------------------

                 Key: SUREFIRE-665
                 URL: http://jira.codehaus.org/browse/SUREFIRE-665
             Project: Maven Surefire
          Issue Type: Bug
          Components: Maven Surefire Plugin
    Affects Versions: 2.6
            Reporter: Tom Baeyens


After some tests of proper behavior, surefire stops logging the console output 
(stderr & stdout) to the files.  For the first tests that are executed, the 
Xxxxx-output.txt files contain the correct console output.  But from some test 
in the test suite, all those files are blank.  

My environment: Mac with 

Java(TM) SE Runtime Environment (build 1.6.0_20-b02-279-10M3065)
Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01-279, mixed mode)

Apache Maven 2.2.0 (r788681; 2009-06-26 15:04:01+0200)
Java version: 1.6.0_20
Java home: /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home
Default locale: en_US, platform encoding: MacRoman
OS name: "mac os x" version: "10.6.4" arch: "x86_64" Family: "mac"

Using Surefire 2.6

I've done following observations:

* The exact test where the console capturing stops can vary a couple of tests, 
but it always happens.  Could it be related to memory?  Increasing from 
MAVEN_OPTS="-Xmx1024m -Xms512m" to MAVEN_OPTS="-Xmx2048m -Xms512m" didn't have 
an effect

* When debugging, as long as the output is ok, System.err.checkError() returns 
false.  Once the output files get blank, System.err.checkError() returns true.

* The problem doesn't occur when running the same test suite in eclipse.

* When I didn't specify surefire version, I got 2.4.something.  When I 
explicitely set the version to 2.6, then the test suite started failing half 
way with out of memory exceptions.  

* Then I configured <forkMode>always</forkMode>.  That made the whole test 
suite run fine (no memory exceptions and all log files being produced) but then 
it takes a very long time.

* I traced closing of the system err stream until SystemStreamCapturer
76     public void restoreStreams()
77     {
78         // Note that the fields can be null if the test hasn't even started 
yet (an early error)
79         if ( oldOut != null )
80         {
81             System.setOut( oldOut );
82         }
83         if ( oldErr != null )
84         {
85             System.setErr( oldErr );
86         }
87 
88         IOUtil.close( newOut );
89         IOUtil.close( newErr );
90     }

But there I couldn't find how to trace it further and gave up.


To reproduce: (only tested on mac)

check out https://svn.codehaus.org/activiti/activiti/trunk and then on the root 
do
mvn clean install

only the first executed tests will contain properly captured output in 
modules/activiti-engine/target/surefire-reports/*-output.txt

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to