Co s neKILLnutelnym procesem?

Libor Chocholaty libor_ml1 na mts.cz
Úterý Listopad 29 13:17:50 CET 2011


On 11/29/2011 12:50 PM, d.petr wrote:
> 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í.

A ma to obsluhu SIGPIPE a SIGCHLD?

Libor


> PM
> _______________________________________________
> Linux mailing list
> Linux na linux.cz
> http://www.linux.cz/mailman/listinfo/linux
>



Další informace o konferenci Linux