Зависание воркера phpd при длительной оставке

92 views
Skip to first unread message

Матыгулин Валерий

unread,
Aug 25, 2016, 3:06:56 AM8/25/16
to phpdaemon
Если onShutdown приложения не позволяет завершиться с первого раза, то процесс "зависает" с бесконечным вызовом epoll_wait, или падает с fatal error 


В репозитории https://github.com/Provoker/phpdaemon-docker/ пример для вызова проблемы.
Воспроизвести через docker, после копирования репозитория, можно так:
docker build -t phpd .
docker run
-ti --rm phpd /bin/bash
/usr/share/phpdaemon/bin/phpd start; /usr/share/phpdaemon/bin/phpd stop; /usr/share/phpdaemon/bin/phpd log


Ошибка, возникающая при остановке:
Notice: Undefined property: PHPDaemon\Thread\Worker::$loop in /usr/share/phpdaemon/PHPDaemon/Thread/Worker.php:587
#1  PHPDaemon\Core\Daemon::errorHandler() called at [/usr/share/phpdaemon/PHPDaemon/Thread/Worker.php:587]
#2  PHPDaemon\Thread\Worker->PHPDaemon\Thread\{closure}() called at [/usr/share/phpdaemon/PHPDaemon/Core/Timer.php:187]
#3  PHPDaemon\Core\Timer->eventCall()
#4  EventBase->dispatch() called at [/usr/share/phpdaemon/PHPDaemon/Core/EventLoop.php:149]
#5  PHPDaemon\Core\EventLoop->run() called at [/usr/share/phpdaemon/PHPDaemon/Thread/Worker.php:591]
#6  PHPDaemon\Thread\Worker->shutdown() called at [/usr/share/phpdaemon/PHPDaemon/Thread/Worker.php:216]
#7  PHPDaemon\Thread\Worker->run() called at [/usr/share/phpdaemon/PHPDaemon/Thread/Generic.php:146]
#8  PHPDaemon\Thread\Generic->__invoke() called at [/usr/share/phpdaemon/bin/phpd:71]

Fatal error примерно такой:
W#28913 crashed by error 'Uncaught Error: Call to a member function stop() on null in /usr/share/phpdaemon/PHPDaemon/Thread/Worker.php:587
Stack trace:
#0 /usr/share/phpdaemon/PHPDaemon/Core/Timer.php(187): PHPDaemon\Thread\Worker->PHPDaemon\Thread\{closure}(Object(PHPDaemon\Core\Timer))
#1 [internal function]: PHPDaemon\Core\Timer->eventCall(NULL)
#2 /usr/share/phpdaemon/PHPDaemon/Core/EventLoop.php(149): EventBase->dispatch()
#3 /usr/share/phpdaemon/PHPDaemon/Thread/Worker.php(591): PHPDaemon\Core\EventLoop->run()
#4 /usr/share/phpdaemon/PHPDaemon/Thread/Worker.php(216): PHPDaemon\Thread\Worker->shutdown()
#5 /usr/share/phpdaemon/PHPDaemon/Thread/Generic.php(146): PHPDaemon\Thread\Worker->run()
#6 /usr/share/phpdaemon/bin/phpd(71): PHPDaemon\Thread\Generic->__invoke()
#7 {main} thrown' at /usr/share/phpdaemon/PHPDaemon/Thread/Worker.php:587

Матыгулин Валерий

unread,
Sep 8, 2016, 7:56:59 AM9/8/16
to phpdaemon
Исправление этих ошибок: https://github.com/kakserpom/phpdaemon/pull/267

четверг, 25 августа 2016 г., 12:06:56 UTC+5 пользователь Матыгулин Валерий написал:
Reply all
Reply to author
Forward
0 new messages