503 Fehler nach Aktivierung des Caches

Hallo, nachdem ich auf meiner Shopware 5 Installation den Cacha aktiviert habe, trat nach einem Tag folgender Fehler auf: Fatal error: Uncaught exception ‘RuntimeException’ with message ‘Error when rendering “http://xxx/?controller=compare&module=widgets” (Status code is 503).’ in /var/customers/webs/mboehme/shopware/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/Esi.php:276 Stack trace: #0 /var/customers/webs/mboehme/shopware/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/HttpCache.php(646) : eval()'d code(62): Symfony\Component\HttpKernel\HttpCache\Esi->handle(Object(Shopware\Components\HttpCache\AppCache), ‘/?module=widget…’, ‘’, false) #1 /var/customers/webs/mboehme/shopware/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/HttpCache.php(646): eval() #2 /var/customers/webs/mboehme/shopware/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/HttpCache.php(214): Symfony\Component\HttpKernel\HttpCache\HttpCache->restoreResponseBody(Object(Symfony\Component\HttpFoundation\Request), Object(Symfony\Component\HttpFoundation\Response)) #3 /var/customers/webs/mbo in /var/customers/webs/mboehme/shopware/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/Esi.php on line 276 503 Service Unavailable Nachdem ich im Backend den Cache zurückgesetzt hab, läuft der Shop erstmal wieder…aber ich gehe davon aus, dass nach wenigen Tagen das gleiche Problem erneut auftreten wird… VG Thorsten

Hallo, bei einer Einkaufswelt, die als Landing-Page gekennzeichnet ist? Das gleiche Problem habe ich nämlich auch. Passiert hin und wieder mal? Habe das vom Support auch schon checken lassen, nur leider auf keinen Fehler gestoßen. Der Fehler ansich liegt an einer beschädigten Cache Datei, die wenn Sie erstellt wird (erste mal Laden) korrekt arbeitet, beim 2. mal Laden allerdings dann den Fehler verursacht. Wenn du den Shop in den Bearbeitungs-Modus setzt funktionierts ohne Probleme. Ist aber natürlich nicht die Lösung. Viele Grüße.

Hallo, 

wir haben das gleiche Problem, auf der Seite: https://www.kontor1710.de/shopware.php?sViewport=campaign&emotionId=48

Ich habe auch ein Ticket aufgemacht aber leider noch keine Antowrt von Shopware: 

Fatal error: Uncaught exception 'RuntimeException' with message 'Error when rendering "https://www.kontor1710.de/shopware.php/?action=info&controller=checkout&module=widgets" (Status code is 301).' in /konyrdkl/www.kontor1710.de/vendor/symfony/http-kernel/HttpCache/Esi.php:282 Stack trace: #0 /konyrdkl/www.kontor1710.de/var/cache/production_201510221322/html/en/71/e8/62e4d8ad0e87f5b2d75404e6830022d99b0f1e68e05ead5db41a65043941(91): Symfony\Component\HttpKernel\HttpCache\Esi->handle(Object(Shopware\Components\HttpCache\AppCache), '/shopware.php/?...', '', false) #1 /konyrdkl/www.kontor1710.de/vendor/symfony/http-kernel/HttpCache/HttpCache.php(646): include('/konyrdkl/www.k...') #2 /konyrdkl/www.kontor1710.de/vendor/symfony/http-kernel/HttpCache/HttpCache.php(216): Symfony\Component\HttpKernel\HttpCache\HttpCache->restoreResponseBody(Object(Symfony\Component\HttpFoundation\Request), Object(Symfony\Component\HttpFoundation\Response)) #3 /konyrdkl/www.kontor1710.de/engine/Shopware/Components/HttpCache/AppCache.php(114): Symfo in /konyrdkl/www.kontor1710.de/vendor/symfony/http-kernel/HttpCache/Esi.php on line 282
503 Service Unavailable

Ich bin gespannt: ich hoffe es gibt bald eine Lösung!

Beste Grüße 

 

 

Gibt es da schon eine Reaktion seites Shopware? Habe dasselbe Problem…

Hi,

das Problem wird verursacht, weil eine von den ESI-Routen einen Redirect macht. Man kann das nachstellen, indem man bspw. in \Shopware_Controllers_Widgets_Compare::indexAction sowas einfügt:

$this->redirect('http://www.irgendwas.de', ['code' => 301]);

Die Frage ist letztlich, ob da ein Fehler im Standard vorliegt, oder ob da irgendein Plugin auf dem globalen Pre- oder PostDispatch lauscht und ggf. eine Weiterleitung auslöst. Im Standard könnte sowas mMn auftreten, wenn der Host falsch gesetzt ist oder es inkonsistente HTTP / HTTPS-Routen gibt. In solchen Situationen machen wir ggf. Redirects auf die „richtige“ Route in \Shopware_Plugins_Core_Router_Bootstrap::onRouteShutdown.

Ist so generell also schwer zu beantworten - aber das wären jetzt die beiden Hinweise, denen man da nachgehen könnte.

Daniel

Kann man das in Pre- oder PostDispatch irgendwie abfangen, ob es eine ESI-Route ist? Dann könnte man eventuelle Weiterleitungen unterdrücken…

Gibt es hierzu noch Lösungen? Wir haben das Problem ebenfalls in wiederkehrenden Abständen. Ich weiß nicht wirklich, wo ich da ansetzen soll.

Hi

@pontoffeltier‍: Wenn das bspw. Plugins machen, müssten die darauf achten, dass die in ihrem PostDispatch-Event darauf prüfen, dass es bspw. keine ControllerAction ist, auf die ESI-Requests gemacht werden. Müsste also im Plugin gefixt werden. Einen expliziten Check auf „ESI“-Requests gibt es in der Form nicht, vll. hast du glück und der ReverseProxy setzt irgendwelche spezifischen Header - kann ich dir aber nicht sagen. Man muss ja auch bedenken, dass action-Tags entweder in Form von Subrequests (ohne Cache) ODER durch den SF-Reverse-Proxy ODER durch Varnish gerendert werden. Da gibt es schon also viele Möglichkeiten. Der Check auf die ControllerAction ist da vielleicht erstmal zielführender. 

@RoadSalt‍: Wie gesagt vermute ich, dass es ein Plugin-Problem ist. Wenn das stimmt, müsstest du das eigentlich auf bestimmte Plugins eingrenzen können und die dann entsprechend anpassen. Ansonsten kenne ich leider keine allgemeingültige Lösung.

Daniel