Re: Co s neKILLnutelnym procesem?
d.petr
d.petr na post.cz
Úterý Listopad 29 12:50:06 CET 2011
Odpovídám takto na níže uvedenou zprávu, protože už 2 normální odpovědi se mi nějak ztratily cestou a do konference nedorazily.
> ------------ Původní zpráva ------------
> Od: Libor Chocholaty <libor_ml1 na mts.cz>
> ----------------------------------------
> On 11/29/2011 09:18 AM, d.petr wrote:
> > Dobrý den,
> > projevila se mi opakovatelná zvláštnost - proces, který nejde KILLnout.
> Víte-li někdo, co s tím, rád se poučím.
> >
> > Jak k tomu dochází:
> > Na svém ARM spustím z 'mc' program s defaultovou prioritou (tzn. spustí se
> 'sh' a ten program). Program si otevře 2 vlákna s prioritou RT. Jedno z těch
> RT-vláken se pokusí o přístup do paměti mimo prostor programu. Tím způsobí
> chybu, kterou by, dle mého, mělo jádro vyřešit zlikvidováním všech vláken
> programu, po té by se ukončil 'sh' a obnovil 'mc'. To se ovšem nestane.
> >
> > Následky:
> > Jsou ukončena obě RT-vlákna. Zůstane však původní hlavní vlákno programu
> (sleduji programem 'top -H'; PID patří původnímu hlavnímu vláknu, další hodnoty
> jsou PR=20, NI=0, VIRT=RES=SHR=0, S="S", %CPU=%MEM=0). Toto vlákno tedy zřejmě
> neběží, uvolní veškerou paměť, bohužel ale ne např. obsazený port UDP (hlavní
> vlákno při spuštění otevřelo serverovou stranu komunikace UDP).
> > A tento pozůstatek programu nejde KILLnout ani v 'top', ani příkazem killall,
> ani 'kill PID', ani použitím 'kill -9 PID' (všechny pokusy o zničení spouštím
> jako root, program byl také spuštěn rootem). Odstranit ho umím pouze restartem
> celého stroje.
> >
> > Ví někdo, jak na podobného nezmara?
>
> Nebylo by vhodne doplnit nezmara o uvolneni socketu v pripade padu vlakna?
> Libor
A myslíte, že nezmar je schopen něco v tu chvíli, nebo později, udělat? Na mě působí dojmem, že je jádrem odstaven a stal se z něj "nemrtvý".
Pokud ten program normálně pracuje, dá se ukončit CTRL+C, killall apod., přitom skončí všechna vlákna a vše se správně uvolní. Ale v popsaném případě prostě zůstane divně nefunkční.
PM
Další informace o konferenci Linux