500er nach Update auf Shopware 5.7

Hallo, nach dem Update auf Shopware 5.7.2 erhalte ich folgenden Fehler und komme somit weder in das Backend noch in das Frontend des Shops:

Fatal error: Uncaught Doctrine\DBAL\SQLParserUtilsException: Value for :shopId not found in params array. Params array key should be "shopId" in /home/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/SQLParserUtilsException.php:21 Stack trace: 
#0 /home/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/SQLParserUtils.php(306): Doctrine\DBAL\SQLParserUtilsException::missingParam('shopId') 
#1 /home/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/SQLParserUtils.php(227): Doctrine\DBAL\SQLParserUtils::extractParam('shopId', Array, true) 
#2 /home/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(1250): Doctrine\DBAL\SQLParserUtils::expandListParameters('SELECT coreConf...', Array, Array) 
#3 /home/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Query/QueryBuilder.php(210): Doctrine\DBAL\Connection->executeQuery('SELECT coreConf...', Array, Array) 
#4 /home/public_html/engine/Shopware/Components/Plugin/Configuration/Layers/AbstractShop in /home/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php on line 185

Hallo @stemago

eventuell ist hier beim Update etwas schief gelaufen. Damit dein Shop schnell wieder ins Rollen kommt würde ich dir emfehlen ein Backup einzuspielen. Anschließend kannst du das Update in einer Testumgebung prüfen?

Viele Grüße aus Schöppingen
Florian Holtgrefe

Hallo @FlorianHoltgrefe ,

Backup wurde wieder eingespielt und Problem tritt auch in der Testumgebung wieder auf. Es sieht also so aus als fehlt hier irgendwo ein Bezug zur shopId nach dem Update. Kann leider aber nicht die Ursache erkennen.

Irgendwie mal mit Sub- oder Sprachshops herum gespielt? In einem sauberen Shop läuft das Update ganz sauber durch. Das hier ist definitiv ein Einzelfall.

Korrekt, ein grundsätzlicher Fehler ist uns hier nicht bekannt. Wurden in letzter Zeit Änderung an den Shops vorgenommen?

Hallo, das hier eventuell Sprachshops erstellt worden ist ausgeschlossen. Laut DB ist der Increment Wert der Tabelle noch bei 2.
Der Fehler entsteht hier ja auch nur direkt nach dem Update, welches leider ohne Hinweise sauber durchläuft. Kann man irgendwie den Fehler besser eingrenzen? Die Tabellen welche ich durchforstet habe haben keine Probleme mit shopID Verknüpfungen

Deaktiviere bitte vor dem Update einmal ausnahmslos alle Erweiterungen. Die meisten Fehler die ich bisher gesehen habe waren auf nicht kompatible Erweiterungen zurückzuführen - bevor du hier Stunden an Recherche investiert empfehle ich dir das erstmal auszuschließen.

Hab nun den Fehler bei einem zweiten Kunden in der Staging Umgebung. Der Shop hat auch keine großen Plugins an dieser Stelle.

Hallo zusammen,

hat jemand hierzu eine Loesung gefunden?
Wir haben das gleiche Problem und es hindert uns daran, von 5.6.10 auf 5.7.x zu aktualisieren.

Ich habe schon versucht, vor dem Update alle Plugins zu deaktivieren, aber das hat auch nichts gebracht.
Ein Upgrade auf 5.7.x laeuft vermeintlich fehlerfrei durch, aber danach sind Backend und Frontend nicht mehr erreichbar (Fehler 500) und man bekommt die o.g. Fehlermeldung im Logfile.

Wir haben einen einzelnen Shop ohne Subshops oder Sprachshops (es gibt noch den Standard-„Englisch“-Sprachshop, aber der ist deaktiviert).

Ich waere fuer jeden Hinweis dankbar!

Viele Gruesse
Christian

Ok, nach ein bisschen mehr Debugging konnte ich das Problem eingrenzen.

Es tritt nur auf 32-Bit-Systemen auf, da die Funktion crc32 dort einen negativen Wert zurueckliefert und damit die SQL-Parameter nicht klar kommen.

Wenn man in
engine/Shopware/Components/Plugin/Configuration/Layers/DefaultLayer.php
und
engine/Shopware/Components/Plugin/Configuration/Layers/DefaultShopLayer.php

alle drei Aufrufe von crc32(…) durch abs(crc32(…)) ersetzt, so laeuft alles einwandfrei.

Damit werden die negativen Werte durch das positive Gegenstueck ersetzt.
Auf 64-Bit-Systemen ist der crc32 immer positiv, daher tritt der Fehler dort nicht auf.

Ich schreibe ein passendes Ticket auf Github dazu…

Zur Info:

Made my day. Helped to get the 5.7 work on my Synology. :+1: