boj s procesy ve stavu D (uninterruptible sleep)

Jacek Kopecky kopeckyj na inf.upol.cz
Úterý Květen 4 10:01:37 CEST 1999


 Dobry den vsem preji. 8-)
 Tak nam tu na jedne masine pri jedne kompilaci umrel proces
/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/cc1plus z RedHatu 6.0, teda
on zije, ale tak, ze nema v pameti zadne stranky a podle ps je ve stavu D
(uninterruptible sleep - probably IO) a to na adrese c01bba78 (asi vam to k
nicemu, neni, ze?) kolem ktere je v System.map (jadro 2.2.7)
c01bba70 T __down_failed
c01bba7c T __down_failed_interruptible
c01bba88 T __down_failed_trylock

Nedari se mi ani pripojit se na ten proces pomoci gdb ani pomoci strace, oba
vytuhnou, strace pak nereaguje ani na SIGTERM, musim pouzit SIGKILL.
Ovsem diky stavu D ten vytuhly proces nereaguje ani na SIGKILL a visi. 8-(
Nevite, jak se s takovymi procesy bojuje?

Jeste dalsi podrobnosti:
v /proc/pid/fd ma 0,1,2 -> /dev/tty3 (spravne), pak 3,4,5 -> pipe:[ruzna
cisla], nakonec 6,7 -> /tmp/ruzne soubory (deleted), asi vstup a vystup, taky
spravne, zda se. Nemuzu zjistit, co bylo posledni volani jadra, ktere
provedl, protoze nevim jak, kdyz ani strace ani gdb nechce... 8-(

Doufam, ze jsem dostatecne podrobny a ze nekdo z vas vi, jak na to (co dal
smerem k vitezstvi). 8-)
Zdravi

                                       Jacek Kopecky

E-mail: jacek.kopecky(at)upol.cz
WWW:    http://www.inf.upol.cz/~kopeckyj
Finger kopeckyj na alpha.inf.upol.cz for Geek Code.



Další informace o konferenci Linux