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

Tibor Digana edited comment on SUREFIRE-1426 at 2/26/22, 1:39 PM:
------------------------------------------------------------------

[~olamy]
Your problem with the ASF build is that you run JPMS on JDK8 and you want to 
compromise the behavior of {{maven.test.failure.ignore}} and you want to make 
an exception so that the build would fail if you use JVM parameter which is 
unknown for the VM. This is questionary and can be discussed because always 
here can be two parties of people who may agree with you and who may disagree 
because the behavior of {{maven.test.failure.ignore}} would not be so strick as 
so far. Some people may say that VM startup error is part of the test and this 
parameter should not fail the build. Some people may see unwanted but different 
behavior on {{maven.test.failure.ignore}} if using {{forkCount=0}} for 
in-plugin execution and other when {{forkCount > 0}} and finally the resulting 
behavior would be different (bad for one party and expected by you). Some 
people may say that Maven has very similar option {{fail-never}} and the 
natural question rises up, should we have strictly NOT to fail the build on 
illegal {{argLine}} or should strictly fail the build? Another plugin Maven 
Compiler is also using forked JVM to compile sources and there the VM may fail 
which is similar situation to yours and the behavior should be similar.


was (Author: tibor17):
[~olamy]
Your problem with the ASF build is that you run JPMS on JDK8 and you want to 
compromise the behavior of {{maven.test.failure.ignore}} and you want to make 
an exception so that the build would fail if you use JVM parameter which is 
unknown for the VM. This is questionary and can be discussed because always 
here can be two parties of people who may agree with you and who may disagree 
because the behavior of {{maven.test.failure.ignore}} would not be so strick as 
so far. Some people may say that VM startup error is part of the test and this 
parameter should not fail the build. Some people may see unwanted but different 
behavior on {{maven.test.failure.ignore}} if using {{forkCount=0}} for 
in-plugin execution and other when {{forkCount > 0}} and finally the resulting 
behavior would be different. Some people may say that Maven has very similar 
option {{fail-never}} and the natural question rises up, should we have 
strictly NOT to fail the build on illegal {{argLine}} or should strictly fail 
the build? Another plugin Maven Compiler is also using forked JVM to compile 
sources and there the VM may fail which is similar situation to yours and the 
behavior should be similar.

> Fork crash doesn't fail build with -Dmaven.test.failure.ignore=true
> -------------------------------------------------------------------
>
>                 Key: SUREFIRE-1426
>                 URL: https://issues.apache.org/jira/browse/SUREFIRE-1426
>             Project: Maven Surefire
>          Issue Type: Bug
>          Components: process forking
>            Reporter: Dan Berindei
>            Assignee: Tibor Digana
>            Priority: Major
>         Attachments: surefire-1426-test.tar.gz
>
>
> We have a reactor with many modules, and also a few random test failures. We 
> want to run the tests of all the modules even if a test failed in the core 
> module, so we use {{mvn -Dmaven.test.failure.ignore=true}}. {{mvn 
> --fail-at-end}} only builds the modules that do not depend on the module with 
> a failed test.
> The problem is that fork crashes like this one are written to the surefire 
> reports, so Jenkins ignores them:
> {noformat}
> org.apache.maven.surefire.booter.SurefireBooterForkException: There was an 
> error in the forked process
> Unable to load category: stress
>       at 
> org.apache.maven.plugin.surefire.booterclient.ForkStarter.fork(ForkStarter.java:665)
>       at 
> org.apache.maven.plugin.surefire.booterclient.ForkStarter.fork(ForkStarter.java:533)
>       at 
> org.apache.maven.plugin.surefire.booterclient.ForkStarter.run(ForkStarter.java:279)
>       at 
> org.apache.maven.plugin.surefire.booterclient.ForkStarter.run(ForkStarter.java:243)
>       at 
> org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeProvider(AbstractSurefireMojo.java:1077)
>       at 
> org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAfterPreconditionsChecked(AbstractSurefireMojo.java:907)
>       at 
> org.apache.maven.plugin.surefire.AbstractSurefireMojo.execute(AbstractSurefireMojo.java:785)
>       at 
> org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
>       at 
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
>       at 
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
>       at 
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
>       at 
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
>       at 
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
>       at 
> org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
>       at 
> org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
>       at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
>       at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
>       at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
>       at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
>       at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
>       at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:498)
>       at 
> org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
>       at 
> org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
>       at 
> org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
>       at 
> org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356){noformat}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to