tkowalcz commented on PR #211:
URL: https://github.com/apache/ant/pull/211#issuecomment-2267496463
> Hello Tomasz, can you tell us the details of the issue you are running
into? That might help understand what change needs to be done.
Absolutely. I just wanted to get the conversation started. Thanks for taking
time to reply.
When using `junitlauncher` with timeout:
```xml
<junitlauncher
taskname="JUnit5"
haltonfailure="${junit.haltonfailure}"
failureproperty="junit.failures"
printsummary="false">
...
<fork timeout="${junit.timeout}">
...
</fork>
</junitlauncher>
```
it setups `ExecuteWatchdog` that will terminate the forked process after
timeout passes. If the forked JVM is very busy (e.g. doing GC back to back) it
will not terminate (it has the signal handler installed but fails to act upon
receiving the signal). The only option is to issue a SIGKILL.
In our case we had the JVM stuck for yet to be discovered reason. Tools like
`jstack` were unable to attach to it unless `-F`orce option was used. The CI
job that was running test suite got stuck waiting for `ant` task to time out
but it never did. Eventually job level timeout of Jenkins kicked in and
terminated the parent process.
I was able to verify following - sending `SIGINT` to the forked JVM did not
shut it down. Sending `SIGKILL` did and the `junitlauncher` properly continued
- set `failureproperty` and continued if `haltonfailure` was set to false.
--
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.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]