Tibor17 edited a comment 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 to make this algorithm resilient against long GC pauses. The `CommandReader` should be very fast, performing without intended delay, because some other command says "run this test". Making it in a scheduler would mean that forked JVM would obviously last longer than the in-plugin tests.
---------------------------------------------------------------- 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: us...@infra.apache.org With regards, Apache Git Services