Автор Тема: зависание fork...  (Прочитано 2337 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн commander

  • Developer
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1298
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.webtips.ru
зависание fork...
« : 21 Сентября 2005, 10:32:32 »
вопросик такой:
есть скриптик примерно такой:

#!/usr/bin/perl
use strict;
my $NI=0;
my $Nq=0;

my $num_th=36;

while (1)
{
....................................................
....................................................

   my @Data_link=th_values(\\@links, $num_th);
   while ($Data_link[$NI])
      {
      my $PID = fork();
      if ($PID == 0) { scan_fs($Data_link[$NI]); exit(); }
      $NI++
      }
      $SIG{\'HANDLER\'} = \\&sig_handler();
     
....................................................
....................................................

      my @Data=th_values(\\@forums_id, $num_th);

      while ($Data[$Nq])
      {
      my $PID = fork();
      if ($PID == 0) { spider_fork($Data[$Nq]); exit(); }
      $Nq++
      }
      $SIG{\'HANDLER\'} = \\&sig_handler1();

 sleep 400;
}
sub sig_handler()
{
wait();
$NI--;
if ($NI==0) { return 1; }
}

sub sig_handler1()
{
wait();
$Nq--;
if ($Nq==0){return 1;}
}

sub signal_catcher
{
wait();
}


scan_fs и  spider_fork парсят некоторые html_ки и пишут в БД (PostgreSQL) результаты... в течении одного дня все замечательно... потом ситуация следующая: процессы висят и даже их деятельность показываеться (top) но в БД новых записей не появляеться и в логах тоже все чисто... в чем может быть проблемма... ?
And no religion too...

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
зависание fork...
« Ответ #1 : 21 Сентября 2005, 13:34:56 »
1) обложить все дебагом.
2) читать логи БД
3) приведенный код не дает представления где может быть ошибка так как все вертится в while (1) и нет выхода из него.
The documentations is your friend

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
зависание fork...
« Ответ #2 : 21 Сентября 2005, 13:35:32 »
Кстати, а сколько детей висит в этот период?
The documentations is your friend

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28