Uploaded image for project: 'Maven Surefire'
  1. Maven Surefire
  2. SUREFIRE-1302

Surefire does not wait long enough for the forked VM and assumes it to be dead

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.19.1
    • 2.20.1
    • Maven Surefire Plugin
    • None

    Description

      This issue happens because surefire kills the forked container if it times out waiting for the 'ping'.

      In org.apache.maven.surefire.booter.ForkedBooter class there is hardcoded constant PING_TIMEOUT_IN_SECONDS = 20 which is used in the following method:

      private static ScheduledFuture<?> listenToShutdownCommands( CommandReader reader )
          {
              reader.addShutdownListener( createExitHandler( reader ) );
              AtomicBoolean pingDone = new AtomicBoolean( true );
              reader.addNoopListener( createPingHandler( pingDone ) );
              return JVM_TERMINATOR.scheduleAtFixedRate( createPingJob( pingDone, reader ),
                                                         0,PING_TIMEOUT_IN_SECONDS, SECONDS );
          }
      

      to create ScheduledFuture.

      In some of the cases the forked container might respond a bit later than it's expected and surefire kills it

      private static Runnable createPingJob( final AtomicBoolean pingDone, final CommandReader reader  )
          {
              return new Runnable()
              {
                  public void run()
                  {
                      boolean hasPing = pingDone.getAndSet( false );
                      if ( !hasPing )
                      {
                          exit( 1, KILL, reader, true );
                      }
                  }
              };
          }
      

      As long as we need to terminate it anyway, It would be really helpful if the problem could be solved making the PING_TIMEOUT_IN_SECONDS configurable with the ability to specify the value from maven-surefire-plugin.

      It would help to configure this timeout based on needs and factors of the projects where surefire runs.

      Attachments

        1. 2017-05-18T05-48-08_685-jvmRun1.dumpstream
          351 kB
          Olivier Peyrusse
        2. surefire-gclog.log
          1.26 MB
          Olivier Peyrusse
        3. surefire-logs
          6 kB
          Olivier Peyrusse
        4. surefire-tests-terminated-master-aa9330316038f6b46316ce36ff40714ffc7cf299.zip
          5 kB
          Yuriy Zaplavnov
        5. tests_log_01.txt
          111 kB
          Yuriy Zaplavnov
        6. tests_log_02.txt
          1 kB
          Yuriy Zaplavnov

        Issue Links

          Activity

            michael-o Michael Osipov added a comment -

            You might want to consider to change the title. You are looking for an improvement as far as I can see.

            michael-o Michael Osipov added a comment - You might want to consider to change the title. You are looking for an improvement as far as I can see.

            Originally there is a situation when the process is killed and there is no any way to configure logic to make it not happen. I would consider this as defect so far.

            By the way according to the http://maven.apache.org/surefire/maven-surefire-plugin/faq.html#vm-termination there is no mention unfortunately about one more case I described above when it might fail. It actually fails and each failure means typically a Problem, therefore as far as there is no way to fix this with configuration of surefire, it could be considered as defect for the module.

            I don't think that this is an improvement, because improvement is an extension of already existing and working functionality which brings new opportunities. At this case there is a situation which leads to an incident and error and could't be resolved simply.

            xeagle Yuriy Zaplavnov added a comment - Originally there is a situation when the process is killed and there is no any way to configure logic to make it not happen. I would consider this as defect so far. By the way according to the http://maven.apache.org/surefire/maven-surefire-plugin/faq.html#vm-termination there is no mention unfortunately about one more case I described above when it might fail. It actually fails and each failure means typically a Problem, therefore as far as there is no way to fix this with configuration of surefire, it could be considered as defect for the module. I don't think that this is an improvement, because improvement is an extension of already existing and working functionality which brings new opportunities. At this case there is a situation which leads to an incident and error and could't be resolved simply.
            michael-o Michael Osipov added a comment -

            To fully understand the issue: the tests or something else in the VM takes too long and the forked VM is not able to respond because it is blocked. Surefire assumes this VM to be dead, though still alive having a valid PID?

            michael-o Michael Osipov added a comment - To fully understand the issue: the tests or something else in the VM takes too long and the forked VM is not able to respond because it is blocked. Surefire assumes this VM to be dead, though still alive having a valid PID?
            xeagle Yuriy Zaplavnov added a comment - - edited

            You understand the case correctly.

            xeagle Yuriy Zaplavnov added a comment - - edited You understand the case correctly.
            michael-o Michael Osipov added a comment - - edited

            I think your problem can be solved in two steps:

            1. Create an improvement request to make this timeout configurable. A PR with an IT would be awesome.
            2. Rename this issue to "Surefire does not wait long enough for the forked VM and assumes it to be dead" or something like that.

            This issue would require the new one to be solved, plus everything is nicely documented.

            Acceptable?

            michael-o Michael Osipov added a comment - - edited I think your problem can be solved in two steps: 1. Create an improvement request to make this timeout configurable. A PR with an IT would be awesome. 2. Rename this issue to "Surefire does not wait long enough for the forked VM and assumes it to be dead" or something like that. This issue would require the new one to be solved, plus everything is nicely documented. Acceptable?

            Thanks for your assistance! Just renamed the issue and changed the type of the issue.

            xeagle Yuriy Zaplavnov added a comment - Thanks for your assistance! Just renamed the issue and changed the type of the issue.
            michael-o Michael Osipov added a comment -

            Not exactly how I expected. This issue stays as bug. Create a new issue as improvement with the new configuration param. This will make it quite clear.

            michael-o Michael Osipov added a comment - Not exactly how I expected. This issue stays as bug. Create a new issue as improvement with the new configuration param. This will make it quite clear.
            tibordigana Tibor Digana added a comment -

            xeagle
            But this does not need PR.
            The PING is lost only if your application corrupted std/out which is used to send this command. We are detecting the Maven was killed and forked surefire jvms should be killed afterwards.
            I do not trust that the CPU is overloaded for 20 seconds so much the none of our Threads are notified.

            tibordigana Tibor Digana added a comment - xeagle But this does not need PR. The PING is lost only if your application corrupted std/out which is used to send this command. We are detecting the Maven was killed and forked surefire jvms should be killed afterwards. I do not trust that the CPU is overloaded for 20 seconds so much the none of our Threads are notified.
            tibordigana Tibor Digana added a comment -

            xeagle
            Please see this issue SUREFIRE-1222 and GitHub links there what it means when Arquillian affected the stream. The same happens with native libraries.
            Simply print the logs that master process sends PING and slave receives it with certain timestamps. This would be the first thing to make analysis unlike adding config parameter which we are yet not sure that it helps to you and many other users. We must have the proofs.

            tibordigana Tibor Digana added a comment - xeagle Please see this issue SUREFIRE-1222 and GitHub links there what it means when Arquillian affected the stream. The same happens with native libraries. Simply print the logs that master process sends PING and slave receives it with certain timestamps. This would be the first thing to make analysis unlike adding config parameter which we are yet not sure that it helps to you and many other users. We must have the proofs.
            xeagle Yuriy Zaplavnov added a comment - - edited

            tibor17
            Attached the regular logs from tests (two tests launched in forked VM). Please note that the description of log is truncated.

            xeagle Yuriy Zaplavnov added a comment - - edited tibor17 Attached the regular logs from tests (two tests launched in forked VM). Please note that the description of log is truncated.
            xeagle Yuriy Zaplavnov added a comment - - edited

            tibor17
            Attached the custom logs captured from surefire booter (recompiled the 2.19.1 version with logging, two tests launched in forked VM).

            If you compare the timestamp records from this 2nd log with the records from 1st log, you will find that process is still alive, running and logging the execution within the time interval when the pingDone variable hasn't been updated.

            In some cases randomly tests complete successfully in some cases not.

            As far as you can see there are no errors related to corrupted stream.

            Hopefully this information would help you somehow.

            xeagle Yuriy Zaplavnov added a comment - - edited tibor17 Attached the custom logs captured from surefire booter (recompiled the 2.19.1 version with logging, two tests launched in forked VM). If you compare the timestamp records from this 2nd log with the records from 1st log, you will find that process is still alive, running and logging the execution within the time interval when the pingDone variable hasn't been updated. In some cases randomly tests complete successfully in some cases not. As far as you can see there are no errors related to corrupted stream. Hopefully this information would help you somehow.
            tibordigana Tibor Digana added a comment -

            Good job!
            The report tests_log_02.txt contains two forks?
            How much time each test takes?
            Does this execution time interleave with 20 seconds period?
            Maybe the ping is stopped right after the last test has started in testset. This is currently my guess. This can be simulated with sample project running the tests with sleep(21_000L). Please try that and provide your project in Jira to reproduce it.

            tibordigana Tibor Digana added a comment - Good job! The report tests_log_02.txt contains two forks? How much time each test takes? Does this execution time interleave with 20 seconds period? Maybe the ping is stopped right after the last test has started in testset. This is currently my guess. This can be simulated with sample project running the tests with sleep(21_000L) . Please try that and provide your project in Jira to reproduce it.
            tibordigana Tibor Digana added a comment -

            xeagle
            What config of Surefire you use in this issue?It would be useful if you uploaded your project or a link in github where I can reproduce it.
            I want to release Version 2.19.2 soon.
            You can help me with that if you confirm the PING command dispatched from ForkStarter has stopped right after last test started.

            tibordigana Tibor Digana added a comment - xeagle What config of Surefire you use in this issue?It would be useful if you uploaded your project or a link in github where I can reproduce it. I want to release Version 2.19.2 soon. You can help me with that if you confirm the PING command dispatched from ForkStarter has stopped right after last test started.

            Sorry for delay, was a bit in hurry with other things, give me please some time and I will take it to prepare a project to let you reproduce it on your own.

            xeagle Yuriy Zaplavnov added a comment - Sorry for delay, was a bit in hurry with other things, give me please some time and I will take it to prepare a project to let you reproduce it on your own.
            tibordigana Tibor Digana added a comment -

            xeagle
            Can you attach a project I can reproduce?

            tibordigana Tibor Digana added a comment - xeagle Can you attach a project I can reproduce?
            xeagle Yuriy Zaplavnov added a comment - - edited

            I'm so sorry for delay with this.

            Please try to run the attached (surefire-tests-terminated-master-aa9330316038f6b46316ce36ff40714ffc7cf299.zip) project:

            mvn clean package

            It runs tests and will fail. If you modify pom.xml and change surefire-plugin version from <version>2.19.1</version> to <version>2.18.1</version> the run won't fail and will work as expected.

            Please have a look at this and let me know if you can reproduce this with this project on your side.

            xeagle Yuriy Zaplavnov added a comment - - edited I'm so sorry for delay with this. Please try to run the attached (surefire-tests-terminated-master-aa9330316038f6b46316ce36ff40714ffc7cf299.zip) project: mvn clean package It runs tests and will fail. If you modify pom.xml and change surefire-plugin version from <version>2.19.1</version> to <version>2.18.1</version> the run won't fail and will work as expected. Please have a look at this and let me know if you can reproduce this with this project on your side.

            tibor17 is the issue from recently attached project reproducible for you?

            xeagle Yuriy Zaplavnov added a comment - tibor17 is the issue from recently attached project reproducible for you?
            tibordigana Tibor Digana added a comment -

            xeagle
            I used version 2.20 and found out that forked jvm received corrupted data in stdin (java.lang.System#in).
            Some library uses stdin in your tests.

            1. Created on 2017-04-08T13:28:55.139
              [SUREFIRE] std/in stream corrupted
              java.io.IOException: Command NOOP unexpectedly read Void data with length 4.
              at org.apache.maven.surefire.booter.MasterProcessCommand.decode(MasterProcessCommand.java:130)
              at org.apache.maven.surefire.booter.CommandReader$CommandRunnable.run(CommandReader.java:386)
              at java.lang.Thread.run(Thread.java:745)
            tibordigana Tibor Digana added a comment - xeagle I used version 2.20 and found out that forked jvm received corrupted data in stdin (java.lang.System#in). Some library uses stdin in your tests. Created on 2017-04-08T13:28:55.139 [SUREFIRE] std/in stream corrupted java.io.IOException: Command NOOP unexpectedly read Void data with length 4. at org.apache.maven.surefire.booter.MasterProcessCommand.decode(MasterProcessCommand.java:130) at org.apache.maven.surefire.booter.CommandReader$CommandRunnable.run(CommandReader.java:386) at java.lang.Thread.run(Thread.java:745)

            Hello everyone,

            I'd like to add my case to the one of xeagle.

            In my case, we are developing an in-memory database for huge volume of data. Given that, it is common that we fill the JVM with a lot of objects during our tests, implying a lot of huge GCs after that. As you may know, GCs imply a stop-of-the-world at the JVM level, preventing it from sending its command expected by the ping. If the GC is too long, the VM is assumed to be dead and is killed by the ForkedBooter.
            As Yuriy, having the possibility to configure the ping period is enough to fix this issue.

            Side note: is it possible to add a log or something stating that the VM was killed by ForkedBooter since it was not responding ?

            The forked VM terminated without properly saying goodbye. VM crash or System.exit called?

            This is not really explicit. We first assumed that it was our code or in a third plugin. Directly knowing would have spare investigation hours

            Thanks and regards

            opeyrusse Olivier Peyrusse added a comment - Hello everyone, I'd like to add my case to the one of xeagle . In my case, we are developing an in-memory database for huge volume of data. Given that, it is common that we fill the JVM with a lot of objects during our tests, implying a lot of huge GCs after that. As you may know, GCs imply a stop-of-the-world at the JVM level, preventing it from sending its command expected by the ping. If the GC is too long, the VM is assumed to be dead and is killed by the ForkedBooter . As Yuriy, having the possibility to configure the ping period is enough to fix this issue. Side note: is it possible to add a log or something stating that the VM was killed by ForkedBooter since it was not responding ? The forked VM terminated without properly saying goodbye. VM crash or System.exit called? This is not really explicit. We first assumed that it was our code or in a third plugin. Directly knowing would have spare investigation hours Thanks and regards
            tibordigana Tibor Digana added a comment -

            opeyrusse
            Can you enable -verbose:gc and tell me how slow the GC is?
            Ping should be received within 20 seconds.
            Please test your project with new version 2.20 which was released yesterday.

            tibordigana Tibor Digana added a comment - opeyrusse Can you enable -verbose:gc and tell me how slow the GC is? Ping should be received within 20 seconds. Please test your project with new version 2.20 which was released yesterday.
            tibordigana Tibor Digana added a comment -

            opeyrusse
            I think we can use JMX GarbageCollectorMXBean and prolong the ping period by the delay caused by GC.

            tibordigana Tibor Digana added a comment - opeyrusse I think we can use JMX GarbageCollectorMXBean and prolong the ping period by the delay caused by GC.
            tibordigana Tibor Digana added a comment -

            opeyrusse
            Can you help us and fix this issue in class ForkedBooter?
            I am working on three other issues and we want to make release in April and support JDK9.

            tibordigana Tibor Digana added a comment - opeyrusse Can you help us and fix this issue in class ForkedBooter ? I am working on three other issues and we want to make release in April and support JDK9.

            Hello Tibor,

            I will add the option for verbose GC. As soon as we hit the issue, I will forward you the GC times.
            So far, I had a small thread logging a time at a regular pace. I saw pauses in that print around 10 secs, suggesting GCs of that duration.

            I am not at all familiar with surefire project. As Yuriy suggested, is that ok if I make the ping timeout configurable in surefire config ? If yes, where can I start to make it - just point me 1 or 2 base classes, and I will start from there. I cannot guarantee you I will have time to make the change, but I will try.

            Regards

            opeyrusse Olivier Peyrusse added a comment - Hello Tibor, I will add the option for verbose GC. As soon as we hit the issue, I will forward you the GC times. So far, I had a small thread logging a time at a regular pace. I saw pauses in that print around 10 secs, suggesting GCs of that duration. I am not at all familiar with surefire project. As Yuriy suggested, is that ok if I make the ping timeout configurable in surefire config ? If yes, where can I start to make it - just point me 1 or 2 base classes, and I will start from there. I cannot guarantee you I will have time to make the change, but I will try. Regards

            Hello Tibor,

            quick note about -verbose:gc. I did not activate that option since it triggered a lot of errors in surefire, and the results were useless.
            All GC stats are received by the CommandReader, which fails to decode them - logical since it is not supposed to be decoded.

            output:
            # Created on 2017-04-19T11:22:13.163
            Corrupted stdin stream in forked JVM 1. Stream '[GC pause (System.gc()) (young) (initial-mark) 43M->5994K(1024M), 0.0059696 secs]'.
            
            # Created on 2017-04-19T11:22:13.166
            Corrupted stdin stream in forked JVM 1. Stream '[GC concurrent-root-region-scan-start]'.
            java.lang.IllegalArgumentException: Stream stdin corrupted. Expected comma after third character in command '[GC concurrent-root-region-scan-start]'.
                    at org.apache.maven.plugin.surefire.booterclient.output.ForkClient$OperationalData.<init>(ForkClient.java:469)
                    at org.apache.maven.plugin.surefire.booterclient.output.ForkClient.processLine(ForkClient.java:191)
                    at org.apache.maven.plugin.surefire.booterclient.output.ForkClient.consumeLine(ForkClient.java:158)
                    at org.apache.maven.plugin.surefire.booterclient.output.ThreadedStreamConsumer$Pumper.run(ThreadedStreamConsumer.java:87)
                    at java.lang.Thread.run(Thread.java:745)
            
            
            # Created on 2017-04-19T11:22:13.166
            Corrupted stdin stream in forked JVM 1. Stream '[GC concurrent-root-region-scan-end, 0.0024680 secs]'.
            
            opeyrusse Olivier Peyrusse added a comment - Hello Tibor, quick note about -verbose:gc . I did not activate that option since it triggered a lot of errors in surefire, and the results were useless. All GC stats are received by the CommandReader, which fails to decode them - logical since it is not supposed to be decoded. output: # Created on 2017-04-19T11:22:13.163 Corrupted stdin stream in forked JVM 1. Stream '[GC pause (System.gc()) (young) (initial-mark) 43M->5994K(1024M), 0.0059696 secs]'. # Created on 2017-04-19T11:22:13.166 Corrupted stdin stream in forked JVM 1. Stream '[GC concurrent-root-region-scan-start]'. java.lang.IllegalArgumentException: Stream stdin corrupted. Expected comma after third character in command '[GC concurrent-root-region-scan-start]'. at org.apache.maven.plugin.surefire.booterclient.output.ForkClient$OperationalData.<init>(ForkClient.java:469) at org.apache.maven.plugin.surefire.booterclient.output.ForkClient.processLine(ForkClient.java:191) at org.apache.maven.plugin.surefire.booterclient.output.ForkClient.consumeLine(ForkClient.java:158) at org.apache.maven.plugin.surefire.booterclient.output.ThreadedStreamConsumer$Pumper.run(ThreadedStreamConsumer.java:87) at java.lang.Thread.run(Thread.java:745) # Created on 2017-04-19T11:22:13.166 Corrupted stdin stream in forked JVM 1. Stream '[GC concurrent-root-region-scan-end, 0.0024680 secs]'.
            tibordigana Tibor Digana added a comment -

            Hi Olivier,

            I think configurable ping timeout may not necessarily save our soul.
            If you think in terms of accuracy of timers in Maven process and forked
            jvm, and GC this would lead to pretty long timeour, e.g. 30 or 60 seconds.
            The Jenkins scheduler is faster, cca 5 sec and git clone is fast as well.
            If we could synchronize both timers, we would do much better job. Include
            JMX which would prolong the period checking by GC period when Maven process
            is supposed to be idle or dead.

            My problem with adding configuration parameter is a conflict with Version
            3.0.
            In 3.0 w have an ambition to customize the parameters with a programmatic
            extension per parameter.
            Add more and more parameters would delay 3.0 release and means having
            unhappy users.
            Version 3.0 has this ambition of extensions, requested by user group,
            compatibility with Maven 3.0.x and JUnit 5 provider.
            All of these are in progress in our branches.

            Our PING code is simple. It is located in ForkedBooter.java.
            There are two timers. Our ping timer has fixed rate scheduler. This timer
            has period of 20 seconds. I think we can make much better code if we try to
            synchronize Maven process ping with forked JVM at rate of 1 second. The
            timer should be tolerant to GC pauses.
            What is the location of long GC pauses? Is it forked JVM or Maven process?
            If it is Maven process then I am afraid we cannot do anything about it.
            If it is forked JVM, killing jvm itself is up to ForkedBooter running in
            forked jvm and the code can be tolerant.
            What happens if we have e.g. 1 second timer and GC pauses also this timer?
            Would it invoke all elapsed events right after the GC has finished? We
            should write the last tick of timer and counter of GC and retrieve delay
            from JMX if counter has been incremented. I would say the period of 20
            seconds of idle status should be prolonged internally and counting the
            period restarted after PING has been received from Maven process which is
            the synchronization.

            On Wed, Apr 19, 2017 at 10:46 AM, Olivier Peyrusse (JIRA) <jira@apache.org>

            tibordigana Tibor Digana added a comment - Hi Olivier, I think configurable ping timeout may not necessarily save our soul. If you think in terms of accuracy of timers in Maven process and forked jvm, and GC this would lead to pretty long timeour, e.g. 30 or 60 seconds. The Jenkins scheduler is faster, cca 5 sec and git clone is fast as well. If we could synchronize both timers, we would do much better job. Include JMX which would prolong the period checking by GC period when Maven process is supposed to be idle or dead. My problem with adding configuration parameter is a conflict with Version 3.0. In 3.0 w have an ambition to customize the parameters with a programmatic extension per parameter. Add more and more parameters would delay 3.0 release and means having unhappy users. Version 3.0 has this ambition of extensions, requested by user group, compatibility with Maven 3.0.x and JUnit 5 provider. All of these are in progress in our branches. Our PING code is simple. It is located in ForkedBooter.java. There are two timers. Our ping timer has fixed rate scheduler. This timer has period of 20 seconds. I think we can make much better code if we try to synchronize Maven process ping with forked JVM at rate of 1 second. The timer should be tolerant to GC pauses. What is the location of long GC pauses? Is it forked JVM or Maven process? If it is Maven process then I am afraid we cannot do anything about it. If it is forked JVM, killing jvm itself is up to ForkedBooter running in forked jvm and the code can be tolerant. What happens if we have e.g. 1 second timer and GC pauses also this timer? Would it invoke all elapsed events right after the GC has finished? We should write the last tick of timer and counter of GC and retrieve delay from JMX if counter has been incremented. I would say the period of 20 seconds of idle status should be prolonged internally and counting the period restarted after PING has been received from Maven process which is the synchronization. On Wed, Apr 19, 2017 at 10:46 AM, Olivier Peyrusse (JIRA) <jira@apache.org>
            tibordigana Tibor Digana added a comment -

            opeyrusse
            Sooner or later we will use sockets and not these standard output and input streams.
            We have to provide the users with fallback.
            Then this dump file would not contain GC logs because it will be found in target/surefire-reports/TEST-null.txt.

            tibordigana Tibor Digana added a comment - opeyrusse Sooner or later we will use sockets and not these standard output and input streams. We have to provide the users with fallback. Then this dump file would not contain GC logs because it will be found in target/surefire-reports/TEST-null.txt .
            tibordigana Tibor Digana added a comment -

            xeagle
            opeyrusse
            Please let me know if you still have this issue with new version 2.20 of Surefire.
            If you could measure the GC pauses via -verbose:gc I would really appreciate your help. Thx.

            tibordigana Tibor Digana added a comment - xeagle opeyrusse Please let me know if you still have this issue with new version 2.20 of Surefire. If you could measure the GC pauses via -verbose:gc I would really appreciate your help. Thx.

            Hello tibor17,

            I will surely won't have time to code something for Surefire, but I will try again to run my failing test with version 2.20.
            Sorry that I did not understand correctly your previous comment. I though you meant that in a future version, the GC logs would be in TEST-null.txt.

            I post the logs as soon as I got them.

            Regards

            opeyrusse Olivier Peyrusse added a comment - Hello tibor17 , I will surely won't have time to code something for Surefire, but I will try again to run my failing test with version 2.20 . Sorry that I did not understand correctly your previous comment. I though you meant that in a future version, the GC logs would be in TEST-null.txt. I post the logs as soon as I got them. Regards
            tibordigana Tibor Digana added a comment -

            Are you open for testing SNAPSHOT version in several days?

            I though you meant that in a future version, the GC logs would be in
            TEST-null.txt.

            I am not able to distinguish between GC logs and other. Writing to native
            System stream std/out is a corruption from our point of view. We did
            everything to bypass this when we call System.setOut() in Surefire. We
            override default PrintStream, wrap your custom logs, encode controlling
            data in to it. If JVM or user writes to native stream the plugin may behave
            wrong and hang which is in our evidence that we have blocker and critical
            issues in Jira. So from my point of view this is user error. In the future
            we want to avoid this completely by using sockets and not this mechanism.

            On Tue, May 9, 2017 at 9:31 AM, Olivier Peyrusse (JIRA) <jira@apache.org>

            tibordigana Tibor Digana added a comment - Are you open for testing SNAPSHOT version in several days? I though you meant that in a future version, the GC logs would be in TEST-null.txt. I am not able to distinguish between GC logs and other. Writing to native System stream std/out is a corruption from our point of view. We did everything to bypass this when we call System.setOut() in Surefire. We override default PrintStream, wrap your custom logs, encode controlling data in to it. If JVM or user writes to native stream the plugin may behave wrong and hang which is in our evidence that we have blocker and critical issues in Jira. So from my point of view this is user error. In the future we want to avoid this completely by using sockets and not this mechanism. On Tue, May 9, 2017 at 9:31 AM, Olivier Peyrusse (JIRA) <jira@apache.org>

            Yes, why not. It is not easy to reproduce our issue because we must trigger a huge GC at the right time. But, yes, I am willing.
            What should I expect in the snapshot ?

            opeyrusse Olivier Peyrusse added a comment - Yes, why not. It is not easy to reproduce our issue because we must trigger a huge GC at the right time. But, yes, I am willing. What should I expect in the snapshot ?
            tibordigana Tibor Digana added a comment -

            I plan to send PING from Maven process every second. This would be better
            synchronization.
            The measurements show me that Full GC is determined my the amount of
            committed memory.
            If it is <= 512 MB the pause takes 1.2 second. Huge amount 4GB takes over
            12 seconds to Full GC.
            I would like to kill JVM after 10 seconds of idle PING if Xmx is <= 512m.
            Otherwise 20 seconds.
            If this is not satisfying our needs, we have to configure it via a new
            configuration parameter.

            If you are facing better algorithm, let me know.

            On Tue, May 9, 2017 at 10:34 AM, Olivier Peyrusse (JIRA) <jira@apache.org>

            tibordigana Tibor Digana added a comment - I plan to send PING from Maven process every second. This would be better synchronization. The measurements show me that Full GC is determined my the amount of committed memory. If it is <= 512 MB the pause takes 1.2 second. Huge amount 4GB takes over 12 seconds to Full GC. I would like to kill JVM after 10 seconds of idle PING if Xmx is <= 512m. Otherwise 20 seconds. If this is not satisfying our needs, we have to configure it via a new configuration parameter. If you are facing better algorithm, let me know. On Tue, May 9, 2017 at 10:34 AM, Olivier Peyrusse (JIRA) <jira@apache.org>

            Seems good to me. Since you let a way to change that value, it should meet all needs.
            You may consider increasing the time limit to 30s, or even a minute. As this is a safe guard and the machine is not supposed to die, we could wait a longer time to detect that issue. With such an increased timeout, you will likely avoid suffering from long GCs.

            opeyrusse Olivier Peyrusse added a comment - Seems good to me. Since you let a way to change that value, it should meet all needs. You may consider increasing the time limit to 30s, or even a minute. As this is a safe guard and the machine is not supposed to die, we could wait a longer time to detect that issue. With such an increased timeout, you will likely avoid suffering from long GCs.
            tibordigana Tibor Digana added a comment -

            opeyrusse
            Can you pls build SUREFIRE-1302 branch mvn -DskipTests install and test it with your project?
            I will override the branch and add parameter soon and then I want to change the documentation.
            Yet the ping timeout is adaptive.
            Adding parameter takes time because several classes and reflection has to be changed.

            https://git-wip-us.apache.org/repos/asf?p=maven-surefire.git;a=shortlog;h=refs/heads/SUREFIRE-1302

            tibordigana Tibor Digana added a comment - opeyrusse Can you pls build SUREFIRE-1302 branch mvn -DskipTests install and test it with your project? I will override the branch and add parameter soon and then I want to change the documentation. Yet the ping timeout is adaptive. Adding parameter takes time because several classes and reflection has to be changed. https://git-wip-us.apache.org/repos/asf?p=maven-surefire.git;a=shortlog;h=refs/heads/SUREFIRE-1302

            Hello Tibor,

            new surefire built and I am starting the tests. Although, it is hard to reproduce ...

            opeyrusse Olivier Peyrusse added a comment - Hello Tibor, new surefire built and I am starting the tests. Although, it is hard to reproduce ...

            Hello Tibor,

            I did not manage to reproduce the issue on my machine. I am trying on a bigger one.

            opeyrusse Olivier Peyrusse added a comment - Hello Tibor, I did not manage to reproduce the issue on my machine. I am trying on a bigger one.

            Hello Tibor,

            running surefire 2.21-SNAPSHOT, I got once again the VM shutdown. I attached to the issue the maven logs. My personal logs seems to show that a small thread supposed to print a message every 250 ms was not scheduled during 12s.
            GC logs available as error in jvmRun1 show that a pause of ~12s, confirming my diagnostic.

            1. Created on 2017-05-18T05:50:30.395
              Corrupted stdin stream in forked JVM 1. Stream '[GC pause (G1 Evacuation Pause) (young)-- 888M->820M(1024M), 11.8820911 secs]'.

            So the current adaptive ping seems not to be enough. Tell me if you want me to test something else.

            Best regards

            opeyrusse Olivier Peyrusse added a comment - Hello Tibor, running surefire 2.21-SNAPSHOT, I got once again the VM shutdown. I attached to the issue the maven logs. My personal logs seems to show that a small thread supposed to print a message every 250 ms was not scheduled during 12s. GC logs available as error in jvmRun1 show that a pause of ~12s, confirming my diagnostic. Created on 2017-05-18T05:50:30.395 Corrupted stdin stream in forked JVM 1. Stream ' [GC pause (G1 Evacuation Pause) (young)-- 888M->820M(1024M), 11.8820911 secs] '. So the current adaptive ping seems not to be enough. Tell me if you want me to test something else. Best regards
            tibordigana Tibor Digana added a comment - - edited

            opeyrusse
            I guess this is 1GB of committed memory: 888M->820M(1024M)
            According to my equation 1GB should be 17 seconds. But 12 is less than 17. So the ping should be tolerant.
            Could you please print a log in the ping thread? It should print a message every second.
            In other words the ping of 10 seconds should turn to 17 seconds when committed memory is 1 GB.
            Debugging the code would be hard but putting more logs, according to your preference, may help.

            tibordigana Tibor Digana added a comment - - edited opeyrusse I guess this is 1GB of committed memory: 888M->820M(1024M) According to my equation 1GB should be 17 seconds. But 12 is less than 17. So the ping should be tolerant. Could you please print a log in the ping thread? It should print a message every second. In other words the ping of 10 seconds should turn to 17 seconds when committed memory is 1 GB. Debugging the code would be hard but putting more logs, according to your preference, may help.

            Hello tibor17,
            I will try adding more details about the logs and printing the ping times.
            However, I am still not confortable with your heuristics as it depends a lot on the GC configuration, the size of your eden, survivor and old gen spaces, because when your memory starts to be full, it will take much more time to find some space in the heap.
            I remain on my position that we should make the timer waits for 1 minute without a ping, and then kill the machine, as we are dealing with tests here, not a real-time application with needs for fast-recovery.

            Best regards

            opeyrusse Olivier Peyrusse added a comment - Hello tibor17 , I will try adding more details about the logs and printing the ping times. However, I am still not confortable with your heuristics as it depends a lot on the GC configuration, the size of your eden, survivor and old gen spaces, because when your memory starts to be full, it will take much more time to find some space in the heap. I remain on my position that we should make the timer waits for 1 minute without a ping, and then kill the machine, as we are dealing with tests here, not a real-time application with needs for fast-recovery. Best regards

            Hello again,

            I attached a new file with more details about G1GC run. But still, as soon as we face a GC of more than 13s, the ping fails.
            I tried to print the timing of the ping, but it was apparently swallowed so I can't give them to you.
            And I don't see what could go wrong.

            opeyrusse Olivier Peyrusse added a comment - Hello again, I attached a new file with more details about G1GC run. But still, as soon as we face a GC of more than 13s, the ping fails. I tried to print the timing of the ping, but it was apparently swallowed so I can't give them to you. And I don't see what could go wrong.
            tibordigana Tibor Digana added a comment - - edited

            opeyrusse
            xeagle
            I found the problem but since the Maven process can run modules in parallel e.g. -T 2C then considering GC may complicate everything. I would rather observe PPID and check if the process is alive every second.

            tibordigana Tibor Digana added a comment - - edited opeyrusse xeagle I found the problem but since the Maven process can run modules in parallel e.g. -T 2C then considering GC may complicate everything. I would rather observe PPID and check if the process is alive every second.

            Good job tibor17. Looking at PPID sounds good to me.
            Tell me if you want me to run some tests.

            opeyrusse Olivier Peyrusse added a comment - Good job tibor17 . Looking at PPID sounds good to me. Tell me if you want me to run some tests.
            elecharny Emmanuel Lécharny added a comment - - edited

            Hi guys,

            I think I'm stuck with a similar pb in the Apache Directory LDAP API project : trying to cut a release ends up with this error :

            [INFO] [SUREFIRE] std/in stream corrupted
            [INFO] java.io.IOException: Command NOOP unexpectedly read Void data with length 4.
            [INFO] 	at org.apache.maven.surefire.booter.MasterProcessCommand.decode(MasterProcessCommand.java:139)
            [INFO] 	at org.apache.maven.surefire.booter.CommandReader$CommandRunnable.run(CommandReader.java:360)
            [INFO] 	at java.lang.Thread.run(Thread.java:745)
            ...
            [INFO] [ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test (default-test) on project api-integ-osgi: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test failed: The forked VM terminated without properly saying goodbye. VM crash or System.exit called?
            [INFO] [ERROR] Command was /bin/sh -c cd /Users/elecharny/apacheds/trunks/shared/target/checkout/integ-osgi && /Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/bin/java -Xmx1024m -jar /Users/elecharny/apacheds/trunks/shared/target/checkout/integ-osgi/target/surefire/surefirebooter3370697464825684132.jar /Users/elecharny/apacheds/trunks/shared/target/checkout/integ-osgi/target/surefire/surefire2251022129393537760tmp /Users/elecharny/apacheds/trunks/shared/target/checkout/integ-osgi/target/surefire/surefire_158862987326254246739tmp
            heds/trunks/shared/target/checkout/integ-osgi/target/surefire/surefirebooter3370697464825684132.jar /Users/elecharny/apacheds/trunks/shared/target/checkout/integ-osgi/target/surefire/surefire2251022129393537760tmp /Users/elecharny/apacheds/trunks/shared/target/checkout/integ-osgi/target/surefire/surefire_158862987326254246739tmp
            

            The weird thing is that the exact same test work perfectly well when I run mvn test in the module, or when I do a release dry-run or a release prepare, it's really when I do the mvn release:perform that it fails.

            The test itself can take a bit of time. Here is the output, for instance :

            [INFO] -------------------------------------------------------
            [INFO]  T E S T S
            [INFO] -------------------------------------------------------
            [INFO] Running org.apache.directory.api.osgi.ApiAsn1ApiOsgiTest
            [INFO] 
            [INFO] 
            [INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.375 sec - in org.apache.directory.api.osgi.ApiAsn1ApiOsgiTest
            [INFO] Running org.apache.directory.api.osgi.ApiAsn1BerOsgiTest
            [INFO] 
            [INFO] 
            [INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.303 sec - in org.apache.directory.api.osgi.ApiAsn1BerOsgiTest
            [INFO] Running org.apache.directory.api.osgi.ApiDsmlEngineOsgiTest
            [INFO] 
            [INFO] 
            [INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.44 sec - in org.apache.directory.api.osgi.ApiDsmlEngineOsgiTest
            [INFO] Running org.apache.directory.api.osgi.ApiDsmlParserOsgiTest
            [INFO] 
            [INFO] 
            [INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.185 sec - in org.apache.directory.api.osgi.ApiDsmlParserOsgiTest
            [INFO] Running org.apache.directory.api.osgi.ApiI18nOsgiTest
            [INFO] 
            [INFO] 
            [INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.237 sec - in org.apache.directory.api.osgi.ApiI18nOsgiTest
            [INFO] Running org.apache.directory.api.osgi.ApiLdapClientApiOsgiTest
            [INFO] 
            [INFO] 
            [INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.315 sec - in org.apache.directory.api.osgi.ApiLdapClientApiOsgiTest
            [INFO] Running org.apache.directory.api.osgi.ApiLdapCodecCoreOsgiTest
            [INFO] 
            [INFO] 
            [INFO] Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.224 sec - in org.apache.directory.api.osgi.ApiLdapCodecCoreOsgiTest
            [INFO] Running org.apache.directory.api.osgi.ApiLdapExtrasAciOsgiTest
            [INFO] 
            [INFO] 
            [INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.19 sec - in org.apache.directory.api.osgi.ApiLdapExtrasAciOsgiTest
            [INFO] Running org.apache.directory.api.osgi.ApiLdapExtrasCodecApiOsgiTest
            [INFO] 
            [INFO] 
            [INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.154 sec - in org.apache.directory.api.osgi.ApiLdapExtrasCodecApiOsgiTest
            [INFO] Running org.apache.directory.api.osgi.ApiLdapExtrasCodecOsgiTest
            [INFO] 
            [INFO] 
            [INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.193 sec - in org.apache.directory.api.osgi.ApiLdapExtrasCodecOsgiTest
            [INFO] Running org.apache.directory.api.osgi.ApiLdapExtrasSpOsgiTest
            [INFO] 
            [INFO] 
            [INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.094 sec - in org.apache.directory.api.osgi.ApiLdapExtrasSpOsgiTest
            [INFO] Running org.apache.directory.api.osgi.ApiLdapExtrasTriggerOsgiTest
            [INFO] 
            [INFO] 
            [INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.164 sec - in org.apache.directory.api.osgi.ApiLdapExtrasTriggerOsgiTest
            [INFO] Running org.apache.directory.api.osgi.ApiLdapExtrasUtilOsgiTest
            [INFO] 
            [INFO] 
            [INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.12 sec - in org.apache.directory.api.osgi.ApiLdapExtrasUtilOsgiTest
            [INFO] Running org.apache.directory.api.osgi.ApiLdapModelOsgiTest
            [INFO] 
            [INFO] 
            [INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.275 sec - in org.apache.directory.api.osgi.ApiLdapModelOsgiTest
            [INFO] Running org.apache.directory.api.osgi.ApiLdapNetMinaOsgiTest
            [INFO] 
            [INFO] 
            [INFO] Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.119 sec - in org.apache.directory.api.osgi.ApiLdapNetMinaOsgiTest
            [INFO] Running org.apache.directory.api.osgi.ApiLdapSchemaConverterOsgiTest
            [INFO] 
            [INFO] [SUREFIRE] std/in stream corrupted
            ...
            

            The cumulative time is just below 20s (19.938 exactly), but is more than 20 s when counting the surrounding tasks :

            [INFO] [INFO] Apache Directory API OSGi Integration Tests ........ FAILURE [ 21.710 s]
            

            The same test ran in isolation also take longer, but I guess there are some extra checks done when running a mvn release:perform...

            Is there an expected date for a release that I can test, or even a SNAPSHOT ?

            Many thanks !

            Forgot to mention that I'm using surefire 2.18.1

            elecharny Emmanuel Lécharny added a comment - - edited Hi guys, I think I'm stuck with a similar pb in the Apache Directory LDAP API project : trying to cut a release ends up with this error : [INFO] [SUREFIRE] std/in stream corrupted [INFO] java.io.IOException: Command NOOP unexpectedly read Void data with length 4. [INFO] at org.apache.maven.surefire.booter.MasterProcessCommand.decode(MasterProcessCommand.java:139) [INFO] at org.apache.maven.surefire.booter.CommandReader$CommandRunnable.run(CommandReader.java:360) [INFO] at java.lang.Thread.run(Thread.java:745) ... [INFO] [ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test (default-test) on project api-integ-osgi: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test failed: The forked VM terminated without properly saying goodbye. VM crash or System.exit called? [INFO] [ERROR] Command was /bin/sh -c cd /Users/elecharny/apacheds/trunks/shared/target/checkout/integ-osgi && /Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/bin/java -Xmx1024m -jar /Users/elecharny/apacheds/trunks/shared/target/checkout/integ-osgi/target/surefire/surefirebooter3370697464825684132.jar /Users/elecharny/apacheds/trunks/shared/target/checkout/integ-osgi/target/surefire/surefire2251022129393537760tmp /Users/elecharny/apacheds/trunks/shared/target/checkout/integ-osgi/target/surefire/surefire_158862987326254246739tmp heds/trunks/shared/target/checkout/integ-osgi/target/surefire/surefirebooter3370697464825684132.jar /Users/elecharny/apacheds/trunks/shared/target/checkout/integ-osgi/target/surefire/surefire2251022129393537760tmp /Users/elecharny/apacheds/trunks/shared/target/checkout/integ-osgi/target/surefire/surefire_158862987326254246739tmp The weird thing is that the exact same test work perfectly well when I run mvn test in the module, or when I do a release dry-run or a release prepare, it's really when I do the mvn release:perform that it fails. The test itself can take a bit of time. Here is the output, for instance : [INFO] ------------------------------------------------------- [INFO] T E S T S [INFO] ------------------------------------------------------- [INFO] Running org.apache.directory.api.osgi.ApiAsn1ApiOsgiTest [INFO] [INFO] [INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.375 sec - in org.apache.directory.api.osgi.ApiAsn1ApiOsgiTest [INFO] Running org.apache.directory.api.osgi.ApiAsn1BerOsgiTest [INFO] [INFO] [INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.303 sec - in org.apache.directory.api.osgi.ApiAsn1BerOsgiTest [INFO] Running org.apache.directory.api.osgi.ApiDsmlEngineOsgiTest [INFO] [INFO] [INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.44 sec - in org.apache.directory.api.osgi.ApiDsmlEngineOsgiTest [INFO] Running org.apache.directory.api.osgi.ApiDsmlParserOsgiTest [INFO] [INFO] [INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.185 sec - in org.apache.directory.api.osgi.ApiDsmlParserOsgiTest [INFO] Running org.apache.directory.api.osgi.ApiI18nOsgiTest [INFO] [INFO] [INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.237 sec - in org.apache.directory.api.osgi.ApiI18nOsgiTest [INFO] Running org.apache.directory.api.osgi.ApiLdapClientApiOsgiTest [INFO] [INFO] [INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.315 sec - in org.apache.directory.api.osgi.ApiLdapClientApiOsgiTest [INFO] Running org.apache.directory.api.osgi.ApiLdapCodecCoreOsgiTest [INFO] [INFO] [INFO] Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.224 sec - in org.apache.directory.api.osgi.ApiLdapCodecCoreOsgiTest [INFO] Running org.apache.directory.api.osgi.ApiLdapExtrasAciOsgiTest [INFO] [INFO] [INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.19 sec - in org.apache.directory.api.osgi.ApiLdapExtrasAciOsgiTest [INFO] Running org.apache.directory.api.osgi.ApiLdapExtrasCodecApiOsgiTest [INFO] [INFO] [INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.154 sec - in org.apache.directory.api.osgi.ApiLdapExtrasCodecApiOsgiTest [INFO] Running org.apache.directory.api.osgi.ApiLdapExtrasCodecOsgiTest [INFO] [INFO] [INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.193 sec - in org.apache.directory.api.osgi.ApiLdapExtrasCodecOsgiTest [INFO] Running org.apache.directory.api.osgi.ApiLdapExtrasSpOsgiTest [INFO] [INFO] [INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.094 sec - in org.apache.directory.api.osgi.ApiLdapExtrasSpOsgiTest [INFO] Running org.apache.directory.api.osgi.ApiLdapExtrasTriggerOsgiTest [INFO] [INFO] [INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.164 sec - in org.apache.directory.api.osgi.ApiLdapExtrasTriggerOsgiTest [INFO] Running org.apache.directory.api.osgi.ApiLdapExtrasUtilOsgiTest [INFO] [INFO] [INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.12 sec - in org.apache.directory.api.osgi.ApiLdapExtrasUtilOsgiTest [INFO] Running org.apache.directory.api.osgi.ApiLdapModelOsgiTest [INFO] [INFO] [INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.275 sec - in org.apache.directory.api.osgi.ApiLdapModelOsgiTest [INFO] Running org.apache.directory.api.osgi.ApiLdapNetMinaOsgiTest [INFO] [INFO] [INFO] Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.119 sec - in org.apache.directory.api.osgi.ApiLdapNetMinaOsgiTest [INFO] Running org.apache.directory.api.osgi.ApiLdapSchemaConverterOsgiTest [INFO] [INFO] [SUREFIRE] std/in stream corrupted ... The cumulative time is just below 20s (19.938 exactly), but is more than 20 s when counting the surrounding tasks : [INFO] [INFO] Apache Directory API OSGi Integration Tests ........ FAILURE [ 21.710 s] The same test ran in isolation also take longer, but I guess there are some extra checks done when running a mvn release:perform ... Is there an expected date for a release that I can test, or even a SNAPSHOT ? Many thanks ! Forgot to mention that I'm using surefire 2.18.1
            tibordigana Tibor Digana added a comment - - edited

            elecharny
            Your problem refers to another issue SUREFIRE-1374.
            We do not understand the root cause yet.

            tibordigana Tibor Digana added a comment - - edited elecharny Your problem refers to another issue SUREFIRE-1374 . We do not understand the root cause yet.
            tibordigana Tibor Digana added a comment -

            elecharny
            When you open logs from every test, e.g. surefire-reports, do you see that every test method went through?
            I think the JVM sends 0x04 by ASCII when terminating, End of Transmission.
            Please do not use version 2.18.1.
            I removed the call CommandReader#stop() in 2.20 when JVM is going to finish in ForkedBooter.
            Please confirm that version 2.19.1 works.
            I found that stopping reader thread is useless due to JVM stops it on exit but I could not imaging the stream would be corrupted this way. The change was done in da7ff6aa25a72094705c24981afbf8294ac4b1dc on 28.03.2017.

            tibordigana Tibor Digana added a comment - elecharny When you open logs from every test, e.g. surefire-reports , do you see that every test method went through? I think the JVM sends 0x04 by ASCII when terminating, End of Transmission . Please do not use version 2.18.1 . I removed the call CommandReader#stop() in 2.20 when JVM is going to finish in ForkedBooter . Please confirm that version 2.19.1 works. I found that stopping reader thread is useless due to JVM stops it on exit but I could not imaging the stream would be corrupted this way. The change was done in da7ff6aa25a72094705c24981afbf8294ac4b1dc on 28.03.2017.

            Thanks Tibor !

            I'll give 2.19.1 a try today (it might take some time because I would need to bump up a sub-project, and it requires a 4h notice to the team).

            Sadly, I don't have anymore the reports, because I ran the tests in isolation after the failure, but I'll have them back as soon as I will have run the release again.

            The process is a bit messy because it's a release, and it takes a while (around 40 ins) to run and require quite a lot of manual interaction if it fails (remove the svn tag, rollback the release, and re-run it with all the uploads - not to mention I'm in vacatio with my young kid and wife, so....

            I'll keep you posted.

            elecharny Emmanuel Lécharny added a comment - Thanks Tibor ! I'll give 2.19.1 a try today (it might take some time because I would need to bump up a sub-project, and it requires a 4h notice to the team). Sadly, I don't have anymore the reports, because I ran the tests in isolation after the failure, but I'll have them back as soon as I will have run the release again. The process is a bit messy because it's a release, and it takes a while (around 40 ins) to run and require quite a lot of manual interaction if it fails (remove the svn tag, rollback the release, and re-run it with all the uploads - not to mention I'm in vacatio with my young kid and wife, so.... I'll keep you posted.

            Same pb with 2.19.1.
            All the tests went through without error :

            [INFO] Results :
            [INFO] 
            [INFO] Tests run: 50, Failures: 0, Errors: 0, Skipped: 0
            [INFO] 
            

            Same thing in the surefire-reports.

            elecharny Emmanuel Lécharny added a comment - Same pb with 2.19.1. All the tests went through without error : [INFO] Results : [INFO] [INFO] Tests run: 50, Failures: 0, Errors: 0, Skipped: 0 [INFO] Same thing in the surefire-reports.

            Hi Tibor,

            you are right, this is more likely to be related to SUREFIRE-1374. However, I do think it's also time related (the 20 s it takes to run the module). OTOH, it only fails when cutting a release, so there must be something else...

            elecharny Emmanuel Lécharny added a comment - Hi Tibor, you are right, this is more likely to be related to SUREFIRE-1374 . However, I do think it's also time related (the 20 s it takes to run the module). OTOH, it only fails when cutting a release, so there must be something else...
            tibordigana Tibor Digana added a comment -

            elecharny
            I have pushed a fix, please see my comment in SUREFIRE-1374. Thx.

            tibordigana Tibor Digana added a comment - elecharny I have pushed a fix, please see my comment in SUREFIRE-1374 . Thx.
            tibordigana Tibor Digana added a comment -

            elecharny
            opeyrusse
            xeagle
            michael-o
            I have pushed a branch.
            https://git-wip-us.apache.org/repos/asf?p=maven-surefire.git;a=shortlog;h=refs/heads/SUREFIRE-1302_2
            Pls put your comments in the code if you want to change something.
            It is only a prototype. The class PpdiChecker will recognize etime of PPID. If it is longer or the same like uptime of current PID, the parent process is still alive. This way the the fork JVM does not need to have any timeout like PING. If the commands throw exception or another than Unix/Windows platform, we fallback to the old mechanism.
            I want to split version 2.20.1, release it on Friday and include this issue. Other big issues like JDK 9 should go to 2.20.2.

            tibordigana Tibor Digana added a comment - elecharny opeyrusse xeagle michael-o I have pushed a branch. https://git-wip-us.apache.org/repos/asf?p=maven-surefire.git;a=shortlog;h=refs/heads/SUREFIRE-1302_2 Pls put your comments in the code if you want to change something. It is only a prototype. The class PpdiChecker will recognize etime of PPID. If it is longer or the same like uptime of current PID, the parent process is still alive. This way the the fork JVM does not need to have any timeout like PING. If the commands throw exception or another than Unix/Windows platform, we fallback to the old mechanism. I want to split version 2.20.1, release it on Friday and include this issue. Other big issues like JDK 9 should go to 2.20.2.
            tibordigana Tibor Digana added a comment - https://git1-us-west.apache.org/repos/asf?p=maven-surefire.git;a=commit;h=c343cc412b986fd9da839696c709542d03679d68
            hudson Hudson added a comment -

            UNSTABLE: Integrated in Jenkins build maven-surefire #1717 (See https://builds.apache.org/job/maven-surefire/1717/)
            SUREFIRE-1302 Surefire does not wait long enough for the forked VM and (tibor17: http://git-wip-us.apache.org/repos/asf/?p=maven-surefire.git&a=commit&h=c343cc412b986fd9da839696c709542d03679d68)

            • (edit) surefire-booter/src/test/java/org/apache/maven/surefire/booter/JUnit4SuiteTest.java
            • (edit) surefire-booter/pom.xml
            • (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/FileReporterUtils.java
            • (edit) maven-surefire-report-plugin/pom.xml
            • (edit) maven-surefire-common/pom.xml
            • (edit) maven-surefire-plugin/pom.xml
            • (add) surefire-booter/src/main/java/org/apache/maven/surefire/booter/ProcessInfo.java
            • (edit) maven-failsafe-plugin/pom.xml
            • (add) surefire-booter/src/main/java/org/apache/maven/surefire/booter/PpidChecker.java
            • (add) surefire-booter/src/test/java/org/apache/maven/surefire/booter/PpidCheckerTest.java
            • (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java
            • (edit) surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/jiras/Surefire1295AttributeJvmCrashesToTestsIT.java
            • (edit) maven-surefire-plugin/src/site/apt/examples/shutdown.apt.vm
            • (edit) surefire-api/pom.xml
            • (edit) surefire-api/src/main/java/org/apache/maven/surefire/booter/CommandReader.java
            • (edit) pom.xml
            hudson Hudson added a comment - UNSTABLE: Integrated in Jenkins build maven-surefire #1717 (See https://builds.apache.org/job/maven-surefire/1717/ ) SUREFIRE-1302 Surefire does not wait long enough for the forked VM and (tibor17: http://git-wip-us.apache.org/repos/asf/?p=maven-surefire.git&a=commit&h=c343cc412b986fd9da839696c709542d03679d68 ) (edit) surefire-booter/src/test/java/org/apache/maven/surefire/booter/JUnit4SuiteTest.java (edit) surefire-booter/pom.xml (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/FileReporterUtils.java (edit) maven-surefire-report-plugin/pom.xml (edit) maven-surefire-common/pom.xml (edit) maven-surefire-plugin/pom.xml (add) surefire-booter/src/main/java/org/apache/maven/surefire/booter/ProcessInfo.java (edit) maven-failsafe-plugin/pom.xml (add) surefire-booter/src/main/java/org/apache/maven/surefire/booter/PpidChecker.java (add) surefire-booter/src/test/java/org/apache/maven/surefire/booter/PpidCheckerTest.java (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java (edit) surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/jiras/Surefire1295AttributeJvmCrashesToTestsIT.java (edit) maven-surefire-plugin/src/site/apt/examples/shutdown.apt.vm (edit) surefire-api/pom.xml (edit) surefire-api/src/main/java/org/apache/maven/surefire/booter/CommandReader.java (edit) pom.xml
            hudson Hudson added a comment -

            SUCCESS: Integrated in Jenkins build maven-surefire-dev #10 (See https://builds.apache.org/job/maven-surefire-dev/10/)
            SUREFIRE-1302_4 (tibor17: http://git-wip-us.apache.org/repos/asf/?p=maven-surefire.git&a=commit&h=c7e0582bbc181b2d63901367f4d12613640352a7)

            • (add) surefire-api/src/test/java/org/apache/maven/surefire/util/ReflectionUtilsTest.java
            • (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/PropertiesWrapper.java
            • (add) surefire-booter/src/main/java/org/apache/maven/surefire/booter/SystemUtils.java
            • (edit) maven-failsafe-plugin/pom.xml
            • (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java
            • (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/BooterSerializer.java
            • (edit) surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/jiras/Surefire1295AttributeJvmCrashesToTestsIT.java
            • (edit) maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerStartupConfigurationTest.java
            • (edit) surefire-api/src/main/java/org/apache/maven/surefire/util/ReflectionUtils.java
            • (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/Classpath.java
            • (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/BooterConstants.java
            • (edit) pom.xml
            • (add) surefire-booter/src/main/java/org/apache/maven/surefire/booter/ProcessInfo.java
            • (add) surefire-booter/src/main/java/org/apache/maven/surefire/booter/PpidChecker.java
            • (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/BooterDeserializer.java
            • (edit) surefire-booter/src/test/java/org/apache/maven/surefire/booter/JUnit4SuiteTest.java
            • (edit) surefire-api/src/main/java/org/apache/maven/surefire/booter/CommandReader.java
            • (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireProperties.java
            • (edit) maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerProviderConfigurationTest.java
            • (edit) surefire-api/pom.xml
            • (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/FileReporterUtils.java
            • (edit) surefire-api/src/test/java/org/apache/maven/JUnit4SuiteTest.java
            • (edit) maven-surefire-plugin/pom.xml
            • (edit) maven-surefire-plugin/src/site/apt/examples/shutdown.apt.vm
            • (delete) surefire-api/src/test/java/org/apache/maven/surefire/util/internal/SystemUtilsTest.java
            • (edit) surefire-booter/pom.xml
            • (add) surefire-booter/src/test/java/org/apache/maven/surefire/booter/SystemUtilsTest.java
            • (edit) maven-surefire-common/pom.xml
            • (edit) maven-surefire-report-plugin/pom.xml
            • (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java
            • (add) surefire-booter/src/test/java/org/apache/maven/surefire/booter/PpidCheckerTest.java
            • (delete) surefire-api/src/main/java/org/apache/maven/surefire/util/internal/SystemUtils.java
            hudson Hudson added a comment - SUCCESS: Integrated in Jenkins build maven-surefire-dev #10 (See https://builds.apache.org/job/maven-surefire-dev/10/ ) SUREFIRE-1302 _4 (tibor17: http://git-wip-us.apache.org/repos/asf/?p=maven-surefire.git&a=commit&h=c7e0582bbc181b2d63901367f4d12613640352a7 ) (add) surefire-api/src/test/java/org/apache/maven/surefire/util/ReflectionUtilsTest.java (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/PropertiesWrapper.java (add) surefire-booter/src/main/java/org/apache/maven/surefire/booter/SystemUtils.java (edit) maven-failsafe-plugin/pom.xml (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/BooterSerializer.java (edit) surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/jiras/Surefire1295AttributeJvmCrashesToTestsIT.java (edit) maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerStartupConfigurationTest.java (edit) surefire-api/src/main/java/org/apache/maven/surefire/util/ReflectionUtils.java (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/Classpath.java (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/BooterConstants.java (edit) pom.xml (add) surefire-booter/src/main/java/org/apache/maven/surefire/booter/ProcessInfo.java (add) surefire-booter/src/main/java/org/apache/maven/surefire/booter/PpidChecker.java (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/BooterDeserializer.java (edit) surefire-booter/src/test/java/org/apache/maven/surefire/booter/JUnit4SuiteTest.java (edit) surefire-api/src/main/java/org/apache/maven/surefire/booter/CommandReader.java (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireProperties.java (edit) maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerProviderConfigurationTest.java (edit) surefire-api/pom.xml (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/FileReporterUtils.java (edit) surefire-api/src/test/java/org/apache/maven/JUnit4SuiteTest.java (edit) maven-surefire-plugin/pom.xml (edit) maven-surefire-plugin/src/site/apt/examples/shutdown.apt.vm (delete) surefire-api/src/test/java/org/apache/maven/surefire/util/internal/SystemUtilsTest.java (edit) surefire-booter/pom.xml (add) surefire-booter/src/test/java/org/apache/maven/surefire/booter/SystemUtilsTest.java (edit) maven-surefire-common/pom.xml (edit) maven-surefire-report-plugin/pom.xml (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java (add) surefire-booter/src/test/java/org/apache/maven/surefire/booter/PpidCheckerTest.java (delete) surefire-api/src/main/java/org/apache/maven/surefire/util/internal/SystemUtils.java
            hudson Hudson added a comment -

            SUCCESS: Integrated in Jenkins build maven-surefire-dev #13 (See https://builds.apache.org/job/maven-surefire-dev/13/)
            SUREFIRE-1302 Surefire does not wait long enough for the forked VM and (tibor17: http://git-wip-us.apache.org/repos/asf/?p=maven-surefire.git&a=commit&h=5cbdc7a4c12d77f42270735a742038581c6bac4a)

            • (edit) maven-surefire-report-plugin/pom.xml
            • (edit) maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/DefaultReporterFactoryTest.java
            • (edit) maven-surefire-plugin/src/site/apt/examples/shutdown.apt.vm
            • (edit) pom.xml
            • (add) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/Platform.java
            • (edit) surefire-api/pom.xml
            • (edit) surefire-api/src/main/java/org/apache/maven/surefire/util/ReflectionUtils.java
            • (add) surefire-booter/src/main/java/org/apache/maven/surefire/booter/ProcessInfo.java
            • (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java
            • (edit) surefire-booter/src/test/java/org/apache/maven/surefire/booter/JUnit4SuiteTest.java
            • (edit) surefire-booter/pom.xml
            • (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/FileReporterUtils.java
            • (edit) maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerProviderConfigurationTest.java
            • (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/BooterSerializer.java
            • (edit) surefire-api/src/main/java/org/apache/maven/surefire/booter/CommandReader.java
            • (add) surefire-booter/src/test/java/org/apache/maven/surefire/booter/SystemUtilsTest.java
            • (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/BooterDeserializer.java
            • (add) surefire-booter/src/main/java/org/apache/maven/surefire/booter/PpidChecker.java
            • (edit) surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/jiras/Surefire1295AttributeJvmCrashesToTestsIT.java
            • (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/PropertiesWrapper.java
            • (add) surefire-booter/src/main/java/org/apache/maven/surefire/booter/SystemUtils.java
            • (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/BooterConstants.java
            • (edit) maven-surefire-common/pom.xml
            • (add) surefire-api/src/test/java/org/apache/maven/surefire/util/ReflectionUtilsTest.java
            • (add) surefire-booter/src/test/java/org/apache/maven/surefire/booter/PpidCheckerTest.java
            • (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/Classpath.java
            • (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java
            • (edit) surefire-booter/src/test/java/org/apache/maven/surefire/booter/NewClassLoaderRunner.java
            • (delete) surefire-api/src/main/java/org/apache/maven/surefire/util/internal/SystemUtils.java
            • (edit) maven-failsafe-plugin/pom.xml
            • (edit) maven-surefire-plugin/pom.xml
            • (delete) surefire-api/src/test/java/org/apache/maven/surefire/util/internal/SystemUtilsTest.java
            • (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkConfiguration.java
            • (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java
            • (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireProperties.java
            • (edit) maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerStartupConfigurationTest.java
            • (edit) maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkConfigurationTest.java
            • (edit) surefire-api/src/test/java/org/apache/maven/JUnit4SuiteTest.java
            hudson Hudson added a comment - SUCCESS: Integrated in Jenkins build maven-surefire-dev #13 (See https://builds.apache.org/job/maven-surefire-dev/13/ ) SUREFIRE-1302 Surefire does not wait long enough for the forked VM and (tibor17: http://git-wip-us.apache.org/repos/asf/?p=maven-surefire.git&a=commit&h=5cbdc7a4c12d77f42270735a742038581c6bac4a ) (edit) maven-surefire-report-plugin/pom.xml (edit) maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/DefaultReporterFactoryTest.java (edit) maven-surefire-plugin/src/site/apt/examples/shutdown.apt.vm (edit) pom.xml (add) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/Platform.java (edit) surefire-api/pom.xml (edit) surefire-api/src/main/java/org/apache/maven/surefire/util/ReflectionUtils.java (add) surefire-booter/src/main/java/org/apache/maven/surefire/booter/ProcessInfo.java (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java (edit) surefire-booter/src/test/java/org/apache/maven/surefire/booter/JUnit4SuiteTest.java (edit) surefire-booter/pom.xml (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/FileReporterUtils.java (edit) maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerProviderConfigurationTest.java (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/BooterSerializer.java (edit) surefire-api/src/main/java/org/apache/maven/surefire/booter/CommandReader.java (add) surefire-booter/src/test/java/org/apache/maven/surefire/booter/SystemUtilsTest.java (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/BooterDeserializer.java (add) surefire-booter/src/main/java/org/apache/maven/surefire/booter/PpidChecker.java (edit) surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/jiras/Surefire1295AttributeJvmCrashesToTestsIT.java (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/PropertiesWrapper.java (add) surefire-booter/src/main/java/org/apache/maven/surefire/booter/SystemUtils.java (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/BooterConstants.java (edit) maven-surefire-common/pom.xml (add) surefire-api/src/test/java/org/apache/maven/surefire/util/ReflectionUtilsTest.java (add) surefire-booter/src/test/java/org/apache/maven/surefire/booter/PpidCheckerTest.java (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/Classpath.java (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java (edit) surefire-booter/src/test/java/org/apache/maven/surefire/booter/NewClassLoaderRunner.java (delete) surefire-api/src/main/java/org/apache/maven/surefire/util/internal/SystemUtils.java (edit) maven-failsafe-plugin/pom.xml (edit) maven-surefire-plugin/pom.xml (delete) surefire-api/src/test/java/org/apache/maven/surefire/util/internal/SystemUtilsTest.java (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkConfiguration.java (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireProperties.java (edit) maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerStartupConfigurationTest.java (edit) maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkConfigurationTest.java (edit) surefire-api/src/test/java/org/apache/maven/JUnit4SuiteTest.java
            hudson Hudson added a comment -

            SUCCESS: Integrated in Jenkins build maven-surefire-dev #15 (See https://builds.apache.org/job/maven-surefire-dev/15/)
            SUREFIRE-1302 Surefire does not wait long enough for the forked VM and (tibor17: http://git-wip-us.apache.org/repos/asf/?p=maven-surefire.git&a=commit&h=493cc8b5713ff32346d4703e0b9593f461a10ca4)

            • (edit) maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/DefaultReporterFactoryTest.java
            • (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/BooterConstants.java
            • (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java
            • (edit) surefire-api/pom.xml
            • (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java
            • (add) surefire-api/src/test/java/org/apache/maven/surefire/util/ReflectionUtilsTest.java
            • (edit) pom.xml
            • (add) surefire-booter/src/main/java/org/apache/maven/surefire/booter/SystemUtils.java
            • (edit) surefire-booter/src/test/java/org/apache/maven/surefire/booter/NewClassLoaderRunner.java
            • (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireProperties.java
            • (edit) maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerProviderConfigurationTest.java
            • (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/Classpath.java
            • (add) surefire-booter/src/main/java/org/apache/maven/surefire/booter/ProcessInfo.java
            • (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/FileReporterUtils.java
            • (edit) surefire-api/src/main/java/org/apache/maven/surefire/booter/CommandReader.java
            • (delete) surefire-api/src/main/java/org/apache/maven/surefire/util/internal/SystemUtils.java
            • (add) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/Platform.java
            • (edit) maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkConfigurationTest.java
            • (add) surefire-booter/src/test/java/org/apache/maven/surefire/booter/SystemUtilsTest.java
            • (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java
            • (add) surefire-booter/src/main/java/org/apache/maven/surefire/booter/PpidChecker.java
            • (add) surefire-booter/src/test/java/org/apache/maven/surefire/booter/PpidCheckerTest.java
            • (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/BooterSerializer.java
            • (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/PropertiesWrapper.java
            • (edit) maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerStartupConfigurationTest.java
            • (edit) surefire-api/src/main/java/org/apache/maven/surefire/util/ReflectionUtils.java
            • (edit) maven-surefire-common/pom.xml
            • (delete) surefire-api/src/test/java/org/apache/maven/surefire/util/internal/SystemUtilsTest.java
            • (edit) maven-surefire-plugin/src/site/apt/examples/shutdown.apt.vm
            • (edit) maven-failsafe-plugin/pom.xml
            • (edit) surefire-booter/src/test/java/org/apache/maven/surefire/booter/JUnit4SuiteTest.java
            • (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkConfiguration.java
            • (edit) surefire-booter/pom.xml
            • (edit) surefire-api/src/test/java/org/apache/maven/JUnit4SuiteTest.java
            • (edit) maven-surefire-report-plugin/pom.xml
            • (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/BooterDeserializer.java
            • (edit) maven-surefire-plugin/pom.xml
            • (edit) surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/jiras/Surefire1295AttributeJvmCrashesToTestsIT.java
            hudson Hudson added a comment - SUCCESS: Integrated in Jenkins build maven-surefire-dev #15 (See https://builds.apache.org/job/maven-surefire-dev/15/ ) SUREFIRE-1302 Surefire does not wait long enough for the forked VM and (tibor17: http://git-wip-us.apache.org/repos/asf/?p=maven-surefire.git&a=commit&h=493cc8b5713ff32346d4703e0b9593f461a10ca4 ) (edit) maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/DefaultReporterFactoryTest.java (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/BooterConstants.java (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java (edit) surefire-api/pom.xml (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java (add) surefire-api/src/test/java/org/apache/maven/surefire/util/ReflectionUtilsTest.java (edit) pom.xml (add) surefire-booter/src/main/java/org/apache/maven/surefire/booter/SystemUtils.java (edit) surefire-booter/src/test/java/org/apache/maven/surefire/booter/NewClassLoaderRunner.java (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireProperties.java (edit) maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerProviderConfigurationTest.java (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/Classpath.java (add) surefire-booter/src/main/java/org/apache/maven/surefire/booter/ProcessInfo.java (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/FileReporterUtils.java (edit) surefire-api/src/main/java/org/apache/maven/surefire/booter/CommandReader.java (delete) surefire-api/src/main/java/org/apache/maven/surefire/util/internal/SystemUtils.java (add) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/Platform.java (edit) maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkConfigurationTest.java (add) surefire-booter/src/test/java/org/apache/maven/surefire/booter/SystemUtilsTest.java (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java (add) surefire-booter/src/main/java/org/apache/maven/surefire/booter/PpidChecker.java (add) surefire-booter/src/test/java/org/apache/maven/surefire/booter/PpidCheckerTest.java (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/BooterSerializer.java (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/PropertiesWrapper.java (edit) maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerStartupConfigurationTest.java (edit) surefire-api/src/main/java/org/apache/maven/surefire/util/ReflectionUtils.java (edit) maven-surefire-common/pom.xml (delete) surefire-api/src/test/java/org/apache/maven/surefire/util/internal/SystemUtilsTest.java (edit) maven-surefire-plugin/src/site/apt/examples/shutdown.apt.vm (edit) maven-failsafe-plugin/pom.xml (edit) surefire-booter/src/test/java/org/apache/maven/surefire/booter/JUnit4SuiteTest.java (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkConfiguration.java (edit) surefire-booter/pom.xml (edit) surefire-api/src/test/java/org/apache/maven/JUnit4SuiteTest.java (edit) maven-surefire-report-plugin/pom.xml (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/BooterDeserializer.java (edit) maven-surefire-plugin/pom.xml (edit) surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/jiras/Surefire1295AttributeJvmCrashesToTestsIT.java
            hudson Hudson added a comment -

            SUCCESS: Integrated in Jenkins build maven-surefire #1720 (See https://builds.apache.org/job/maven-surefire/1720/)
            Revert "SUREFIRE-1302 Surefire does not wait long enough for the (tibor17: http://git-wip-us.apache.org/repos/asf/?p=maven-surefire.git&a=commit&h=58a4dad81b02dba8ccc0f3fe511e31bfaa914d43)

            • (edit) surefire-api/pom.xml
            • (edit) pom.xml
            • (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java
            • (edit) maven-surefire-plugin/src/site/apt/examples/shutdown.apt.vm
            • (edit) maven-surefire-common/pom.xml
            • (edit) surefire-booter/src/test/java/org/apache/maven/surefire/booter/JUnit4SuiteTest.java
            • (edit) surefire-api/src/main/java/org/apache/maven/surefire/booter/CommandReader.java
            • (delete) surefire-booter/src/main/java/org/apache/maven/surefire/booter/ProcessInfo.java
            • (edit) maven-surefire-plugin/pom.xml
            • (edit) surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/jiras/Surefire1295AttributeJvmCrashesToTestsIT.java
            • (edit) maven-surefire-report-plugin/pom.xml
            • (edit) surefire-booter/pom.xml
            • (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/FileReporterUtils.java
            • (delete) surefire-booter/src/main/java/org/apache/maven/surefire/booter/PpidChecker.java
            • (edit) maven-failsafe-plugin/pom.xml
            • (delete) surefire-booter/src/test/java/org/apache/maven/surefire/booter/PpidCheckerTest.java
            hudson Hudson added a comment - SUCCESS: Integrated in Jenkins build maven-surefire #1720 (See https://builds.apache.org/job/maven-surefire/1720/ ) Revert " SUREFIRE-1302 Surefire does not wait long enough for the (tibor17: http://git-wip-us.apache.org/repos/asf/?p=maven-surefire.git&a=commit&h=58a4dad81b02dba8ccc0f3fe511e31bfaa914d43 ) (edit) surefire-api/pom.xml (edit) pom.xml (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java (edit) maven-surefire-plugin/src/site/apt/examples/shutdown.apt.vm (edit) maven-surefire-common/pom.xml (edit) surefire-booter/src/test/java/org/apache/maven/surefire/booter/JUnit4SuiteTest.java (edit) surefire-api/src/main/java/org/apache/maven/surefire/booter/CommandReader.java (delete) surefire-booter/src/main/java/org/apache/maven/surefire/booter/ProcessInfo.java (edit) maven-surefire-plugin/pom.xml (edit) surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/jiras/Surefire1295AttributeJvmCrashesToTestsIT.java (edit) maven-surefire-report-plugin/pom.xml (edit) surefire-booter/pom.xml (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/FileReporterUtils.java (delete) surefire-booter/src/main/java/org/apache/maven/surefire/booter/PpidChecker.java (edit) maven-failsafe-plugin/pom.xml (delete) surefire-booter/src/test/java/org/apache/maven/surefire/booter/PpidCheckerTest.java
            hudson Hudson added a comment -

            SUCCESS: Integrated in Jenkins build maven-surefire #1722 (See https://builds.apache.org/job/maven-surefire/1722/)
            SUREFIRE-1302 Surefire does not wait long enough for the forked VM and (tibor17: http://git-wip-us.apache.org/repos/asf/?p=maven-surefire.git&a=commit&h=f1f4718e519bdee7ab53b91b34714adce3e39c34)

            • (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/Classpath.java
            • (edit) maven-surefire-common/pom.xml
            • (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/FileReporterUtils.java
            • (delete) surefire-api/src/main/java/org/apache/maven/surefire/util/internal/SystemUtils.java
            • (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java
            • (add) surefire-booter/src/main/java/org/apache/maven/surefire/booter/ProcessInfo.java
            • (edit) maven-surefire-plugin/pom.xml
            • (edit) surefire-api/pom.xml
            • (add) surefire-booter/src/test/java/org/apache/maven/surefire/booter/SystemUtilsTest.java
            • (edit) maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerStartupConfigurationTest.java
            • (add) surefire-booter/src/main/java/org/apache/maven/surefire/booter/SystemUtils.java
            • (edit) maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerProviderConfigurationTest.java
            • (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/BooterDeserializer.java
            • (edit) pom.xml
            • (edit) surefire-api/src/main/java/org/apache/maven/surefire/booter/CommandReader.java
            • (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkConfiguration.java
            • (edit) surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/jiras/Surefire1295AttributeJvmCrashesToTestsIT.java
            • (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java
            • (edit) surefire-booter/src/test/java/org/apache/maven/surefire/booter/NewClassLoaderRunner.java
            • (edit) maven-surefire-report-plugin/pom.xml
            • (add) surefire-booter/src/main/java/org/apache/maven/surefire/booter/PpidChecker.java
            • (add) surefire-api/src/test/java/org/apache/maven/surefire/util/ReflectionUtilsTest.java
            • (delete) surefire-api/src/test/java/org/apache/maven/surefire/util/internal/SystemUtilsTest.java
            • (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/PropertiesWrapper.java
            • (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireProperties.java
            • (edit) maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/DefaultReporterFactoryTest.java
            • (edit) maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkConfigurationTest.java
            • (edit) surefire-booter/pom.xml
            • (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java
            • (edit) surefire-api/src/main/java/org/apache/maven/surefire/util/ReflectionUtils.java
            • (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/BooterSerializer.java
            • (add) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/Platform.java
            • (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/BooterConstants.java
            • (add) surefire-booter/src/test/java/org/apache/maven/surefire/booter/PpidCheckerTest.java
            • (edit) maven-failsafe-plugin/pom.xml
            • (edit) maven-surefire-plugin/src/site/apt/examples/shutdown.apt.vm
            • (edit) surefire-api/src/test/java/org/apache/maven/JUnit4SuiteTest.java
            • (edit) surefire-booter/src/test/java/org/apache/maven/surefire/booter/JUnit4SuiteTest.java
            hudson Hudson added a comment - SUCCESS: Integrated in Jenkins build maven-surefire #1722 (See https://builds.apache.org/job/maven-surefire/1722/ ) SUREFIRE-1302 Surefire does not wait long enough for the forked VM and (tibor17: http://git-wip-us.apache.org/repos/asf/?p=maven-surefire.git&a=commit&h=f1f4718e519bdee7ab53b91b34714adce3e39c34 ) (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/Classpath.java (edit) maven-surefire-common/pom.xml (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/FileReporterUtils.java (delete) surefire-api/src/main/java/org/apache/maven/surefire/util/internal/SystemUtils.java (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java (add) surefire-booter/src/main/java/org/apache/maven/surefire/booter/ProcessInfo.java (edit) maven-surefire-plugin/pom.xml (edit) surefire-api/pom.xml (add) surefire-booter/src/test/java/org/apache/maven/surefire/booter/SystemUtilsTest.java (edit) maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerStartupConfigurationTest.java (add) surefire-booter/src/main/java/org/apache/maven/surefire/booter/SystemUtils.java (edit) maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerProviderConfigurationTest.java (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/BooterDeserializer.java (edit) pom.xml (edit) surefire-api/src/main/java/org/apache/maven/surefire/booter/CommandReader.java (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkConfiguration.java (edit) surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/jiras/Surefire1295AttributeJvmCrashesToTestsIT.java (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java (edit) surefire-booter/src/test/java/org/apache/maven/surefire/booter/NewClassLoaderRunner.java (edit) maven-surefire-report-plugin/pom.xml (add) surefire-booter/src/main/java/org/apache/maven/surefire/booter/PpidChecker.java (add) surefire-api/src/test/java/org/apache/maven/surefire/util/ReflectionUtilsTest.java (delete) surefire-api/src/test/java/org/apache/maven/surefire/util/internal/SystemUtilsTest.java (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/PropertiesWrapper.java (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireProperties.java (edit) maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/DefaultReporterFactoryTest.java (edit) maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkConfigurationTest.java (edit) surefire-booter/pom.xml (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java (edit) surefire-api/src/main/java/org/apache/maven/surefire/util/ReflectionUtils.java (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/BooterSerializer.java (add) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/Platform.java (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/BooterConstants.java (add) surefire-booter/src/test/java/org/apache/maven/surefire/booter/PpidCheckerTest.java (edit) maven-failsafe-plugin/pom.xml (edit) maven-surefire-plugin/src/site/apt/examples/shutdown.apt.vm (edit) surefire-api/src/test/java/org/apache/maven/JUnit4SuiteTest.java (edit) surefire-booter/src/test/java/org/apache/maven/surefire/booter/JUnit4SuiteTest.java
            tibordigana Tibor Digana added a comment - https://git1-us-west.apache.org/repos/asf?p=maven-surefire.git;a=commit;h=f1f4718e519bdee7ab53b91b34714adce3e39c34
            hudson Hudson added a comment -

            SUCCESS: Integrated in Jenkins build maven-surefire-dev #19 (See https://builds.apache.org/job/maven-surefire-dev/19/)
            SUREFIRE-1302 Surefire does not wait long enough for the forked VM and (tibor17: http://git-wip-us.apache.org/repos/asf/?p=maven-surefire.git&a=commit&h=fec3dfedc359ae57c5928f98a7b1c43bad89bc5a)

            • (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/FileReporterUtils.java
            • (add) surefire-booter/src/main/java/org/apache/maven/surefire/booter/PpidChecker.java
            • (add) surefire-api/src/test/java/org/apache/maven/surefire/util/ReflectionUtilsTest.java
            • (edit) maven-failsafe-plugin/pom.xml
            • (edit) surefire-api/pom.xml
            • (edit) maven-surefire-plugin/pom.xml
            • (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java
            • (edit) surefire-booter/src/test/java/org/apache/maven/surefire/booter/JUnit4SuiteTest.java
            • (edit) surefire-api/src/test/java/org/apache/maven/JUnit4SuiteTest.java
            • (edit) surefire-booter/pom.xml
            • (edit) pom.xml
            • (add) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/Platform.java
            • (edit) surefire-api/src/main/java/org/apache/maven/surefire/util/ReflectionUtils.java
            • (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/BooterConstants.java
            • (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireProperties.java
            • (edit) maven-surefire-plugin/src/site/apt/examples/shutdown.apt.vm
            • (delete) surefire-api/src/test/java/org/apache/maven/surefire/util/internal/SystemUtilsTest.java
            • (add) surefire-booter/src/main/java/org/apache/maven/surefire/booter/ProcessInfo.java
            • (edit) maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerStartupConfigurationTest.java
            • (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/BooterDeserializer.java
            • (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/PropertiesWrapper.java
            • (edit) surefire-api/src/main/java/org/apache/maven/surefire/booter/CommandReader.java
            • (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkConfiguration.java
            • (edit) maven-surefire-common/pom.xml
            • (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java
            • (add) surefire-booter/src/main/java/org/apache/maven/surefire/booter/SystemUtils.java
            • (add) surefire-booter/src/test/java/org/apache/maven/surefire/booter/SystemUtilsTest.java
            • (delete) surefire-api/src/main/java/org/apache/maven/surefire/util/internal/SystemUtils.java
            • (add) surefire-booter/src/test/java/org/apache/maven/surefire/booter/PpidCheckerTest.java
            • (edit) surefire-booter/src/test/java/org/apache/maven/surefire/booter/NewClassLoaderRunner.java
            • (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/Classpath.java
            • (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java
            • (edit) maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkConfigurationTest.java
            • (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/BooterSerializer.java
            • (edit) maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerProviderConfigurationTest.java
            • (edit) maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/DefaultReporterFactoryTest.java
            • (edit) maven-surefire-report-plugin/pom.xml
            • (edit) surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/jiras/Surefire1295AttributeJvmCrashesToTestsIT.java
            hudson Hudson added a comment - SUCCESS: Integrated in Jenkins build maven-surefire-dev #19 (See https://builds.apache.org/job/maven-surefire-dev/19/ ) SUREFIRE-1302 Surefire does not wait long enough for the forked VM and (tibor17: http://git-wip-us.apache.org/repos/asf/?p=maven-surefire.git&a=commit&h=fec3dfedc359ae57c5928f98a7b1c43bad89bc5a ) (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/FileReporterUtils.java (add) surefire-booter/src/main/java/org/apache/maven/surefire/booter/PpidChecker.java (add) surefire-api/src/test/java/org/apache/maven/surefire/util/ReflectionUtilsTest.java (edit) maven-failsafe-plugin/pom.xml (edit) surefire-api/pom.xml (edit) maven-surefire-plugin/pom.xml (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java (edit) surefire-booter/src/test/java/org/apache/maven/surefire/booter/JUnit4SuiteTest.java (edit) surefire-api/src/test/java/org/apache/maven/JUnit4SuiteTest.java (edit) surefire-booter/pom.xml (edit) pom.xml (add) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/Platform.java (edit) surefire-api/src/main/java/org/apache/maven/surefire/util/ReflectionUtils.java (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/BooterConstants.java (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireProperties.java (edit) maven-surefire-plugin/src/site/apt/examples/shutdown.apt.vm (delete) surefire-api/src/test/java/org/apache/maven/surefire/util/internal/SystemUtilsTest.java (add) surefire-booter/src/main/java/org/apache/maven/surefire/booter/ProcessInfo.java (edit) maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerStartupConfigurationTest.java (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/BooterDeserializer.java (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/PropertiesWrapper.java (edit) surefire-api/src/main/java/org/apache/maven/surefire/booter/CommandReader.java (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkConfiguration.java (edit) maven-surefire-common/pom.xml (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java (add) surefire-booter/src/main/java/org/apache/maven/surefire/booter/SystemUtils.java (add) surefire-booter/src/test/java/org/apache/maven/surefire/booter/SystemUtilsTest.java (delete) surefire-api/src/main/java/org/apache/maven/surefire/util/internal/SystemUtils.java (add) surefire-booter/src/test/java/org/apache/maven/surefire/booter/PpidCheckerTest.java (edit) surefire-booter/src/test/java/org/apache/maven/surefire/booter/NewClassLoaderRunner.java (edit) surefire-booter/src/main/java/org/apache/maven/surefire/booter/Classpath.java (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java (edit) maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkConfigurationTest.java (edit) maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/BooterSerializer.java (edit) maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerProviderConfigurationTest.java (edit) maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/DefaultReporterFactoryTest.java (edit) maven-surefire-report-plugin/pom.xml (edit) surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/jiras/Surefire1295AttributeJvmCrashesToTestsIT.java

            tibor17, when can we expect this fix to be delivered within new plugin version? It is very critical for us.

            Prifiz Valentin Baranov added a comment - tibor17 , when can we expect this fix to be delivered within new plugin version? It is very critical for us.
            tibordigana Tibor Digana added a comment -

            There are 4 pending issues to fix.
            One of them has to be fixed now because the issue has been introduced
            recently. It is a bug regarding @Parameterized in JUnit when tests fail.
            This is very important because this was fine in 2.20 and I do not want to
            deliver 2.20.1 with such issue for junit provider.
            If you have time please look at it. See the last comment in
            https://issues.apache.org/jira/browse/SUREFIRE-1264. There is the last
            comment saying which commit introduced the issue. This tells you what
            change caused this and should be kept but fixed. Of course IT tests are
            needed.

            On Mon, Aug 14, 2017 at 11:31 AM, Valentin Baranov (JIRA) <jira@apache.org>

            tibordigana Tibor Digana added a comment - There are 4 pending issues to fix. One of them has to be fixed now because the issue has been introduced recently. It is a bug regarding @Parameterized in JUnit when tests fail. This is very important because this was fine in 2.20 and I do not want to deliver 2.20.1 with such issue for junit provider. If you have time please look at it. See the last comment in https://issues.apache.org/jira/browse/SUREFIRE-1264 . There is the last comment saying which commit introduced the issue. This tells you what change caused this and should be kept but fixed. Of course IT tests are needed. On Mon, Aug 14, 2017 at 11:31 AM, Valentin Baranov (JIRA) <jira@apache.org>

            tibor17, the ticket you're talking about is closed.
            As far as I can understand the situation is like the following:
            1. There was an issue SUREFIRE-1264.
            2. It was "fixed" and closed
            3. After that, some kind of regression was found, but issue itself wasn't reopened.
            Am I right?

            Prifiz Valentin Baranov added a comment - tibor17 , the ticket you're talking about is closed. As far as I can understand the situation is like the following: 1. There was an issue SUREFIRE-1264 . 2. It was "fixed" and closed 3. After that, some kind of regression was found, but issue itself wasn't reopened. Am I right?
            tibordigana Tibor Digana added a comment -

            Exactly, the regression was found in SUREFIRE-1264 regarding failed test
            and not passed tests as the initial fix in 1264 was proposed to fix.
            We have two options.
            I can reopen 1264 or create a new one.
            Maybe reopening it is better. WDYT?

            On Mon, Aug 14, 2017 at 12:40 PM, Valentin Baranov (JIRA) <jira@apache.org>

            tibordigana Tibor Digana added a comment - Exactly, the regression was found in SUREFIRE-1264 regarding failed test and not passed tests as the initial fix in 1264 was proposed to fix. We have two options. I can reopen 1264 or create a new one. Maybe reopening it is better. WDYT? On Mon, Aug 14, 2017 at 12:40 PM, Valentin Baranov (JIRA) <jira@apache.org>

            I think the best way is to reopen 1264 because it is not completely done and can't be delivered right now.
            I'll try to find time after work to fix it.

            Prifiz Valentin Baranov added a comment - I think the best way is to reopen 1264 because it is not completely done and can't be delivered right now. I'll try to find time after work to fix it.
            tibordigana Tibor Digana added a comment -

            Thx Valentin. The issue SUREFIRE-1264 is reopened.

            On Mon, Aug 14, 2017 at 1:00 PM, Valentin Baranov (JIRA) <jira@apache.org>

            tibordigana Tibor Digana added a comment - Thx Valentin. The issue SUREFIRE-1264 is reopened. On Mon, Aug 14, 2017 at 1:00 PM, Valentin Baranov (JIRA) <jira@apache.org>

            People

              tibordigana Tibor Digana
              xeagle Yuriy Zaplavnov
              Votes:
              4 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: