SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock

  • Affected App
    WoltLab Suite Core

    Hallo,

    Wurde heute wieder auf einen Fehler aufmerksam (einmalig) aber möglicherweise ein race condition:

    Requested URL
    /thread/13534-abluft-zu-laut/?postID=329868
    Referrer
    https://domain.tld/thread/13534-abluft-zu-laut/?postID=329875
    WoltLab Suite
    5.2.6
    PHP
    7.4.7
    Error Message
    Could not execute statement 'DELETE FROM wcf1_user_notification_to_user WHERE notificationID NOT IN ( SELECT notificationID FROM wcf1_user_notification WHERE confirmTime = ? )'
    Type
    wcf\system\database\exception\DatabaseQueryExecutionException
    File (Line)
    /var/www/domain.tld/public/cms/lib/system/database/statement/PreparedStatement.class.php (105)
    Query Parameter 1
    0
    Stacktrace
    1. /var/www/domain.tld/public/cms/lib/system/user/notification/UserNotificationHandler.class.php (856): wcf\system\database\statement\PreparedStatement->execute(…)
    2. /var/www/domain.tld/public/lib/data/thread/ThreadAction.class.php (424): wcf\system\user\notification\UserNotificationHandler->markAsConfirmed(…)
    3. [internal function] (?): wbb\data\thread\ThreadAction->markAsRead(…)
    4. /var/www/domain.tld/public/cms/lib/data/AbstractDatabaseObjectAction.class.php (205): call_user_func(…)
    5. /var/www/domain.tld/public/lib/page/AbstractThreadPage.class.php (324): wcf\data\AbstractDatabaseObjectAction->executeAction(…)
    6. /var/www/domain.tld/public/lib/page/AbstractThreadPage.class.php (179): wbb\page\AbstractThreadPage->updateThreadVisit(…)
    7. /var/www/domain.tld/public/lib/page/ThreadPage.class.php (62): wbb\page\AbstractThreadPage->readData(…)
    8. /var/www/domain.tld/public/cms/lib/page/AbstractPage.class.php (291): wbb\page\ThreadPage->readData(…)
    9. /var/www/domain.tld/public/cms/lib/page/AbstractPage.class.php (114): wcf\page\AbstractPage->show(…)
    10. /var/www/domain.tld/public/cms/lib/system/request/Request.class.php (83): wcf\page\AbstractPage->__run(…)
    11. /var/www/domain.tld/public/cms/lib/system/request/RequestHandler.class.php (107): wcf\system\request\Request->execute(…)
    12. /var/www/domain.tld/public/index.php (9): wcf\system\request\RequestHandler->handle(…)
    Error Message
    SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction
    Type
    PDOException
    File (Line)
    /var/www/domain.tld/public/cms/lib/system/database/statement/PreparedStatement.class.php (93)
    Stacktrace
    1. /var/www/domain.tld/public/cms/lib/system/database/statement/PreparedStatement.class.php (93): PDOStatement->execute(…)
    2. /var/www/domain.tld/public/cms/lib/system/user/notification/UserNotificationHandler.class.php (856): wcf\system\database\statement\PreparedStatement->execute(…)
    3. /var/www/domain.tld/public/lib/data/thread/ThreadAction.class.php (424): wcf\system\user\notification\UserNotificationHandler->markAsConfirmed(…)
    4. [internal function] (?): wbb\data\thread\ThreadAction->markAsRead(…)
    5. /var/www/domain.tld/public/cms/lib/data/AbstractDatabaseObjectAction.class.php (205): call_user_func(…)
    6. /var/www/domain.tld/public/lib/page/AbstractThreadPage.class.php (324): wcf\data\AbstractDatabaseObjectAction->executeAction(…)
    7. /var/www/domain.tld/public/lib/page/AbstractThreadPage.class.php (179): wbb\page\AbstractThreadPage->updateThreadVisit(…)
    8. /var/www/domain.tld/public/lib/page/ThreadPage.class.php (62): wbb\page\AbstractThreadPage->readData(…)
    9. /var/www/domain.tld/public/cms/lib/page/AbstractPage.class.php (291): wbb\page\ThreadPage->readData(…)
    10. /var/www/domain.tld/public/cms/lib/page/AbstractPage.class.php (114): wcf\page\AbstractPage->show(…)
    11. /var/www/domain.tld/public/cms/lib/system/request/Request.class.php (83): wcf\page\AbstractPage->__run(…)
    12. /var/www/domain.tld/public/cms/lib/system/request/RequestHandler.class.php (107): wcf\system\request\Request->execute(…)
    13. /var/www/domain.tld/public/index.php (9): wcf\system\request\RequestHandler->handle(…)

    ┌П┐(◉_◉)┌П┐

  • Hallo,

    in solchen Fällen bitte, möglichst bald nach Auftreten des Fehlers das Ergebnis von SHOW ENGINE InnoDB STATUS ermitteln und sichern. Gerne dann im Rahmen eines TIckets bereitstellen. Generisch und „nachdem es passiert ist“ lassen sich derartige Deadlocks praktisch nicht analysieren.

  • Tim Düsterhus June 26, 2020 at 3:29 PM

    Added the Label Cannot reproduce
  • War auch nur einmalig bisher und genauso ist es unmöglich für mich das gleich nach dem Auftreten des Fehlers zu analysieren, sitze ja auch nicht 24/24 vor der konsole :D

    Aber danke der Untersuchung, wenns nochmals vorkommt gebe ich bescheid.

    ┌П┐(◉_◉)┌П┐

    Edited once, last by TeRRible__KHONS (June 26, 2020 at 4:06 PM).

  • Hallo,

    Heute wieder diese Fehlermeldung:

    Requested URL
    /thread/XXXX
    Referrer
    WoltLab Suite
    5.2.7
    PHP
    7.4.7
    Error Message
    Could not execute statement 'UPDATE wcf1_user_notification SET confirmTime = ? WHERE eventID = ? AND userID IN (?) AND objectID IN (?,?,?,?,?,?,?,?,?,?,?,?,?)'
    Type
    wcf\system\database\exception\DatabaseQueryExecutionException
    File (Line)
    /var/www/domain.tld/public/cms/lib/system/database/statement/PreparedStatement.class.php (105)
    Query Parameter 1
    1593566574
    Query Parameter 2
    25
    Query Parameter 3
    6499
    Query Parameter 4
    328157
    Query Parameter 5
    328166
    Query Parameter 6
    328319
    Query Parameter 7
    328753
    Query Parameter 8
    329897
    Query Parameter 9
    329908
    Query Parameter 10
    329917
    Query Parameter 11
    329925
    Query Parameter 12
    329978
    Query Parameter 13
    330121
    Query Parameter 14
    331044
    Query Parameter 15
    331046
    Query Parameter 16
    331050
    Stacktrace
    1. /var/www/domain.tld/public/cms/lib/system/user/notification/UserNotificationHandler.class.php (837): wcf\system\database\statement\PreparedStatement->execute(…)
    2. /var/www/domain.tld/public/lib/data/thread/ThreadAction.class.php (478): wcf\system\user\notification\UserNotificationHandler->markAsConfirmed(…)
    3. [internal function] (?): wbb\data\thread\ThreadAction->markLikeNotificationsAsConfirmed(…)
    4. /var/www/domain.tld/public/cms/lib/data/AbstractDatabaseObjectAction.class.php (205): call_user_func(…)
    5. /var/www/domain.tld/public/lib/page/AbstractThreadPage.class.php (329): wcf\data\AbstractDatabaseObjectAction->executeAction(…)
    6. /var/www/domain.tld/public/lib/page/AbstractThreadPage.class.php (179): wbb\page\AbstractThreadPage->updateThreadVisit(…)
    7. /var/www/domain.tld/public/lib/page/ThreadPage.class.php (62): wbb\page\AbstractThreadPage->readData(…)
    8. /var/www/domain.tld/public/cms/lib/page/AbstractPage.class.php (291): wbb\page\ThreadPage->readData(…)
    9. /var/www/domain.tld/public/cms/lib/page/AbstractPage.class.php (114): wcf\page\AbstractPage->show(…)
    10. /var/www/domain.tld/public/cms/lib/system/request/Request.class.php (83): wcf\page\AbstractPage->__run(…)
    11. /var/www/domain.tld/public/cms/lib/system/request/RequestHandler.class.php (107): wcf\system\request\Request->execute(…)
    12. /var/www/domain.tld/public/index.php (9): wcf\system\request\RequestHandler->handle(…)
    Error Message
    SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction
    Type
    PDOException
    File (Line)
    /var/www/domain.tld/public/cms/lib/system/database/statement/PreparedStatement.class.php (93)
    Stacktrace
    1. /var/www/domain.tld/public/cms/lib/system/database/statement/PreparedStatement.class.php (93): PDOStatement->execute(…)
    2. /var/www/domain.tld/public/cms/lib/system/user/notification/UserNotificationHandler.class.php (837): wcf\system\database\statement\PreparedStatement->execute(…)
    3. /var/www/domain.tld/public/lib/data/thread/ThreadAction.class.php (478): wcf\system\user\notification\UserNotificationHandler->markAsConfirmed(…)
    4. [internal function] (?): wbb\data\thread\ThreadAction->markLikeNotificationsAsConfirmed(…)
    5. /var/www/domain.tld/public/cms/lib/data/AbstractDatabaseObjectAction.class.php (205): call_user_func(…)
    6. /var/www/domain.tld/public/lib/page/AbstractThreadPage.class.php (329): wcf\data\AbstractDatabaseObjectAction->executeAction(…)
    7. /var/www/domain.tld/public/lib/page/AbstractThreadPage.class.php (179): wbb\page\AbstractThreadPage->updateThreadVisit(…)
    8. /var/www/domain.tld/public/lib/page/ThreadPage.class.php (62): wbb\page\AbstractThreadPage->readData(…)
    9. /var/www/domain.tld/public/cms/lib/page/AbstractPage.class.php (291): wbb\page\ThreadPage->readData(…)
    10. /var/www/domain.tld/public/cms/lib/page/AbstractPage.class.php (114): wcf\page\AbstractPage->show(…)
    11. /var/www/domain.tld/public/cms/lib/system/request/Request.class.php (83): wcf\page\AbstractPage->__run(…)
    12. /var/www/domain.tld/public/cms/lib/system/request/RequestHandler.class.php (107): wcf\system\request\Request->execute(…)
    13. /var/www/domain.tld/public/index.php (9): wcf\system\request\RequestHandler->handle(…)

    ┌П┐(◉_◉)┌П┐

  • Hallo,

    in solchen Fällen bitte, möglichst bald nach Auftreten des Fehlers das Ergebnis von SHOW ENGINE InnoDB STATUS ermitteln und sichern. Gerne dann im Rahmen eines TIckets bereitstellen. Generisch und „nachdem es passiert ist“ lassen sich derartige Deadlocks praktisch nicht analysieren.

    Und hast du dies diesesmal gemacht?

  • Ist jedoch komisch dass es immer zu anderen Zeiten vorkommt und immer die user_notification davon betoffen ist. Jedoch nicht immer sondern nur spontan:

    Message: Could not execute statement 'UPDATE wcf1_user_notification SET confirmTime = ? WHERE eventID = ? AND userID IN (?) AND objectID IN (?,?,?,?,?,?,?,?,?,?,?,?,?)'

    Sehr schwer zu lokalisieren also.

    EDIT: Werden diese errors nicht default irgendwo geloggt sodass ich nachschauen kann?

    ┌П┐(◉_◉)┌П┐

  • Hier noch ein Screenshot meiner installierten Plugins (eventuell hilft das):

    Man sieht es ist hier relativ einfach und nicht überladen, daher weiß ich nicht was hier den Deadlock provozieren könnte, vielleicht das Community Bot von UdoZ dieses greift ja öfters und automatisch auf die Notifications ein.

    ┌П┐(◉_◉)┌П┐

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!