Страница 1 из 4

Остановлен главный цикл

Добавлено: Вс мар 01, 2015 2:29 pm
Amarok
Вот уже несколько дней на ровном месте останавливается главный цикл системы. В логах ошибок не нахожу. Авторестарт не срабатывает. :|

Re: Остановлен главный цикл

Добавлено: Вс мар 01, 2015 3:46 pm
Vit
у меня тоже чет стал падать именно он

Re: Остановлен главный цикл

Добавлено: Вс мар 01, 2015 11:45 pm
sergejey
Запустите его отдельно. Если авторестарт не срабатывает, значит цикл не закрывается, а зависает на чём-то. Я так думаю, что он может зависать на чём-то, что выполняется в методах onNewHour или onNewMinute, больше никакого пользовательского кода он не вызывает.

Re: Остановлен главный цикл

Добавлено: Пн мар 02, 2015 4:38 pm
dmw
Поборол у себя.
Цикл зависает если в ваших скриптах используется file_get_contents() для обращения к веб-содержимому и при этом он долго не может получить ответ.
решил установкой таймаута для данной функции

Код: Выделить всё

function file_get_content_timeout($URL, $timeout = 5){
    if(strpos($URL,"://")===false) return file_get_contents($URL);
    if(!function_exists("curl_init")) return false;
    $session=curl_init($URL);
    curl_setopt($session,CURLOPT_MUTE,true);
    curl_setopt($session,CURLOPT_RETURNTRANSFER,true);
    curl_setopt($session,CURLOPT_CONNECTTIMEOUT,$timeout);
    curl_setopt($session,CURLOPT_TIMEOUT,$timeout);
    curl_setopt($session,CURLOPT_USERAGENT,"Mozilla/5.0 (compatible)");
    $result=curl_exec($session);
    curl_close($session);
    return $result;
}
Везде заменил file_get_contents("blog.warhour.ru");
на file_get_content_timeout ("blog.warhour.ru", 10); // таймаут 10 сек (если не указывать то по умолчанию 5 сек)
В моем случае вроде отлегло, пока наблюдаю.

Re: Остановлен главный цикл

Добавлено: Пн мар 02, 2015 5:37 pm
Amarok
А я отключил 5 секундный цикл. Хотя с ним сколько месяцев работало...

Re: Остановлен главный цикл

Добавлено: Ср мар 04, 2015 3:13 pm
mirsum
Я как в консоли запустил увидел что тормозится при попытке что-то произнести alsa....., оказалось преобразователь dc-dc как-то некорректно питал pcduino и внешний звуковой свисток подключен через usb был не запитан, не хватало тока наверное.

Re: Остановлен главный цикл

Добавлено: Чт мар 05, 2015 5:30 am
Amarok
BlackWarrior писал(а):А я отключил 5 секундный цикл. Хотя с ним сколько месяцев работало...
И всё равно виснет(

Re: Остановлен главный цикл

Добавлено: Чт мар 05, 2015 5:45 am
dmw
Можно создать для класса Computer свойство cycle_mainRun с периудом хранения истории 1 день.
И понаблюдать как часто обновляется ThisComputer.cycle_mainRun. Сразу будет понятно какая периодичность симптома раз в 5 минут, 15 или 30, или еще как. По нему и будет понятно какой ваш скрипт вызываемый из onNewMinute и onNewHour виноват.

Re: Остановлен главный цикл

Добавлено: Чт мар 05, 2015 6:39 am
Amarok
Спасибо, понаблюдаю

Re: Остановлен главный цикл

Добавлено: Вс мар 08, 2015 7:47 am
Amarok

Код: Выделить всё

ThisComputer.cycle_pingRun    1425790000     2015-03-08 09:46:40 
ThisComputer.cycle_schedulerRun    1425754800     2015-03-08 00:00:00 
ThisComputer.cycle_narodmonRun    1406095174     2014-11-08 12:56:12 
Отпадывает шедулер... Хм.