You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by GitBox <gi...@apache.org> on 2019/04/22 23:03:27 UTC

[GitHub] [maven-surefire] Tibor17 commented on issue #231: Failsafe: Killing self fork JVM. PING timeout elapsed.

Tibor17 commented on issue #231: Failsafe: Killing self fork JVM. PING timeout elapsed.
URL: https://github.com/apache/maven-surefire/pull/231#issuecomment-485582552
 
 
   @shark-horse 
   Comparing the mechanism in `ForkedBooter` (not in `CommandReader`) we keep the appearance on NOOP in AtomicBoolean anytimes it has happened within the period of 30seconds. The scheduler won't forget the intermediate NOOPs the same as `ForkedBooter`. If one NOOP at least is seen within 30 seconds period, it's ok and it means the Maven process is alive.
   
   We have three ways to detect that Maven process has died (ordered from the most fast to slow):
   
   + `EOFException` caught in the `std-in` stream (from `InputStream#read()`) on CTRL+C (is `SIGTERM`).
   + native `PpidChecker` fast (action within 1 sec) able to detect killed or reused killed Maven process ID (after `SIGKILL`)
   + 1 up to 3 NOOPs checked within the period of 30 seconds
   
   In docker container (without Ninx' `ps`) the first and second algorithm was satisfactory. The only problem was that the second algorithm detected a fake when long GC pauses happened. We are trying this algorithm been resilient against long GC pauses.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services