-
Notifications
You must be signed in to change notification settings - Fork 11.7k
Closed
Description
- Laravel Version: 5.4.17
- PHP Version: 7.0
- Database Driver & Version: Aurora
Description:
Last night, each default DB queue daemon encountered a PDO connection refused error (these can occur on occasion within the AWS infrastructure). This left each daemon running, but in a useless state as any subsequent attempt to perform work resulted in an error attempting to invoke beginTransaction() on null. Restarting queues resolved issue.
Relevant stack traces follow:
Initial error (same error across every daemon instance)
Caused: PDOException SQLSTATE[HY000] [2002] Connection refused
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:43 PDO::__construct
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:43 Doctrine\DBAL\Driver\PDOConnection::__construct
vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:65 Illuminate\Database\Connectors\Connector::createPdoConnection
vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:43 Illuminate\Database\Connectors\Connector::createConnection
vendor/laravel/framework/src/Illuminate/Database/Connectors/MySqlConnector.php:24 Illuminate\Database\Connectors\MySqlConnector::connect
vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php:183 Illuminate\Database\Connectors\ConnectionFactory::Illuminate\Database\Connectors\{closure}
[internal] call_user_func
vendor/laravel/framework/src/Illuminate/Database/Connection.php:882 Illuminate\Database\Connection::getPdo
vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php:245 Illuminate\Database\DatabaseManager::refreshPdoConnections
vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php:231 Illuminate\Database\DatabaseManager::reconnect
vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php:165 Illuminate\Database\DatabaseManager::Illuminate\Database\{closure}
[internal] call_user_func
vendor/laravel/framework/src/Illuminate/Database/Connection.php:735 Illuminate\Database\Connection::reconnect
vendor/laravel/framework/src/Illuminate/Database/Concerns/ManagesTransactions.php:140 Illuminate\Database\Connection::handleBeginTransactionException
vendor/laravel/framework/src/Illuminate/Database/Concerns/ManagesTransactions.php:110 Illuminate\Database\Connection::createTransaction
vendor/laravel/framework/src/Illuminate/Database/Concerns/ManagesTransactions.php:92 Illuminate\Database\Connection::beginTransaction
vendor/laravel/framework/src/Illuminate/Queue/DatabaseQueue.php:192 Illuminate\Queue\DatabaseQueue::pop
vendor/laravel/framework/src/Illuminate/Queue/Worker.php:236 Illuminate\Queue\Worker::getNextJob
vendor/laravel/framework/src/Illuminate/Queue/Worker.php:101 Illuminate\Queue\Worker::daemon
vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php:100 Illuminate\Queue\Console\WorkCommand::runWorker
vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php:83 Illuminate\Queue\Console\WorkCommand::fire
[internal] call_user_func_array
vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:29 Illuminate\Container\BoundMethod::Illuminate\Container\{closure}
vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:87 Illuminate\Container\BoundMethod::callBoundMethod
vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:31 Illuminate\Container\BoundMethod::call
vendor/laravel/framework/src/Illuminate/Container/Container.php:531 Illuminate\Container\Container::call
vendor/laravel/framework/src/Illuminate/Console/Command.php:182 Illuminate\Console\Command::execute
vendor/symfony/console/Command/Command.php:265 Symfony\Component\Console\Command\Command::run
vendor/laravel/framework/src/Illuminate/Console/Command.php:167 Illuminate\Console\Command::run
vendor/symfony/console/Application.php:826 Symfony\Component\Console\Application::doRunCommand
vendor/symfony/console/Application.php:189 Symfony\Component\Console\Application::doRun
vendor/symfony/console/Application.php:120 Symfony\Component\Console\Application::run
vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php:123 Illuminate\Foundation\Console\Kernel::handle
artisan:36 [main]
Subsequent failures on every queue attempt to perform work
Symfony\Component\Debug\Exception\FatalThrowableError Call to a member function beginTransaction() on null
vendor/laravel/framework/src/Illuminate/Database/Concerns/ManagesTransactions.php:108 Illuminate\Database\Connection::createTransaction
vendor/laravel/framework/src/Illuminate/Database/Concerns/ManagesTransactions.php:92 Illuminate\Database\Connection::beginTransaction
vendor/laravel/framework/src/Illuminate/Queue/DatabaseQueue.php:192 Illuminate\Queue\DatabaseQueue::pop
vendor/laravel/framework/src/Illuminate/Queue/Worker.php:236 Illuminate\Queue\Worker::getNextJob
vendor/laravel/framework/src/Illuminate/Queue/Worker.php:101 Illuminate\Queue\Worker::daemon
vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php:100 Illuminate\Queue\Console\WorkCommand::runWorker
vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php:83 Illuminate\Queue\Console\WorkCommand::fire
[internal] call_user_func_array
vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:29 Illuminate\Container\BoundMethod::Illuminate\Container\{closure}
vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:87 Illuminate\Container\BoundMethod::callBoundMethod
vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:31 Illuminate\Container\BoundMethod::call
vendor/laravel/framework/src/Illuminate/Container/Container.php:531 Illuminate\Container\Container::call
vendor/laravel/framework/src/Illuminate/Console/Command.php:182 Illuminate\Console\Command::execute
vendor/symfony/console/Command/Command.php:265 Symfony\Component\Console\Command\Command::run
vendor/laravel/framework/src/Illuminate/Console/Command.php:167 Illuminate\Console\Command::run
vendor/symfony/console/Application.php:826 Symfony\Component\Console\Application::doRunCommand
vendor/symfony/console/Application.php:189 Symfony\Component\Console\Application::doRun
vendor/symfony/console/Application.php:120 Symfony\Component\Console\Application::run
vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php:123 Illuminate\Foundation\Console\Kernel::handle
artisan:36 [main]
Steps To Reproduce:
Unsure, but it seems simulating a connection failure during a queued job execution could recreate situation.
Metadata
Metadata
Assignees
Labels
No labels