Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Kostik Belousov                      2:5020/400     28 Dec 2005  20:02:42
 To : Eugene Grosbein
 Subject : Re: RE
 -------------------------------------------------------------------------------- 
 
 Eugene Grosbein <Eugene.Grosbein@f1.n5006.z2.fidonet.org> writes:
 
 > 28 дек 2005, среда, в 14:49 KRAST, Kostik Belousov написал(а):
 > 
 >  >>> http://www.freebsd.org/cgi/query-pr.cgi?pr=bin/64198
 >  >>> Секция How-To-Repeat.
 >  KB>> Ага, я видел. Все-таки - вывод trace или alltrace.
 >  KB>> И здорово было бы соорудить тест, воспроизводящий ядерную
 >  KB>> проблему без init'a.
 >  >> А почему без init'а?
 >  KB> init не убить и не потрассировать. init делает много чего.
 > 
 > А зачем трассировать init? Логика его в PR описана, исходники есть -
 > он же просто fork+exec делает, все остальное уже приложение
 > запущенное и ядро.
 > 
 >  KB> Описанный в PR setup требует перезагрузки на каждое воспроизведение
 >  KB> проблемы.
 >  KB> Кроме того, одно дело запустить exeшник и посмотреть, другое -
 >  KB> править конфиги на (нужной) машине.
 > 
 > Hу разумеется, это делать надо на небоевой машине.
 > И необязательно перезагружаться на каждое вопспроизведение - консолей
 > много, штук 20 можно выделить под отладку, потом только
 > перезагружаться. 20 воспроизведений это много.
 > 
 > Eugene
 
 Ладно, я не поленился. У тебя в PR анализ правильный,
 но fix (который на словах) - нет. Тот процесс, который window,
 не ребенок init'a, и поэтому waitpid в init'е его и не собирает.
 
 Про странное состояние RE - скорее всего, проблем(ка) ps.
 Рассматривание struct proc у зомби stty ничего странного
 не выявило, структура живет в zombproc, p_state == PRS_ZOMBIE.
 
 Попробуй патч:
 
 Index: sbin/init/init.c
 ===================================================================
 RCS file: /usr/local/arch/ncvs/src/sbin/init/init.c,v
 retrieving revision 1.61
 diff -u -r1.61 init.c
 - --- sbin/init/init.c 15 Sep 2005 13:16:07 -0000  1.61
 +++ sbin/init/init.c  28 Dec 2005 15:56:06 -0000
 @@ -1066,6 +1066,7 @@
    pid_t pid;
    sigset_t mask;
    char term[64], *env[2];
 +  int status;
  
    if ((pid = fork()) == -1) {
       emergency("can't fork for window system on port %s: %m",
 @@ -1073,9 +1074,20 @@
       /* hope that getty fails and we can try again */
       return;
    }
 -
    if (pid)
 +  {
 +     waitpid(-1, &status, 0);
       return;
 +  }
 +
 +  /* reparent window process to the init to not make a zombie on exit */
 +  if ((pid = fork()) == -1) {
 +     emergency("can't fork for window system on port %s: %m",
 +      sp->se_device);
 +     _exit(1);
 +  }
 +  if (pid)
 +     _exit(0);
  
    sigemptyset(&mask);
    sigprocmask(SIG_SETMASK, &mask, (sigset_t *) 0);
 --- ifmail v.2.15dev5.3
  * Origin: The excellent-installed InterNetNews site (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: RE   Kostik Belousov   28 Dec 2005 20:02:42 
Архивное /ru.unix.bsd/28756310c26f3.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional