[jira] [Commented] (SUREFIRE-1433) rerunFailingTestsCount does not help with crashes

2017-10-23 Thread Jesse Glick (JIRA)

[ 
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)


[jira] [Commented] (SUREFIRE-1433) rerunFailingTestsCount does not help with crashes

2017-10-08 Thread Tibor Digana (JIRA)

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

Tibor Digana commented on SUREFIRE-1433:


You think this is normal in a test method?
{{Runtime.getRuntime().halt(99);}}
and you expect that Maven process will know if forked vm executed {{kill -9}}?
You think that parent jvm process should get any notification from child 
process killer and that this is somehow covered by Java Specification and that 
Surefire should take care?

> 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)