[devel] q: installer: Killing all remaining processes (forever)

Stanislav Ievlev =?iso-8859-1?q?inger_=CE=C1_altlinux=2Eorg?=
Вт Апр 8 10:32:38 MSD 2008


Когда будете делать новые патчи - оповестите откуда брать.

Текущая версия по идее уже не выдаёт kernel panic, но неотмонтированный
/mnt/destination/dev всё ещё остаётся .

On Mon, Apr 07, 2008 at 09:07:02PM +0400, Dmitry V. Levin wrote:
> On Mon, Apr 07, 2008 at 08:58:35PM +0400, Evgeny Sinelnikov wrote:
> > 2008/4/7 Dmitry V. Levin <ldv на altlinux.org>:
> > > On Mon, Apr 07, 2008 at 08:38:41PM +0400, Evgeny Sinelnikov wrote:
> > >  [...]
> > >
> > > > Да, это результат вольной интерпретации того, как я понял глубокий
> > >  > сакральный смысл make_sparse :) Тем не менее проблема оказалась в том,
> > >  > что loop_change_fd() приводил к Segfault'у на тестах... Причины
> > >  > довольно были туманны... Не у всех, но иногда так получается... Но на
> > >  > виртуальной машине фиксированный образ у меня давал 100%
> > >  > повторяемость... В итоге было предположено, что после kill(-1,
> > >  > SIGKILL) не все процессы умирают.... Нет, ну, они конечно умирают, но
> > >  > не все сразу... Поэтому нужно дождаться сигнала ECHILD. Это решило
> > >  > проблему отмонтирования для /mnt/destination/dev.
> > >
> > >  К сожалению, коммит dee964d8b6da86bd575749d3631d41a013bbad7e создаёт
> > >  новый race.  Но идея безусловно правильная, надо будет реализовать.
> > 
> > А можно по подробнее? В чём проявляется новый race? На вид
> > sig_atomic_t должен решать все проблемы...
> 
> while(!got_echild) pause();
> между проверкой
> (!got_echild)
> и вызовом
> pause();
> может прийти сигнал, и тогда init зависнет.
> 
> К сожалению, понять, все ли процессы, которым выслали SIGKILL, могут быть
> завершены, нереально.  Боюсь что sleep(1) будет проще.
> 
> 
> -- 
> ldv



> _______________________________________________
> Devel mailing list
> Devel на lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel




Подробная информация о списке рассылки Devel