Syntax error or access violation: 1305 SAVEPOINT level1 does not exist

  • Affected Version
    WoltLab Suite 5.4
    Affected App
    WoltLab Suite Core

    Vermutlich nicht reproduzierbar, aber vielleicht ganz sinnvoll, das mal nieder zu schreiben, da ich damit ausnahmsweise nichts anfangen kann:

    Requested URL
    POST /index.php?ajax-proxy/&t=*snip*
    Referrer
    https://*snip*/thread/240884-*snip*/?postID=16214799
    Error Message
    Could not roll back transaction
    Type
    wcf\system\database\exception\DatabaseTransactionException
    File (Line)
    /lib/system/database/Database.class.php (282)
    Stacktrace
    1. /lib/system/reaction/ReactionHandler.class.php (423): wcf\system\database\Database->rollBackTransaction(…)
    2. /lib/data/reaction/ReactionAction.class.php (168): wcf\system\reaction\ReactionHandler->react(…)
    3. /lib/data/AbstractDatabaseObjectAction.class.php (216): wcf\data\reaction\ReactionAction->react(…)
    4. /lib/action/AJAXProxyAction.class.php (86): wcf\data\AbstractDatabaseObjectAction->executeAction(…)
    5. /lib/action/AJAXInvokeAction.class.php (111): wcf\action\AJAXProxyAction->invoke(…)
    6. /lib/action/AbstractAction.class.php (53): wcf\action\AJAXInvokeAction->execute(…)
    7. /lib/action/AJAXInvokeAction.class.php (65): wcf\action\AbstractAction->__run(…)
    8. /lib/system/request/Request.class.php (89): wcf\action\AJAXInvokeAction->__run(…)
    9. /lib/system/request/RequestHandler.class.php (119): wcf\system\request\Request->execute(…)
    10. /index.php (11): wcf\system\request\RequestHandler->handle(…)
    Error Message
    SQLSTATE[42000]: Syntax error or access violation: 1305 SAVEPOINT level1 does not exist
    Type
    PDOException
    File (Line)
    /lib/system/database/Database.class.php (273)
    Stacktrace
    1. /lib/system/database/Database.class.php (273): PDO->exec(…)
    2. /lib/system/reaction/ReactionHandler.class.php (423): wcf\system\database\Database->rollBackTransaction(…)
    3. /lib/data/reaction/ReactionAction.class.php (168): wcf\system\reaction\ReactionHandler->react(…)
    4. /lib/data/AbstractDatabaseObjectAction.class.php (216): wcf\data\reaction\ReactionAction->react(…)
    5. /lib/action/AJAXProxyAction.class.php (86): wcf\data\AbstractDatabaseObjectAction->executeAction(…)
    6. /lib/action/AJAXInvokeAction.class.php (111): wcf\action\AJAXProxyAction->invoke(…)
    7. /lib/action/AbstractAction.class.php (53): wcf\action\AJAXInvokeAction->execute(…)
    8. /lib/action/AJAXInvokeAction.class.php (65): wcf\action\AbstractAction->__run(…)
    9. /lib/system/request/Request.class.php (89): wcf\action\AJAXInvokeAction->__run(…)
    10. /lib/system/request/RequestHandler.class.php (119): wcf\system\request\Request->execute(…)
    11. /index.php (11): wcf\system\request\RequestHandler->handle(…)
    • Official Post

    Hallo,


    anhand des Codes ist mir völlig unerklärlich wie der Fehler auftreten kann. Der Transaktionszähler wird erst nach Beginn der Transaktion oder nach Erstellung eines Savepoints erhöht und vor dem Rollback der Transaktion oder dem Release des Savepoints verringert.


    In Verbindung mit ERRMODE = Exception bei PDO sollte es unmöglich sein, dass ein nicht-(mehr)-existenter Savepoint „released“ wird.


    In Ermangelung weiterer Informationen (hier bräuchte man entweder das general_log oder einen eindeutigen Reproducer), setze ich das auf „Nicht reproduzierbar“, weil es einfach keinen Sinn ergibt.

Participate now!

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