[linux] Ako zabit locknuty proces v stave D

Ing. Jan ONDREJ jan.ondrej na upjs.sk
Pondělí Leden 29 19:54:42 CET 2007


Ahoj,

  pokial viem, tak ten proces sa neda killnut. Proces caka na neprerusitelnu
operaciu jadra (podla man: Uninterruptible sleep (usually IO)).
Faktom je, ze tento proces danu operaciu budto skonci (timeout, operaciu
ukonci normalne, ...) alebo pomoze zrejme len reboot (v pripade remote
systemu doporucujem asi "reboot -f", aby sa to nezaseklo pri killovani
procesov).

  Mozes skusit este "lazy umount" (umount -l), mozno sa ti podari odpojit
dany FS a system opat vratit do normalu.

On Mon, Jan 29, 2007 at 06:08:11PM +0100, Lubomir Host wrote:
> nejakym experimentovanim sa mi podarilo na desktope dospiet do stavu, ze
> som zacal natvrdo vyhadzovat niektore moduly z jadra. Napr. nfs, nfsd,
> lockd, sunrpc. Medzi tym sa mi este podarilo klavesovou skratkou
> Alt+SysRq+e zabit vsetky procesy. Teraz ale vyvstala potreba vselico
> pospustat. A ako som zistil, moze to byt problem.
> 
> Spustil som /etc/init.d/nfs-common start, a ostalo to visiet na tomto
> prikaze:
> 
> USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
> root     19355  0.0  0.1   5088   824 pts/19   D    16:48   0:00 mount -t rpc_pipefs rpc_pipefs /var/lib/nfs/rpc_pipefs
> 
> Ale zacalo takto visiet viacero procesov. Problem je v tom, ze pri
> pristupe niekam do /proc/ sa proces zablokuje a dostane do stavu D. Killnutelny
> cez -SIGSEGV, -SIGKILL, -SIGTERM etc. takyto proces nie je.
> 
> Ja viem, mohol by som rebootnut. ;-) Ale nahanam na tom stroji uptime
> a momentalne to je na velmi slusnom cisle:
> 
> # uptime
> 17:26:13 up 293 days, 22:41, 15 users,  load average: 26.98, 25.96, 21.30
> 
> Otazka: ako zistim, na akom pristupe do /proc sa zvykne proces locknut?
> strace tuto velmi nepomoze. Resp. da sa nejako debugovat beziaci kernel?

Pokial to bezi ako nejaky proces, mozes skusit gdb. Zrejme ale budes
potrebovat debug informacie k aktualne skompilovanym binarkam. Popripade
mozes skusit ltrace (library trace), ale asi to tiez velmi nepomoze.

Preco vlastne nemozes pouzit "strace -e open" na akom subore sa to zasekne?
Je celkom mozne, ze sa to zaseklo na nejakej sietovej operacii (napr. nejaky
firewall, ktory DROPuje packety), ale aj tak by to po case malo skoncit
timeoutom. Ked to neskonci, tak to bude asi najskor nejaka chyba jadra.

> Az na locknutu sambu a nfs sa s desktopm da vcelku pracovat ;-)

No to mas este vcelku stastie. :-)

			SAL



Další informace o konferenci linux