Skip to content

Workers crash when queue is empty #2

@guice

Description

@guice

After queue is completed, workers commit suicide:

PHP Warning:  Redis::hSet() expects parameter 2 to be string, object given in /var/www/track/vendor/drealecs/thread-worker/lib/ThreadWorker/RedisQueue.php on line 77
PHP Stack trace:
PHP   1. {main}() /var/www/track/public/worker.php:0
PHP   2. ThreadWorker\RemoteExecutor->work() /var/www/track/public/worker.php:12
PHP   3. ThreadWorker\RemoteExecutor->startTask() /var/www/track/vendor/drealecs/thread-worker/lib/ThreadWorker/RemoteExecutor.php:23
PHP   4. ThreadWorker\RedisQueue->start() /var/www/track/vendor/drealecs/thread-worker/lib/ThreadWorker/RemoteExecutor.php:34
PHP   5. Redis->hSet() /var/www/track/vendor/drealecs/thread-worker/lib/ThreadWorker/RedisQueue.php:77

Warning: Redis::hSet() expects parameter 2 to be string, object given in /var/www/track/vendor/drealecs/thread-worker/lib/ThreadWorker/RedisQueue.php on line 77

Call Stack:
    0.0003     223992   1. {main}() /var/www/track/public/worker.php:0
    0.0075     494360   2. ThreadWorker\RemoteExecutor->work() /var/www/track/public/worker.php:12
   21.0271     533904   3. ThreadWorker\RemoteExecutor->startTask() /var/www/track/vendor/drealecs/thread-worker/lib/ThreadWorker/RemoteExecutor.php:23
   21.0271     533904   4. ThreadWorker\RedisQueue->start() /var/www/track/vendor/drealecs/thread-worker/lib/ThreadWorker/RemoteExecutor.php:34
   54.3804     534472   5. Redis->hSet() /var/www/track/vendor/drealecs/thread-worker/lib/ThreadWorker/RedisQueue.php:77

PHP Warning:  Redis::hGet() expects parameter 2 to be string, object given in /var/www/track/vendor/drealecs/thread-worker/lib/ThreadWorker/RedisQueue.php on line 79
PHP Stack trace:
PHP   1. {main}() /var/www/track/public/worker.php:0
PHP   2. ThreadWorker\RemoteExecutor->work() /var/www/track/public/worker.php:12
PHP   3. ThreadWorker\RemoteExecutor->startTask() /var/www/track/vendor/drealecs/thread-worker/lib/ThreadWorker/RemoteExecutor.php:23
PHP   4. ThreadWorker\RedisQueue->start() /var/www/track/vendor/drealecs/thread-worker/lib/ThreadWorker/RemoteExecutor.php:34
PHP   5. Redis->hGet() /var/www/track/vendor/drealecs/thread-worker/lib/ThreadWorker/RedisQueue.php:79

Warning: Redis::hGet() expects parameter 2 to be string, object given in /var/www/track/vendor/drealecs/thread-worker/lib/ThreadWorker/RedisQueue.php on line 79

Call Stack:
    0.0003     223992   1. {main}() /var/www/track/public/worker.php:0
    0.0075     494360   2. ThreadWorker\RemoteExecutor->work() /var/www/track/public/worker.php:12
   21.0271     533904   3. ThreadWorker\RemoteExecutor->startTask() /var/www/track/vendor/drealecs/thread-worker/lib/ThreadWorker/RemoteExecutor.php:23
   21.0271     533904   4. ThreadWorker\RedisQueue->start() /var/www/track/vendor/drealecs/thread-worker/lib/ThreadWorker/RemoteExecutor.php:34
   54.3805     534416   5. Redis->hGet() /var/www/track/vendor/drealecs/thread-worker/lib/ThreadWorker/RedisQueue.php:79

PHP Catchable fatal error:  Argument 1 passed to ThreadWorker\RemoteTask::__construct() must be an instance of ThreadWorker\Task, boolean given, called in /var/www/track/vendor/drealecs/thread-worker/lib/ThreadWorker/RedisQueue.php on line 82 and defined in /var/www/track/vendor/drealecs/thread-worker/lib/ThreadWorker/RemoteTask.php on line 26
PHP Stack trace:
PHP   1. {main}() /var/www/track/public/worker.php:0
PHP   2. ThreadWorker\RemoteExecutor->work() /var/www/track/public/worker.php:12
PHP   3. ThreadWorker\RemoteExecutor->startTask() /var/www/track/vendor/drealecs/thread-worker/lib/ThreadWorker/RemoteExecutor.php:23
PHP   4. ThreadWorker\RedisQueue->start() /var/www/track/vendor/drealecs/thread-worker/lib/ThreadWorker/RemoteExecutor.php:34
PHP   5. ThreadWorker\RemoteTask->__construct() /var/www/track/vendor/drealecs/thread-worker/lib/ThreadWorker/RedisQueue.php:82

Catchable fatal error: Argument 1 passed to ThreadWorker\RemoteTask::__construct() must be an instance of ThreadWorker\Task, boolean given, called in /var/www/track/vendor/drealecs/thread-worker/lib/ThreadWorker/RedisQueue.php on line 82 and defined in /var/www/track/vendor/drealecs/thread-worker/lib/ThreadWorker/RemoteTask.php on line 26

Call Stack:
    0.0003     223992   1. {main}() /var/www/track/public/worker.php:0
    0.0075     494360   2. ThreadWorker\RemoteExecutor->work() /var/www/track/public/worker.php:12
   21.0271     533904   3. ThreadWorker\RemoteExecutor->startTask() /var/www/track/vendor/drealecs/thread-worker/lib/ThreadWorker/RemoteExecutor.php:23
   21.0271     533904   4. ThreadWorker\RedisQueue->start() /var/www/track/vendor/drealecs/thread-worker/lib/ThreadWorker/RemoteExecutor.php:34
   54.3806     534512   5. ThreadWorker\RemoteTask->__construct() /var/www/track/vendor/drealecs/thread-worker/lib/ThreadWorker/RedisQueue.php:82

Actually, can't exactly pin-point the exact instance this occurs. It used to happen all the time after the queue finished processing... but now it's not erroring. hrmm.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions