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

Jesse Glick commented on SUREFIRE-1433:
---------------------------------------

Obviously the above is not a real test. I was merely demonstrating that 
Surefire is not robust against unforeseeable fatal problems in the test JVM, 
making it ill suited to long-running test suites. JUnit itself treats any 
{{Throwable}} thrown out of a test method as a “failure” which 
{{rerunFailingTestsCount}} will process; yet lower-level errors in a forked 
test VM are not recoverable.

> rerunFailingTestsCount does not help with crashes
> -------------------------------------------------
>
>                 Key: SUREFIRE-1433
>                 URL: https://issues.apache.org/jira/browse/SUREFIRE-1433
>             Project: Maven Surefire
>          Issue Type: Bug
>          Components: process forking
>    Affects Versions: 2.20.1
>         Environment: Linux, Java 8u131, Maven 3.5.0
>            Reporter: Jesse Glick
>         Attachments: demo.zip
>
>
> I have a CI job running lots of very slow tests, and am using 
> {{-Dsurefire.rerunFailingTestsCount=2 -Dmaven.test.failure.ignore 
> -Dsurefire.timeout=7200 -DreuseForks=false -DforkCount=2}} to run Maven. It 
> will typically run for about three hours, collecting a lot of passing tests, 
> a few flaking tests with subsequent passes, and a few true failures. But then 
> it will abruptly halt with the infamous
> {code:none}
> Failed to execute goal 
> org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test (default-test) on 
> project ...: ExecutionException The forked VM terminated without properly 
> saying goodbye. VM crash or System.exit called?
> {code}
> The timing is unpredictable but the build seems to usually fail this way; 
> sometimes I get lucky and it runs through all the tests, taking a number of 
> hours. Diagnosing the crash is not likely to be straightforward, and frankly 
> I do not care much—I just want Surefire to try again. Yet the 
> {{rerunFailingTestsCount}} flag does not accomplish this—it only retries 
> normal failures.
> You can see this from running the attached project. While you might expect it 
> to go through 100 runs of the test, some failing politely and some crashing, 
> instead you see something like
> {code:none}
> ...
> --- maven-surefire-plugin:2.20.1:test (default-test) @ demo ---
> -------------------------------------------------------
>  T E S T S
> -------------------------------------------------------
> Running demo.CrashingTest
> failing
> failing
> failing
> crashing
> Results:
> Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
> ------------------------------------------------------------------------
> BUILD FAILURE
> ------------------------------------------------------------------------
> Total time: 2.456 s
> Finished at: 2017-10-07T15:11:04-04:00
> Final Memory: 11M/222M
> ------------------------------------------------------------------------
> Failed to execute goal 
> org.apache.maven.plugins:maven-surefire-plugin:2.20.1:test (default-test) on 
> project demo: There are test failures.
> ...
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to