Seite 1 von 1

Re: Upgrade schlägt mit Deadlock fehl

Verfasst: 13.03.2026, 22:36
von mirko
Das CronJob-Script ausschalten/Script umbenennen, kein anderer sollte während der Zeit zugreifen. Das Script upgrade.php öffnet nur eine MySQL-Verbindung, also muss jemand anders zugreifen, z.B. das CronJob-Script.

Upgrade schlägt mit Deadlock fehl

Verfasst: 13.03.2026, 22:28
von Maecius
Hallo,

beim Upgrade unserer SML-Installation kommt es reproduzierbar zu einem Abbruch mit folgendem Fehler:

Deadlock found when trying to get lock; try restarting transaction (1213)
SQL-Anweisung: SHOW COLUMNS FROM <tabellenname>

Umgebung:

SML 9.40.0.01447
MySQL 8.4.7
PHP 8.1, Apache
Installation in Docker, mit jeweils offiziellen PHP / MySQL images.
für das Upgrade isolierte Umgebung, keine externen Zugriffe, geprüft via access log
Im MySQL-General-Log ist ersichtlich, dass während des Upgrades mehrere sehr kurzlebige DB-Verbindungen geöffnet werden, die parallel ALTER TABLE-Statements und SHOW COLUMNS-Abfragen ausführen. Dies führt offenbar zu Metadata-Lock-Deadlocks (MDL), wodurch das Upgrade auch nach 20–30 Versuchen stets an unterschiedlichen Stellen mit Fehler 1213 abbricht.

Wir sehen diese Deadlock-Fehler zwischenzeitlich auch bei Admin-Aktivitäten wie dem Anlegen von neuen Verteilerlisten. Dort sind sie allerdings durch mehrfaches Versuchen umgehbar.

Die Docker-Umgebung wurde testweise auf einen anderen Server in einer anderen Umgebung umgezogen, auch dort treten die Fehler auf. Beide Umgebungen sind üblicherweise performant (SSD, 8GB RAM, 4 Kerne).

Gerne stelle ich bei Bedarf relevante Log-Auszüge zur Verfügung.

Viele Grüße
Claas