@Christoph
FATAL ,   WARN ,   ERROR
They are log levels?
The plugin does not control the log level after caught exception in Maven
core. The Maven Core does!
I think it's time to make a demo.

On Thu, Mar 17, 2022 at 6:21 AM Christoph Läubrich <m...@laeubi-soft.de>
wrote:

> Hi Tibor,
>
> it shouldn't be to hard to guess another property like
>
> maven.test.jvmcrash=FATAL
> maven.test.failure=WARN
> maven.test.error=ERROR
>
> :-)
>
> Am 16.03.22 um 12:25 schrieb Tibor Digana:
> > Hi Christoph,
> >
> > Such a granularity with error/failure might be also an additional
> > requirement but still you miss the third option to JVM error which is
> > different from test error/failure - they don;t have the same meaning.
> >
> > T
> >
> >
> > On Mon, Mar 14, 2022 at 10:57 AM Christoph Läubrich <m...@laeubi-soft.de
> >
> > wrote:
> >
> >> Just wondering but maybe it would be better to configure the severity
> >> instead of a true/false, something like:
> >>
> >> maven.test.failure=WARN
> >> maven.test.error=ERROR
> >>
> >> would only warn about failing tests but thrw exception if starting the
> >> test fails?
> >>
> >> Am 14.03.22 um 10:52 schrieb Tibor Digana:
> >>> Romain, it is not a bug.
> >>> Don't consider this as a bug. It was a feature request for change by
> >>> Olivier, and not a bug.
> >>> I closed both issues years ago but not because of ignorance but because
> >> the
> >>> appearance of the exceptional behavior is a wrong compromise and which
> >> does
> >>> not help anyone and even it makes the situation worse because typically
> >>> other group of users would fire a new Jira tickets. You would not be
> able
> >>> to satisfy two contradictory parties which have completely different
> >>> opinions, and so we use to introduce new params and this way we satisfy
> >>> both parties, they may combine the params as they wish, and everybody
> >> would
> >>> be happy and nobody would claim. Many technical solutions might exist,
> >> e.g.
> >>> param=boolean|string or new param=boolean, whatever.
> >>>
> >>> The truth is that this problem with (java --add-reads ...) happened in
> >> our
> >>> ASF environment on Java 8 which in good configuration would not happen
> >> and
> >>> should not.
> >>> It is not right way that we abuse "maven.test.failure.ignore" which
> would
> >>> tell us "Hey, you have illegal configuration in your build system and
> it
> >>> would not work by JDK design", it is not the goal of the plugin to tell
> >> you
> >>> that you have configured the build wrong because it won't and the same
> >>> configuration of the plugin (not the build)  says "ignore the error".
> >>> Yesterday I discussed this problem with Herve and we independently
> >> observed
> >>> equal opinions and that's not everything because we understood that the
> >>> purpose of the config parameter is to not throw MOJO exception which is
> >>> right, but the exceptional behavior should have an exact new param for
> >> the
> >>> exact use case.
> >>> SPI for this parameter is too much because no user would implement it
> >> for a
> >>> trivial parameter;; the SPI is used to be implemented by frameworks or
> >>> systems or application servers but this is not our case.
> >>>
> >>>
> >>>
> >>>
> >>> On Mon, Mar 14, 2022 at 9:11 AM Romain Manni-Bucau <
> >> rmannibu...@gmail.com>
> >>> wrote:
> >>>
> >>>> +1
> >>>> if it is to investigate a CI issue, it is generally easy to add debug
> >>>> insights (by code or agent) so a SPI sounds like the sanest for the
> >> plugin
> >>>> to me.
> >>>>
> >>>> Romain Manni-Bucau
> >>>> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> >>>> <https://rmannibucau.metawerx.net/> | Old Blog
> >>>> <http://rmannibucau.wordpress.com> | Github <
> >>>> https://github.com/rmannibucau> |
> >>>> LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
> >>>> <
> >>>>
> >>
> https://www.packtpub.com/application-development/java-ee-8-high-performance
> >>>>>
> >>>>
> >>>>
> >>>> Le lun. 14 mars 2022 à 09:08, Guillaume Nodet <gno...@apache.org> a
> >> écrit
> >>>> :
> >>>>
> >>>>> If that's not currently possible, maybe a SPI should be provided so
> >> that
> >>>>> people can use plug in extensions to analyze the test result and
> >> override
> >>>>> it if necessary (transforming an error into a warning, storing
> results
> >>>> in a
> >>>>> way which is easier to use by other tools later...) ?
> >>>>>
> >>>>> Guillaume
> >>>>>
> >>>>> Le lun. 14 mars 2022 à 07:43, Christoph Läubrich <
> m...@laeubi-soft.de>
> >> a
> >>>>> écrit :
> >>>>>
> >>>>>> I also agree that the test at least should run, we use this property
> >> to
> >>>>>> run the test and produce result and later on have a buildstep that
> >>>>>> analyze the results (and probably fail the build job).
> >>>>>>
> >>>>>> As it is not recommend, I wonder what is the recommended way to
> >> archive
> >>>>>> something similar?
> >>>>>>
> >>>>>> Am 14.03.22 um 06:29 schrieb Olivier Lamy:
> >>>>>>> On Mon, 14 Mar 2022 at 11:55, Tibor Digana <tibordig...@apache.org
> >
> >>>>>> wrote:
> >>>>>>>
> >>>>>>>> In case of the user property *maven.test.failure.ignore* the MOJO
> >>>> must
> >>>>>> not
> >>>>>>>> throw any exception which is interpreted by the Maven Core as
> BUILD
> >>>>>>>> SUCCESS.
> >>>>>>>>
> >>>>>>>
> >>>>>>> This is a very simple reduction of the problem description.
> >>>>>>> The documentation here
> >>>>>>>
> >>>>>>
> >>>>>
> >>>>
> >>
> https://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html#testFailureIgnore
> >>>>>>> says
> >>>>>>> "Set this to "true" to ignore a failure during testing. Its use is
> >>>> NOT
> >>>>>>> RECOMMENDED, but quite convenient on occasion"
> >>>>>>>
> >>>>>>> Personally, I understand this to ignore failures in junit results
> BUT
> >>>>> at
> >>>>>>> least I want the tests to run.
> >>>>>>> I guess this is how our users use this feature (feature we do not
> >>>>>> recommend
> >>>>>>> by the way...)
> >>>>>>> And this is perfectly explained here
> >>>>>>>
> >>>>>>
> >>>>>
> >>>>
> >>
> https://issues.apache.org/jira/browse/SUREFIRE-1426?focusedCommentId=16188077&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-16188077
> >>>>>>> there is a difference between ignoring some junit failures and
> >>>>> ignoring a
> >>>>>>> configuration error because some jvm args has been misconfigured
> for
> >>>>> many
> >>>>>>> reasons and surefire cannot start.
> >>>>>>>
> >>>>>>> If I follow your reasoning ("MOJO must not throw any exception ")
> we
> >>>>>> should
> >>>>>>> ignore every surefire configuration error and keep running the
> build
> >>>>>> until
> >>>>>>> the end and says BUILD SUCCESS
> >>>>>>> what about
> >>>>>>>
> >>>>>>> mvn test -Dsurefire.rerunFailingTestsCount=notanumber
> >>>>>>> -Dmaven.test.failure.ignore=true
> >>>>>>>
> >>>>>>> we should not throw any exceptions as you said below and keep
> saying
> >>>>>> BUILD
> >>>>>>> SUCCESS?
> >>>>>>> argLine is a configuration element as any others so it should fail
> >>>>>> directly
> >>>>>>> and not be ignored especially when the surefire plugin cannot run.
> >>>>>>>
> >>>>>>>
> >>>>>>>> We have received an internal requirement to change the behavior of
> >>>> the
> >>>>>> user
> >>>>>>>> property *maven.test.failure.ignore* so that the behavior will
> have
> >>>>> one
> >>>>>>>> exception.
> >>>>>>>
> >>>>>>> Suppose that you have JDK 1.8 but you use:
> >>>>>>>> /jre/java --add-reads ...
> >>>>>>>> The outcome is JVM exit with an error message.
> >>>>>>>> I agree with Herve who also says that  *maven.test.failure.ignore*
> >>>>>> should
> >>>>>>>> not allow the MOJO to throw the exception. It is not a typical JVM
> >>>>>>>> segmentation fault or another JVM crash where we cannot do
> anything
> >>>>>> about
> >>>>>>>> it, and where the entire build would crash in the command line
> which
> >>>>>>>> of course means that the build cannot normally be interpreted as
> >>>> BUILD
> >>>>>>>> SUCCESS. So we are still on the same level of failures related to
> >>>> the
> >>>>>> test
> >>>>>>>> purposes.
> >>>>>>>>
> >>>>>>>> On the other hand, Olivier has reopened the issues SUREFIRE-1426
> and
> >>>>>>>> SUREFIRE-1681 where the exceptional behavior of the feature is
> >>>>> expected.
> >>>>>>>> This is exactly the reason why I closed these tickets several
> years
> >>>>> ago
> >>>>>> and
> >>>>>>>> my proposal was to not to have any exceptions in the feature
> >>>> behavior
> >>>>>> and
> >>>>>>>> the proposal was to introduce a new user property for exact use
> >>>> cases.
> >>>>>>>> The next idea, which comes from two developers, would provide us
> >>>> with
> >>>>>> the
> >>>>>>>> same non exceptional and exact behavior of the user property
> >>>>>>>> *maven.test.failure.ignore* but it would also provide us with new
> >>>> user
> >>>>>>>> property in the case with fine grade control of the build errors,
> >>>> e.g.
> >>>>>>>> *maven.test.jvm.error.ignore*.
> >>>>>>>>
> >>>>>>>
> >>>>>>> with a default of?
> >>>>>>> honestly I just see this new parameter as introducing more
> complexity
> >>>>> in
> >>>>>> an
> >>>>>>> already very complex code and not worth it.
> >>>>>>> again read both issue's comments and my comments.
> >>>>>>> Please try to have a user POV and think about making our users'
> >>>>>> experience
> >>>>>>> more simple.
> >>>>>>>
> >>>>>>> This should be very simple:
> >>>>>>> If surefire forked jvm cannot start it's build error and cannot run
> >>>> any
> >>>>>>> tests, it's a problem users want to know immediately because it can
> >>>> be
> >>>>>> for
> >>>>>>> a lot of reasons: wrong argLine, not enough memory on the system
> >>>> etc...
> >>>>>>>
> >>>>>>> AND AGAIN it is very different from ignoring junit result failures.
> >>>>>>>
> >>>>>>> Try to look at a user point of view and think about what is the use
> >>>>> case
> >>>>>> of
> >>>>>>> the property maven.test.failure.ignore=true, I guess 99% of the
> time,
> >>>>>> users
> >>>>>>> wants to run all their tests (even on a CI with different matrix)
> so
> >>>>> they
> >>>>>>> can collect all the tests results which has runned to see if there
> is
> >>>>> any
> >>>>>>> issue for some combination of their matrix and eventually turn the
> >>>>> result
> >>>>>>> as unstable (this is a very typical use case in Jenkins and was
> even
> >>>> a
> >>>>>>> built in feature of the previous Jenkins Maven plugin)
> >>>>>>> BUT if for any reasons one of the module do not start his tests
> >>>> because
> >>>>>> the
> >>>>>>> jvm cannot be start the users will not see that and will be totally
> >>>>> blind
> >>>>>>> until maybe someone look inside a very very large log file (which
> >>>> means
> >>>>>>> probably never)
> >>>>>>>
> >>>>>>> Long story short as my experience as a user facing this
> problem/bug:
> >>>>>>> I had the case on a very large multi modules (~250 modules) build
> of
> >>>> a
> >>>>>> very
> >>>>>>> used open source project.
> >>>>>>> I was using this maven.test.failure.ignore property but one of the
> >>>>>> modules
> >>>>>>> had a bad jpms configuration for a jdk17 profile on the CI.
> >>>>>>> The build has a matrix of 2 os and 4 jdks and different maven run
> >>>> which
> >>>>>>> means around ~60k tests and a Jenkins log file about 40M
> >>>>>>> So because of this property the build was not failing and kept
> saying
> >>>>>> BUILD
> >>>>>>> SUCCESS for weeks/months and basically not testing one module with
> >>>> jdk
> >>>>>> 17...
> >>>>>>> And frankly you do not dig into a log file of 32M after each run
> >>>>>> especially
> >>>>>>> when it says success...
> >>>>>>> 3 days after the first release claiming supporting jdk 17 we
> >>>> received a
> >>>>>> bug
> >>>>>>> report about a something not working with jdk17....
> >>>>>>> and guess what? Where was this feature supposed to be tested?
> >>>>>>>
> >>>>>>> so I frankly believe we do not need a complex new property, in this
> >>>>> case
> >>>>>>> this should fail directly because this will improve user
> experience.
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> I would like to open the discussion on this topic. You're welcome!
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> Cheers
> >>>>>>>> Tibor
> >>>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>>
> ---------------------------------------------------------------------
> >>>>>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> >>>>>> For additional commands, e-mail: dev-h...@maven.apache.org
> >>>>>>
> >>>>>>
> >>>>>
> >>>>> --
> >>>>> ------------------------
> >>>>> Guillaume Nodet
> >>>>>
> >>>>
> >>>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> >> For additional commands, e-mail: dev-h...@maven.apache.org
> >>
> >>
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> For additional commands, e-mail: dev-h...@maven.apache.org
>
>

Reply via email to