Upgrade schlägt mit Deadlock fehl

Fragen und Tipps & Tricks zur PHP Mailinglisten-Verwaltung SuperMailingList

Moderator: mirko

Antworten
Benutzeravatar
mirko
Beiträge: 23131
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Re: Upgrade schlägt mit Deadlock fehl

Beitrag 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.
Maecius
Beiträge: 4
Registriert: 08.04.2018, 17:41

Upgrade schlägt mit Deadlock fehl

Beitrag 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
Antworten