surefire forked processes not always killed after timeout
---------------------------------------------------------

                 Key: SUREFIRE-773
                 URL: https://jira.codehaus.org/browse/SUREFIRE-773
             Project: Maven Surefire
          Issue Type: Bug
          Components: process forking
    Affects Versions: 2.8
         Environment: 64 bit RHEL 5.5 , 64-bit Java 1.6.0_23
            Reporter: David Biesack


Our forked JUnit/surefire processes are not always stopping correctly when 
timing out within a Maven build
(running inside our Jenkins CI server, ver  1.425).

The maven build finishes and Jenkins shows a failed/unstable build.
These running processes cause problems later, because the tests may be holding 
a resource like a port, and subsequent rebuilds fail because the
tests fail. 

For example, even though no Maven builds are currently running, ps shows about 
a dozen Java processes running,
with commands such as:

{noformat} 
/usr/local/java-1.6_23/jre/bin/java -Xms1g -Xmx5g 
-Djava.library.path=/u/jenkinsci/.hudson/jobs/rtolap.jtt.tests/workspace/target/lib
 \
   -jar 
/u/jenkinsci/.hudson/jobs/rtolap.jtt.tests/workspace/target/surefire/surefirebooter1374560535780866887.jar
 \
   
/u/jenkinsci/.hudson/jobs/rtolap.jtt.tests/workspace/target/surefire/surefire65313...
/usr/local/java-1.6_23/jre/bin/java -Xmx2g -Xms1g 
-Djava.library.path=/u/jenkinsci/.hudson/jobs/rtolap/workspace/target/lib \
   -jar 
/u/jenkinsci/.hudson/jobs/rtolap/workspace/target/surefire/surefirebooter6814971258434039335.jar
 \
   
/u/jenkinsci/.hudson/jobs/rtolap/workspace/target/surefire/surefire5806103969370259371tmp
 /u/jenkinsci/...
...
{noformat} 

We have our Maven surefire preferences set to fork the tests (via a parent pom)
{code:xml|title=pom.xml excerpt} 
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.8</version>
                <configuration>
                    <forkMode>once</forkMode>
                    
<forkedProcessTimeoutInSeconds>720</forkedProcessTimeoutInSeconds>
                </configuration>
            </plugin>
{code} 

I suspect the timeout is the problem - i.e. perhaps the test is timing out and 
the attempt to kill the forked process 
fails, leaving it running.

Has anyone seen something similar and/or know how to fix this so that surefire 
*really* kills the process?

When this happens, doing

  kill <processid>

(logged in as the process owner) usually does not work, but

  kill -9 <processid>

does.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to