RFR: 8279124: VirtualMachineImpl should check signal handler has installed before sending SIGQUIT

Xin Liu xliu at openjdk.java.net
Wed Jan 19 05:48:27 UTC 2022


On Mon, 17 Jan 2022 09:52:04 GMT, Thomas Stuefe <stuefe at openjdk.org> wrote:

>>> I propose a simpler and more robust way to fix it though
>> 
>> Great, this is the kind of thing I was heading towards with the conversation in the bug text.  Although not sure why I could not reproduce the problem, with various different JDK versions.
>
>> > I propose a simpler and more robust way to fix it though
>> 
>> Great, this is the kind of thing I was heading towards with the conversation in the bug text. Although not sure why I could not reproduce the problem, with various different JDK versions.
> 
> Ah, I missed your conversation.
> 
> I reproduced this by adding a delay during initialization and sending sigquit manually. The bug is not restricted to jcmd, sigquit handling is broken during initialization. Folks tend to send sigquit to unresponsive VMs to get thread dumps, so coring is unfortunate (another reason not to fix it in jcmd itself).
> 
> Cheers, Thomas

hi, @tstuefe @dholmes-ora 
I think your opinion is same.  I agree Thomas's approach is more general.  It works in practice because "making the window during which SIGQUIT terminates the VM process small enough to be unhittable". The gain is obvious. It can work on all POSIX systems and the attach clients don't need to be patched. 

One behavior change in the 2f25753 is that we can't core the JVM process with -Xrs (ReduceSignalUsage) anymore  SIGQUIT will be intercepted by JVM_HANDLE_XXX_SIGNAL. Thomas said this is fine.
--lx

-------------

PR: https://git.openjdk.java.net/jdk/pull/7003


More information about the serviceability-dev mailing list