Queue bug, Has not waited the lock (even though the queue table is empty)

Hi, I’ve got a Cron task running for Yii2 queues which, since now, seemed to work well. But it started giving the same error repeatedly :

yii\base\Exception: Has not waited the lock. in /.../vendor/yiisoft/yii2-queue/src/drivers/db/Queue.php:178
Stack trace:
#0 [internal function]: yii\queue\db\Queue->yii\queue\db\{closure}(Object(yii\db\Connection))
#1 /.../application/vendor/yiisoft/yii2/db/Connection.php(1129): call_user_func(Object(Closure), Object(yii\db\Connection))
#2 /.../application/vendor/yiisoft/yii2-queue/src/drivers/db/Queue.php(212): yii\db\Connection->useMaster(Object(Closure))
#3 /.../application/vendor/yiisoft/yii2-queue/src/drivers/db/Queue.php(78): yii\queue\db\Queue->reserve()
#4 [internal function]: yii\queue\db\Queue->yii\queue\db\{closure}(Object(Closure))
#5 /.../application/vendor/yiisoft/yii2-queue/src/cli/Queue.php(117): call_user_func(Object(Closure), Object(Closure))
#6 /.../application/vendor/yiisoft/yii2-queue/src/drivers/db/Queue.php(93): yii\queue\cli\Queue->runWorker(Object(Closure))
#7 /.../application/vendor/yiisoft/yii2-queue/src/drivers/db/Command.php(56): yii\queue\db\Queue->run(false)
#8 [internal function]: yii\queue\db\Command->actionRun()
#9 /.../application/vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array(Array, Array)
#10 /.../application/vendor/yiisoft/yii2/base/Controller.php(178): yii\base\InlineAction->runWithParams(Array)
#11 /.../application/vendor/yiisoft/yii2/console/Controller.php(182): yii\base\Controller->runAction('run', Array)
#12 /.../application/vendor/yiisoft/yii2/base/Module.php(552): yii\console\Controller->runAction('run', Array)
#13 /.../application/vendor/yiisoft/yii2/console/Application.php(180): yii\base\Module->runAction('queue/run', Array)
#14 /.../application/vendor/yiisoft/yii2/console/Application.php(147): yii\console\Application->runAction('queue/run', Array)
#15 /.../application/vendor/yiisoft/yii2/base/Application.php(384): yii\console\Application->handleRequest(Object(yii\console\Request))
#16 /.../application/yii(25): yii\base\Application->run()
#17 {main}

The error occurs even if the queue table is empty.

I have no idea why it started happening.

If you know anything about this error, feel free to help me here.

Thank you.

1 Like

Probably mutextTimeout issue. show your queue configuration.

Do you think it could come from MysqlMutex ?
mutex