XF 2.1 Deadlock found when trying to get lock; try restarting transaction (Дедлоки)

Версия XenForo
2.1.5a

MxR

Проверенные
Сообщения
359
Решения
2
Реакции
387
Баллы
5,575
Добрый день.
Сегодня получил пару десятков подобных ошибок, "дедлоков".
В чем может быть причина данных ошибок? Каковы последствия.

XF\Db\DeadlockException: MySQL query error [1213]: Deadlock found when trying to get lock; try restarting transaction src/XF/Db/AbstractStatement.php:228
Код:
Трассировка стека
DELETE  FROM `xf_user_remember` WHERE user_id = ? AND expiry_date <= ?
------------

#0 src/XF/Db/Mysqli/Statement.php(196): XF\Db\AbstractStatement->getException('MySQL query err...', 1213, '40001')
#1 src/XF/Db/Mysqli/Statement.php(77): XF\Db\Mysqli\Statement->getException('MySQL query err...', 1213, '40001')
#2 src/XF/Db/AbstractAdapter.php(94): XF\Db\Mysqli\Statement->execute()
#3 src/XF/Db/AbstractAdapter.php(289): XF\Db\AbstractAdapter->query('DELETE  FROM `x...', Array)
#4 src/XF/Repository/UserRemember.php(105): XF\Db\AbstractAdapter->delete('xf_user_remembe...', 'user_id = ? AND...', Array)
#5 src/XF/Entity/UserRemember.php(89): XF\Repository\UserRemember->applyUserRememberRecordLimit(30718)
#6 src/XF/Mvc/Entity/Entity.php(1208): XF\Entity\UserRemember->_postSave()
#7 src/XF/Repository/UserRemember.php(15): XF\Mvc\Entity\Entity->save()
#8 src/XF/ControllerPlugin/Login.php(245): XF\Repository\UserRemember->createRememberRecord(30718)
#9 src/XF/ControllerPlugin/Login.php(182): XF\ControllerPlugin\Login->createVisitorRememberKey()
#10 src/XF/Pub/Controller/Login.php(117): XF\ControllerPlugin\Login->completeLogin(Object(XenConcept\UsernameChange\XF\Entity\User), true)
#11 src/XF/Mvc/Dispatcher.php(350): XF\Pub\Controller\Login->actionLogin(Object(XF\Mvc\ParameterBag))
#12 src/XF/Mvc/Dispatcher.php(257): XF\Mvc\Dispatcher->dispatchClass('XF:Login', 'Login', Object(XF\Mvc\RouteMatch), Object(xenMade\SEO\XF\Pub\Controller\Login), NULL)
#13 src/XF/Mvc/Dispatcher.php(113): XF\Mvc\Dispatcher->dispatchFromMatch(Object(XF\Mvc\RouteMatch), Object(xenMade\SEO\XF\Pub\Controller\Login), NULL)
#14 src/XF/Mvc/Dispatcher.php(55): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#15 src/XF/App.php(2184): XF\Mvc\Dispatcher->run()
#16 src/XF.php(391): XF\App->run()
#17 index.php(20): XF::runApp('XF\\Pub\\App')
#18 {main}
Код:
array(4) {
  ["url"] => string(12) "/login/login"
  ["referrer"] => string(24) "https://site.ltd/login/"
  ["_GET"] => array(1) {
    ["/login/login"] => string(0) ""
  }
  ["_POST"] => array(5) {
    ["login"] => string(6) "Login"
    ["password"] => string(8) "**************"
    ["remember"] => string(1) "1"
    ["_xfRedirect"] => string(1) "/"
    ["_xfToken"] => string(8) "**************"
  }
}
 
Майк, один из разработчиков xf, на оф форуме пишет, что если дедлоки возникают не часто, то это не страшно, иначе же узкое место нужно искать в настройках сервера (оптимизировать MySQL или даже переходить на более дорогие тарифные планы своего хостера). У меня такое бывает при каких-то нагруженных операциях, типа массового удаления старых аккаунтов или переноса больших тем.
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу