[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