richard@gorbutt.com's avatar

Upgraded to 5.6 and having Horizon issues

So, upgraded my app to 5.6 which was ok, but noticed my redis queues were having issues. This gets logged every few minutes.

[2018-02-08 03:03:06] local.ERROR: Error while reading line from the server. [tcp://127.0.0.1:6379] {"exception":"[object] (Predis\Connection\ConnectionException(code: 0): Error while reading line from the server. [tcp://127.0.0.1:6379] at /Users/richard/Sites/app-hidden/vendor/predis/predis/src/Connection/AbstractConnection.php:155)
[stacktrace]
#0 /Users/richard/Sites/app-hidden/vendor/predis/predis/src/Connection/StreamConnection.php(314): Predis\Connection\AbstractConnection->onConnectionError('Error while rea...')
#1 /Users/richard/Sites/app-hidden/vendor/predis/predis/src/Connection/AbstractConnection.php(120): Predis\Connection\StreamConnection->read()
#2 /Users/richard/Sites/app-hidden/vendor/predis/predis/src/Connection/AbstractConnection.php(112): Predis\Connection\AbstractConnection->readResponse(Object(Predis\Command\ListPopFirstBlocking))
#3 /Users/richard/Sites/app-hidden/vendor/predis/predis/src/Client.php(331): Predis\Connection\AbstractConnection->executeCommand(Object(Predis\Command\ListPopFirstBlocking))
#4 /Users/richard/Sites/app-hidden/vendor/predis/predis/src/Client.php(314): Predis\Client->executeCommand(Object(Predis\Command\ListPopFirstBlocking))
#5 /Users/richard/Sites/app-hidden/vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php(96): Predis\Client->__call('blpop', Array)
#6 /Users/richard/Sites/app-hidden/vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php(108): Illuminate\Redis\Connections\Connection->command('blpop', Array)
#7 /Users/richard/Sites/app-hidden/vendor/laravel/framework/src/Illuminate/Queue/RedisQueue.php(230): Illuminate\Redis\Connections\Connection->__call('blpop', Array)
#8 /Users/richard/Sites/app-hidden/vendor/laravel/framework/src/Illuminate/Queue/RedisQueue.php(213): Illuminate\Queue\RedisQueue->blockingPop('queues:default')
#9 /Users/richard/Sites/app-hidden/vendor/laravel/framework/src/Illuminate/Queue/RedisQueue.php(165): Illuminate\Queue\RedisQueue->retrieveNextJob('queues:default')
#10 /Users/richard/Sites/app-hidden/vendor/laravel/horizon/src/RedisQueue.php(92): Illuminate\Queue\RedisQueue->pop('default')
#11 /Users/richard/Sites/app-hidden/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(246): Laravel\Horizon\RedisQueue->pop('default')
#12 /Users/richard/Sites/app-hidden/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(107): Illuminate\Queue\Worker->getNextJob(Object(Laravel\Horizon\RedisQueue), 'default')
#13 /Users/richard/Sites/app-hidden/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(101): Illuminate\Queue\Worker->daemon('redis', 'default', Object(Illuminate\Queue\WorkerOptions))
#14 /Users/richard/Sites/app-hidden/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(85): Illuminate\Queue\Console\WorkCommand->runWorker('redis', 'default')
#15 [internal function]: Illuminate\Queue\Console\WorkCommand->handle()
#16 /Users/richard/Sites/app-hidden/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(29): call_user_func_array(Array, Array)
#17 /Users/richard/Sites/app-hidden/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(87): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
#18 /Users/richard/Sites/app-hidden/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(31): Illuminate\Container\BoundMethod::callBoundMethod(Object(Illuminate\Foundation\Application), Array, Object(Closure))
#19 /Users/richard/Sites/app-hidden/vendor/laravel/framework/src/Illuminate/Container/Container.php(564): Illuminate\Container\BoundMethod::call(Object(Illuminate\Foundation\Application), Array, Array, NULL)
#20 /Users/richard/Sites/app-hidden/vendor/laravel/framework/src/Illuminate/Console/Command.php(183): Illuminate\Container\Container->call(Array)
#21 /Users/richard/Sites/app-hidden/vendor/symfony/console/Command/Command.php(252): Illuminate\Console\Command->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle))
#22 /Users/richard/Sites/app-hidden/vendor/laravel/framework/src/Illuminate/Console/Command.php(170): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle))
#23 /Users/richard/Sites/app-hidden/vendor/symfony/console/Application.php(865): Illuminate\Console\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#24 /Users/richard/Sites/app-hidden/vendor/symfony/console/Application.php(241): Symfony\Component\Console\Application->doRunCommand(Object(Laravel\Horizon\Console\WorkCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#25 /Users/richard/Sites/app-hidden/vendor/symfony/console/Application.php(143): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#26 /Users/richard/Sites/app-hidden/vendor/laravel/framework/src/Illuminate/Console/Application.php(88): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#27 /Users/richard/Sites/app-hidden/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(121): Illuminate\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#28 /Users/richard/Sites/app-hidden/artisan(37): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#29 {main}
"} 

I've updated redis per homebrew etc and this still persists when Horizon is running. Having deployed the app to my Forge test server the queues/horizon and same issue. I've flushed the redis DB as well.

Anyone any thoughts?

0 likes
3 replies
richard@gorbutt.com's avatar

I rolled back to laravel 5.5, that alone didn't stop it, but when I rolled Horizon back to 1.0.9 it seems to have stopped the errors!

richard@gorbutt.com's avatar

Took Horizon back to v1.1.1 and all was stable.

Re-upgraded to Laravel 5.6 and issue came back. Curious if any other Redis user who upgrades sees this. Thanks

richard@gorbutt.com's avatar
Level 2

This was indeed a bug and was resolved in Laravel Horizon v1.2.1.

Details can be found here, thanks to those who did the deep dive on the code and know Redis well.

I updated this thread so it's preserved for those that find this on a search.

1 like

Please or to participate in this conversation.