SIGQUIT is ignored on Linux by the first java process in process tree. It is accepted by java process on the third level. I faced this when running NetBeans IDE on JDK1.5.0_13-b03 and Linux deadlock.nbextras.org 2.6.18-4-vserver-amd64 #1 SMP Mon Mar 26 11:50:08 CEST 2007 x86_64 GNU/Linux.
$ pstree -plaA 3213
java,3213 -Djdk.home=/opt/jdk1.5.0_13 -classpath/hudson/workdir/jobs/testsSandb
`-java,3214 -Djdk.home=/opt/jdk1.5.0_13 -classpath/hudson/workdir/jobs/testsS
|-java,3215 -Djdk.home=/opt/jdk1.5.0_13 -classpath/hudson/workdir/jobs/te
|-java,3216 -Djdk.home=/opt/jdk1.5.0_13 -classpath/hudson/workdir/jobs/te
...and more 40 java processes
kill -QUIT 3213 - ignored
kill -QUIT 3214 - ignored
kill -QUIT 3215 - accepted => thread dump generated
New description from the submitter:
To reproduce:
- run NetBeans IDE on Linux (http://bits.netbeans.org/download/6.5/m1/)
- find out parent java process id (it is 3213 in the description)
- run 'pstree -plaA 3213'
- try:
kill -QUIT 3213 (it is ignored)
kill -QUIT 3214 (it is ignored)
kill -QUIT 3215 (not ignored and thread dump is printed out)
$ pstree -plaA 3213
java,3213 -Djdk.home=/opt/jdk1.5.0_13 -classpath/hudson/workdir/jobs/testsSandb
`-java,3214 -Djdk.home=/opt/jdk1.5.0_13 -classpath/hudson/workdir/jobs/testsS
|-java,3215 -Djdk.home=/opt/jdk1.5.0_13 -classpath/hudson/workdir/jobs/te
|-java,3216 -Djdk.home=/opt/jdk1.5.0_13 -classpath/hudson/workdir/jobs/te
...and more 40 java processes
kill -QUIT 3213 - ignored
kill -QUIT 3214 - ignored
kill -QUIT 3215 - accepted => thread dump generated
New description from the submitter:
To reproduce:
- run NetBeans IDE on Linux (http://bits.netbeans.org/download/6.5/m1/)
- find out parent java process id (it is 3213 in the description)
- run 'pstree -plaA 3213'
- try:
kill -QUIT 3213 (it is ignored)
kill -QUIT 3214 (it is ignored)
kill -QUIT 3215 (not ignored and thread dump is printed out)