From: David Fort <david.fort@irisa.fr>
To: linux-kernel@vger.kernel.org
Cc: Andrew Morton <akpm@osdl.org>
Subject: Re: Unkillable Zombie process under 2.6.3 and 2.6.4
Date: Fri, 12 Mar 2004 17:37:51 +0100 [thread overview]
Message-ID: <4051E75F.2040902@irisa.fr> (raw)
In-Reply-To: <4051C8C5.5090204@irisa.fr>
[-- Attachment #1: Type: text/plain, Size: 2965 bytes --]
David Fort wrote:
[...]
>>Does it help to send a SIGCONT to all processes in T state?
>>
>>
>>
> No it doesn't, gdb loose its context when doing this(this triggers an
> internal gdb error):
>
> lin-lwp.c:653: internal-error: stop_wait_callback: Assertion `pid ==
> GET_LWP (lp->ptid)' failed.
> A problem internal to GDB has been detected,
> further debugging may prove unreliable.
>
I was finally able to reproduce the unkillable zombie process. How to
reproduce it:
- launch gdb with the program in the attached tarball.
- once the program is running you have 5 seconds to telnet on
localhost on port 7899, and
sit on your keyboard.
-after 5 seconds the first popen occurs in one of the thread of kbug
which causes gdb or the kernel to bug(waiting for new
child: No child processes.)
[dfo@chiffre kbug]$ ~/cvs/gdb/gdb/gdb ./kbug
GNU gdb 2004-03-12-cvs
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu"...Using host libthread_db
library "/lib/tls/libthread_db.so.1".
(gdb) r 5 6
Starting program: /home/dfo/test/kbug/kbug 5 6
[Thread debugging using libthread_db enabled]
[New Thread 1073961248 (LWP 1882)]
[New Thread 1083698096 (LWP 1885)]
[New Thread 1092090800 (LWP 1886)]
1882(1083698096)do_task1: starting
1882(1073961248)main: starting
1882(1092090800)do_task1: starting
[New Thread 1100487600 (LWP 1888)]
1882(1100487600)remoteworker_thread_run: starting
remoteworker_thread_run(1100487600): readed 2 bytes [
]
[.. that's when i'm sending things via the telnet......]
]
remoteworker_thread_run(1100487600): readed 2 bytes [
]
waiting for new child: No child processes.
(gdb)
When here ask to quit, and gdb may hang:
(gdb) q
The program is running. Exit anyway? (y or n) y
Once this is done just kill gdb(killall gdb), here i get the following:
ps xwaf | grep kbug
5255 pts18 S 0:00 \_ grep kbug
1882 pts16 Z 0:00 [kbug] <defunct>
the kbug process became an unkillable zombie.
The provided trace is with the CVS of gdb but i have same behaviour with the
legacy gdb-6.0-2mdk
kbug:
kbug has a POPENFUNC which is a just call to popen(/bin/true)
threads of kbug:
-main thread creates things(other threads) and then call POPENFUNC
-task1 thread binds 7899, accepts the first connection and launch a
thead "remoteworker" to treat the incoming connection, once this
is done it calls POPENFUNC
-remoteworker "select" the incoming connection and prints what is send
-task2 does only POPENFUNC
I can provide any information that is needed.
--
Fort David, Projet IDsA
IRISA-INRIA, Campus de Beaulieu, 35042 Rennes cedex, France
Tél: +33 (0) 2 99 84 71 33
[-- Attachment #2: kbug2.tar.bz2 --]
[-- Type: application/x-bzip2, Size: 10565 bytes --]
prev parent reply other threads:[~2004-03-12 16:38 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-03-11 16:01 Unkillable Zombie process under 2.6.3 and 2.6.4 David Fort
[not found] ` <20040311151729.57e3d936.akpm@osdl.org>
2004-03-12 13:54 ` David Fort
2004-03-12 14:06 ` Christian Borntraeger
2004-03-12 14:30 ` David Fort
[not found] ` <4051C8C5.5090204@irisa.fr>
2004-03-12 16:37 ` David Fort [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4051E75F.2040902@irisa.fr \
--to=david.fort@irisa.fr \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox