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

  • Betroffene App
    WoltLab Suite Core

    Hallo,

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

    Aufgerufene 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
    Fehlermeldung
    Could not execute statement 'DELETE FROM wcf1_user_notification_to_user WHERE notificationID NOT IN ( SELECT notificationID FROM wcf1_user_notification WHERE confirmTime = ? )'
    Art
    wcf\system\database\exception\DatabaseQueryExecutionException
    Datei (Zeile)
    /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(…)
    Fehlermeldung
    SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction
    Art
    PDOException
    Datei (Zeile)
    /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(…)

    ┌П┐(◉_◉)┌П┐

    • Offizieller Beitrag

    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 26. Juni 2020 um 15:29

    Hat das Label Nicht reproduzierbar hinzugefügt.
  • 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.

    ┌П┐(◉_◉)┌П┐

    Einmal editiert, zuletzt von TeRRible__KHONS (26. Juni 2020 um 16:06)

  • Hallo,

    Heute wieder diese Fehlermeldung:

    Aufgerufene URL
    /thread/XXXX
    Referrer
    WoltLab Suite
    5.2.7
    PHP
    7.4.7
    Fehlermeldung
    Could not execute statement 'UPDATE wcf1_user_notification SET confirmTime = ? WHERE eventID = ? AND userID IN (?) AND objectID IN (?,?,?,?,?,?,?,?,?,?,?,?,?)'
    Art
    wcf\system\database\exception\DatabaseQueryExecutionException
    Datei (Zeile)
    /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(…)
    Fehlermeldung
    SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction
    Art
    PDOException
    Datei (Zeile)
    /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.

    ┌П┐(◉_◉)┌П┐

  • War nur eine Vermutung, keiner der anderen Plugins außer das Community Bot und die Standart-Plugins von Woltlab haben irgendwas mit den Notifications zu tun.

    ┌П┐(◉_◉)┌П┐

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!