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

Reply via email to