5.3.2, unser Freund, der unknown tag "s"

Frage in die Runde:  Wie kommt man dem Verursacher des Fehlers ’ unknown tag “s” ’ genauer auf die Schliche?

 

Seit dem Update auf 5.3 kämpfen wir mit dem Fehler und in der Zwischenzeit haben wir auch alle "rewrite"s und sonstigen Unfug aus unserer Templates und den Snippets entfernt.

Es passiert nur hin und wieder, das unser Shop in einen “Fehlerzustand” übergeht und dann keine Bestellungen mehr möglich sind, konkret die URL /checkout wirft dann 500er Fehler.
Ein leeren des Cache behebt den Fehler, es können auch wieder Bestellungen entgegengenommen werden, bis zum nächsten “Fehlerzustand”.

Plugins sind praktisch keine Vertreten: ein Rudel Premium Plugins, Zahlungsarten PayPal Plus, Sofort & BillSAFE und 1x IT-Recht.

 

Hier mal ein Beispiel: Apache access log, Kunde kommt von PayPal zurück, Shopware nimmt es entgegen, leitet es auf /checkout weiter und antwortet mit einem 500er Fehler

80.153.48.51 - - [31/Aug/2017:16:42:08 +0200] "GET /PaymentPaypal/return/express/1?token=[Token]&PayerID=[Payer] HTTP/1.0" 302 4234 "https://www.paypal.com/webapps/hermes?flow=1-P&ulReturn=true&country.x=DE&hermesLoginRedirect=xoon&locale.x=de_DE&token=[Token]&country.x=DE&locale.x=de_DE" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36"
80.153.48.51 - - [31/Aug/2017:16:42:10 +0200] "GET /checkout HTTP/1.0" 500 646 "https://www.paypal.com/webapps/hermes?flow=1-P&ulReturn=true&country.x=DE&hermesLoginRedirect=xoon&locale.x=de_DE&token=[Token]&country.x=DE&locale.x=de_DE" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36"

php error log bietet dazu folgendes an:

[31-Aug-2017 16:42:11 Europe/Berlin] PHP Fatal error: Uncaught SmartyCompilerException: Syntax Error in template "[pfad]/themes/Frontend/Bare/frontend/index/index.tpl" on line 7 "<html class="no-js" lang="{s name='IndexXmlLang'}{/s}" itemscope="itemscope" itemtype="http://schema.org/WebPage">" unknown tag "s" in [pfad]/engine/Library/Smarty/sysplugins/smarty_internal_templatecompilerbase.php:657
Stack trace:
#0 [pfad]/engine/Library/Smarty/sysplugins/smarty_internal_templatecompilerbase.php(443): Smarty_Internal_TemplateCompilerBase->trigger_template_error('unknown tag "s"', 7)
#1 [pfad]/engine/Library/Smarty/sysplugins/smarty_internal_templateparser.php(2388): Smarty_Internal_TemplateCompilerBase->compileTag('s', Array)
#2 [pfad]/engine/Library/Smarty/sysplugins/smarty_internal_templateparser.php(3101): Smarty_Internal_Templateparser->yy_r36()
#3 [pfad]/engine/Library/Smarty/sysplugins/smarty_internal_templateparser.php(3201): Smarty_Internal_Templateparser->yy_reduce(36)
#4 [pfad]/engine/Library/Smarty/sysplugins/smarty_internal_smartytemplatecompiler.php(105): Smarty_Internal_Templateparser->doParse(34, '{/')
#5 [pfad]/engine/Library/Smarty/sysplugins/smarty_internal_templatecompilerbase.php(192): Smarty_Internal_SmartyTemplateCompiler->doCompile('{block name="fr...')
#6 [pfad]/engine/Library/Smarty/sysplugins/smarty_internal_template.php(187): Smarty_Internal_TemplateCompilerBase->compileTemplate(Object(Enlight_Template_Default))
#7 [pfad]/engine/Library/Smarty/sysplugins/smarty_internal_templatebase.php(155): Smarty_Internal_Template->compileTemplateSource()
#8 [pfad]/engine/Library/Enlight/View/Default.php(276): Smarty_Internal_TemplateBase->fetch()
#9 [pfad]/engine/Library/Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(216): Enlight_View_Default->render(Object(Enlight_Template_Default))
#10 [pfad]/engine/Library/Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(242): Enlight_Controller_Plugins_ViewRenderer_Bootstrap->renderTemplate(Object(Enlight_Template_Default))
#11 [pfad]/engine/Library/Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(136): Enlight_Controller_Plugins_ViewRenderer_Bootstrap->render()
#12 [pfad]/engine/Library/Enlight/Event/Handler/Default.php(91): Enlight_Controller_Plugins_ViewRenderer_Bootstrap->onPostDispatch(Object(Enlight_Controller_ActionEventArgs))
#13 [pfad]/engine/Library/Enlight/Event/EventManager.php(214): Enlight_Event_Handler_Default->execute(Object(Enlight_Controller_ActionEventArgs))
#14 [pfad]/engine/Library/Enlight/Controller/Action.php(201): Enlight_Event_EventManager->notify('Enlight_Control...', Object(Enlight_Controller_ActionEventArgs))
#15 [pfad]/engine/Library/Enlight/Controller/Dispatcher/Default.php(530): Enlight_Controller_Action->dispatch('genericErrorAct...')
#16 [pfad]/engine/Library/Enlight/Controller/Front.php(223): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp))
#17 [pfad]/engine/Shopware/Kernel.php(184): Enlight_Controller_Front->dispatch()
#18 [pfad]/vendor/symfony/http-kernel/HttpCache/HttpCache.php(491): Shopware\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#19 [pfad]/engine/Shopware/Components/HttpCache/AppCache.php(268): Symfony\Component\HttpKernel\HttpCache\HttpCache->forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL)
#20 [pfad]/vendor/symfony/http-kernel/HttpCache/HttpCache.php(448): Shopware\Components\HttpCache\AppCache->forward(Object(Symfony\Component\HttpFoundation\Request), true)
#21 [pfad]/vendor/symfony/http-kernel/HttpCache/HttpCache.php(344): Symfony\Component\HttpKernel\HttpCache\HttpCache->fetch(Object(Symfony\Component\HttpFoundation\Request), true)
#22 [pfad]/engine/Shopware/Components/HttpCache/AppCache.php(189): Symfony\Component\HttpKernel\HttpCache\HttpCache->lookup(Object(Symfony\Component\HttpFoundation\Request), true)
#23 [pfad]/vendor/symfony/http-kernel/HttpCache/HttpCache.php(210): Shopware\Components\HttpCache\AppCache->lookup(Object(Symfony\Component\HttpFoundation\Request), true)
#24 [pfad]/engine/Shopware/Components/HttpCache/AppCache.php(116): Symfony\Component\HttpKernel\HttpCache\HttpCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#25 [pfad]/shopware.php(118): Shopware\Components\HttpCache\AppCache->handle(Object(Symfony\Component\HttpFoundation\Request))
#26 {main}
  thrown in [pfad]/engine/Library/Smarty/sysplugins/smarty_internal_templatecompilerbase.php on line 657

Ideen sind willkommen.

Du könntest mal in deinen Plugins schauen, welche Plugins alle die index/index.tpl erweitern, vielleicht sogar auch, welche den Block frontend_index_html erweitern. Ich würde zunächst vermuten, dass es eines von denen ist.

Guten Morgen,

gibts hier schon neue Erkenntnisse? Wir haben das selbe Problem…

Servus,
leider haben wir den Verursacher noch nicht identifiziert, Fehler war heute Nacht wieder aktiv. Ein Dank an die Kunden die anrufen und sagen „Euer Shop geht nicht“.

Ich folge einfach mal Moritz Vorschlag, und schau was alles „frontend/index/index.tpl“ erweitert.

  • „Bare“ Theme, ich denke das kann ich erstmal ausschließen
  • Subshop id5 Template, Fehler tritt aber in Shop id1 auf, also auch erstmal ausschließen
  • Premium Plugin „SwagBusinessEssentials“, trägt Swag im Namen, also erstmal OK
  • Pro Plugin „SwagEmotionAdvanced“, trägt Swag im Namen, also erstmal OK
  • Plugin „SwagGoogle“, trägt Swag im Namen, also erstmal OK
  • Plugin „AdvancedMenu“, Status „deinstalliert“
  • Zahlungsart „SwagPaymentPaypal“, trägt Swag im Namen, also erstmal OK
  • Zahlungsart „SwagPaymentBillsafe“, trägt Swag im Namen, also erstmal OK

Hm … 

Das „Bare“ Theme mitgerechnet sind es 47 Dateien in denen eine Vererbung auf „frontend/index/index.tpl“ stattfindet.
Ich werde die dann mal der Reihe nach inspizieren …

Ich werde Euch auf dem Laufenden halten, denn eines ist sicher, mit zunehmender Zeit geht die Wahrscheinlichkeit für den Fehlerzustand Richtung 100%.

Habe das selbe hier auch.

Identischen Fehler, Template ist shopware original.

Das scheinen dann echt Plugins zu sein.

Leider sagt log intern und extern nicht welche :frowning:

Wir haben genau das gleiche Problem, auch den angesprochene “Fehlerzustand”, also dass dieses Problem erst nach einer gewissen Zeit nach dem leeren des Caches auftritt.

Alle Plugins waren als 5.3 kompatibel gekennzeichnet und der Fehler tritt auch dann noch auf, wenn alle nicht-shopwareeigenen Plugins deaktiviert wurden. Auch das Umstellen aufs Responsive TPL hat es nicht gelöst.

[proxy_fcgi:error] [pid 22048:tid 140644894873344] [client xxx] AH01071: Got error ‘PHP message: PHP Fatal error:  Uncaught exception ‘SmartyCompilerException’ with message ‘Syntax Error in template “/var/www/vhosts/xxx/httpdocs/themes/Frontend/Bare/frontend/index/header.tpl”  on line 9 “<meta name=“author” content=”{s name=‘IndexMetaAuthor’}{/s}" />" unknown tag “s”’ in /var/www/vhosts/xxx/httpdocs/engine/Library/Smarty/sysplugins/smarty_internal_templatecompilerbase.php:657\nStack trace:\n#0 /var/www/vhosts/xxx/httpdocs/engine/Library/Smarty/sysplugins/smarty_internal_templatecompilerbase.php(443): Smarty_Internal_TemplateCompilerBase->trigger_template_error(‘unknown tag “s”’, 9)\n#1 /var/www/vhosts/xxx/httpdocs/engine/Library/Smarty/sysplugins/smarty_internal_templateparser.php(2388): Smarty_Internal_TemplateCompilerBase->compileTag(‘s’, Array)\n#2 /var/www/vhosts/xxx/httpdocs/engine/Library/Smarty/sysplugins/smarty_internal_t…\n’, referer: PayPal 

In roneckers Meldung ist es Zeile 7, die war es zunächst bei uns auch. Ich hatte dann das Template an der Stelle extended und statt des Textbausteins “de” direkt verwendet, in dem Fall ist der nächste Textbaustein dann in Zeile 9…

Eine Übersicht der anderen threads zu diesem Thema (leider alle offen / ohne Lösung) https://forum.shopware.com/search?Search=unknown+tag , vielleicht könnten die zusammengefasst werden? 

 

 

 

Mein Beileid,
zumindest ist es interessant zu sehen, das auch bei Dir ein “PayPal Plus” Rückkehrer (flow=1-P) den Fehler auslöst 
Ich konzentriere mich im Moment auf die “PayPal Plus” Zahlungsart, da sie bisher die einzige zuverlässige Art ist den Fehler zu reproduzieren, sofern der “Fehlerzustand” eingetreten ist. Mir ist dabei klar das es nicht der Verursacher sein muß.

Falls jemand von Shopware interesse hat sich dem ganzen mal anzunehmen, stehen wir gerne zur Verfügung.

stripe und sofortüberweisung hatte ich es auch schon

Hallo zusammen,

bei euch mag es ein anderer Faktor sein, aber in unserem Theme habe ich in der index.tpl den Namen des Controllers abgefragt und zwar mit 

{if $Controller == "checkout" }

Auskommentieren reichte da auch nicht. Habe es jetzt so verändert:

{if {controllerName} === "checkout"}

Zusätzlich der Hinweis: Bei uns trat das Problem nur bei PaypalExpress auf. Beim normalen Paypal ging es ohne Probleme. Also es kann an der Controller-Variable liegen, aber ggf. auch an anderen Variablen die vielleicht nicht mehr abrufbar sind.

Drücke euch die Daumen, dass ihr es gelöst bekommt.

paypal express habe ich zum Beispiel nicht.

Und auch kein Template wo irgeden wie was anders ist als Original .

Es könnte ggf. auch aus einen Textbaustein kommen, in dem " oder ’ nicht escaped/html-codiert sind, sondern plain asci/utf

Langsam wird es lästig.

Ich verliere Geld dadurch.

Und immer der selbe Spass was im Fehlerlog steht.

Helfen tut nur Cache komplett leeren und neu aufbauen dann geht es wieder eine Weile.

Was hast du denn schon gemacht um das einzugrenzen?

Eine typische herangehensweise wäre es ja auch, erstmal im Errorlog zu schauen wann genau (also Zeitstempel) die Meldung auftritt und dann ins Accesslog zu schauen, was da aufgerufen wurde und wie die IP die den Fehler verursacht hat durch den Shop navigiert hat. Wenn du da 3-4 Beispiele hast, lässt sich das so ja vielleicht in deinem Shop reproduzieren und du kannst dich detaillierter auf die Suche machen. Von alleine wird sich das so erstmal nicht beheben.

Naja, also bei uns kann ich das aus Post 1 zu 100% reproduzieren, sofern der “Fehlerzustand” aufgetreten ist.

Pfad des Kunden:

  • Kunde ist neu im Shop (unangemeldet)
  • Kunde legt was in den Warenkorb
  • Kunde nutzt den “Direkt zu PayPal” Button im Widget-Warenkorb
  • Kunde bestätigt die Zahlung bei PayPal
  • PayPal übergibt an Shopware zurück, Post 1 erste Zeile Accesslog “GET /PaymentPaypal/return/express/1?token=[Token]&PayerID=[Payer] HTTP/1.0” 302
  • Die Zahlungsart PayPal leitet weiter auf die Checkoutseite “GET /checkout HTTP/1.0” 500  , die mit einem 500er Fehler antwortet.

Davon kann ich Dutzende posten, das bring keinen Mehrwert.

In diesem “Fehlerzustand” gelten folgende Bedingungen

  • Zahlungsart PayPal verursacht den Fehler, wobei der Flow auf PayPal Plus hinweist
    - Es ist nur ein Shop betroffen (500er Fehler), andere Subshops sind nicht betroffen
  • Andere Zahlungsarten funktionieren weiterhin, heiß Vorkasse, Nachnahme, BillSAFE Bestellungen können im Fehlerzustand entgegengenommen werden.
  • Jegliche Änderung der Kundendaten (z.B. anderes Lieferland) für bei den eben erwähnten Zahlungsarten ebenfalls zu einem 500er Fehler, konkret wird /checkout/confirm beim Bestätigen der Änderungen aufgerufen.

Ja, es liegt wohl ein Fehler in der eigenen Template vor, wobei der Shop mit seinem Snippets seit Shopware Version 3.0 besteht. Ich weiß, es gab glaube ich bei 3.5 einen harten Cut mit den Textbausteinen, seitdem fleißig aktualisiert.  Soll heißen, evtl schlummert in den Text-Snippets durchaus noch Müll aus vergangenen Zeiten.

Die Fehlermeldung dürfte halt ein bischen aussagekräftiger sein, um den Fehler leichter zu identifizieren.

Kurze Frage:

Habe hier noch Textbausteine drin von Plugins die ich schon ewig nicht mehr habe.

Können die sowas auch Verursachen? Obwohl es das Plugin nicht mehr gibt?

Und wie kann man verwaiste Textbausteine finden?

Nachtrag:

paypal plus deaktiviert und ganz verbannt, seit dem scheint Ruhe zu sein.

Schon 4 h nix an Fehlern mehr.

Zu früh gefreut

[Sun Sep 10 22:29:39.799525 2017] [:error] [pid 12465] [client 79.227.187.172:59184] FastCGI: server "/var/www/clients/client18/web32/cgi-bin/php5-fcgi-*-443-xxx.de" stderr: PHP message: PHP Fatal error: Uncaught exception 'SmartyCompilerException' with message 'Syntax Error in template "/var/www/clients/client18/web32/web/themes/Frontend/Bare/frontend/index/index.tpl" on line 7 "&lt;html class=&quot;no-js&quot; lang=&quot;{s name='IndexXmlLang'}{/s}&quot; itemscope=&quot;itemscope&quot; itemtype=&quot;http://schema.org/WebPage&quot;&gt;" unknown tag "s"' in /var/www/clients/client18/web32/web/engine/Library/Smarty/sysplugins/smarty_internal_templatecompilerbase.php:657, referer: https://xxx.de/checkout/xxx
[Sun Sep 10 22:29:39.799550 2017] [:error] [pid 12465] [client 79.227.187.172:59184] FastCGI: server "/var/www/clients/client18/web32/cgi-bin/php5-fcgi-*-443-xxx.de" stderr: Stack trace:, referer: https://xxx.de/checkout/xxx
[Sun Sep 10 22:29:39.799552 2017] [:error] [pid 12465] [client 79.227.187.172:59184] FastCGI: server "/var/www/clients/client18/web32/cgi-bin/php5-fcgi-*-443-xxx.de" stderr: #0 /var/www/clients/client18/web32/web/engine/Library/Smarty/sysplugins/smarty_internal_templatecompilerbase.php(443): Smarty_Internal_TemplateCompilerBase->trigger_template_error('unknown tag "s"', 7), referer: https://xxx.de/checkout/xxx
[Sun Sep 10 22:29:39.799562 2017] [:error] [pid 12465] [client 79.227.187.172:59184] FastCGI: server "/var/www/clients/client18/web32/cgi-bin/php5-fcgi-*-443-xxx.de" stderr: #1 /var/www/clients/client18/web32/web/engine/Library/Smarty/sysplugins/smarty_internal_templateparser.php(2388): Smarty_Internal_TemplateCompilerBase->compileTag('s', Array), referer: https://xxx.de/checkout/xxx
[Sun Sep 10 22:29:39.799564 2017] [:error] [pid 12465] [client 79.227.187.172:59184] FastCGI: server "/var/www/clients/client18/web32/cgi-bin/php5-fcgi-*-443-xxx.de" stderr: #2 /var/www/clients/client18/web32/web/engine/Library..., referer: https://xxx.de/checkout/xxx

 

Bei uns auch das Problem mit unknow Tag „s“. Ich kann es aber nicht reproduzieren bzw. weiß ich nicht genau wann der Fehler auftritt. Ich sehe nur anhand vom PHP Log, das da ein Fehler besteht.

[12-Sep-2017 10:52:43 Europe/Berlin] PHP Fatal error: Uncaught SmartyCompilerException: Syntax Error in template "/www/htdocs/xxxx/shop5/themes/Frontend/Bare/frontend/error/exception.tpl" on line 1 "&lt;h2&gt;{s name=&quot;ExceptionHeader&quot;}Ups! An error has occurred!{/s}&lt;/h2&gt;" unknown tag "s" in /www/htdocs/xxxx/shop5/engine/Library/Smarty/sysplugins/smarty_internal_templatecompilerbase.php:657
Stack trace:
#0 /www/htdocs/xxxx/shop5/engine/Library/Smarty/sysplugins/smarty_internal_templatecompilerbase.php(443): Smarty_Internal_TemplateCompilerBase->trigger_template_error('unknown tag "s"', 1)
#1 /www/htdocs/xxxx/shop5/engine/Library/Smarty/sysplugins/smarty_internal_templateparser.php(2388): Smarty_Internal_TemplateCompilerBase->compileTag('s', Array)
#2 /www/htdocs/xxxx/shop5/engine/Library/Smarty/sysplugins/smarty_internal_templateparser.php(3101): Smarty_Internal_Templateparser->yy_r36()
#3 /www/htdocs/xxxx/shop5/engine/Library/Smarty/sysplugins/smarty_internal_templatep in /www/htdocs/xxxx/shop5/engine/Library/Smarty/sysplugins/smarty_internal_templatecompilerbase.php on line 657

 

@Michael W. schrieb:

Bei uns auch das Problem mit unknow Tag „s“. Ich kann es aber nicht reproduzieren bzw. weiß ich nicht genau wann der Fehler auftritt. Ich sehe nur anhand Syntax Error in template "/www/htdocs/xxxx/shop5/themes/Frontend/Bare/frontend/error/exception.tpl" on line 1 "&lt;h2&gt;{s name=&quot;ExceptionHeader&quot;}Ups! An error has occurred!{/s}&lt;/h2&gt;" unknown tag "s&quot

 

Gleiches Template wie bei uns. SmartyCompilerException exception.tpl unknown tag "s" - Installation/Einstieg - Shopware Community Forum

Reproduzieren konnte ich den Fehler nicht ein mal.
(Timestamp in php_error.log mit access.log abgeglichen und URL aufgerufen)

Ich hänge mich mit den Problem mal an. Hier das gleiche aktuell nochmal Plugins aktualisiert und alle auf 5.3.2 geprüft.
Aktuell einmal warten ob und wann der Fehler wieder kommt und dann mim acces log abgleichen

2017/09/13 09:53:35 [error] 17845#17845: *36058 open() "/var/www/xxx/web/xxx/themes/Backend/ExtJs/backend/_resources/images/icons/ico_growl.png" failed (2: No such file or directory), client: 88.99.135.226, server: xxx.de, request: "GET /themes/Backend/ExtJs/backend/_resources/images/icons/ico_growl.png HTTP/1.1", host: "xxx.de", referrer: "https://xxx/backend/"
2017/09/13 09:55:48 [error] 17847#17847: *36220 FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught SmartyCompilerException: Syntax Error in template "/var/www/clients/client1/web2/web/xxx/themes/Frontend/Bare/frontend/index/index.tpl" on line 7 "&lt;html class=&quot;no-js&quot; lang=&quot;{s name='IndexXmlLang'}{/s}&quot; itemscope=&quot;itemscope&quot; itemtype=&quot;http://schema.org/WebPage&quot;&gt;" unknown tag "s" in /var/www/clients/client1/web2/web/xx/engine/Library/Smarty/sysplugins/smarty_internal_templatecompilerbase.php:657
Stack trace:
#0 /var/www/clients/client1/web2/web/xxx/engine/Library/Smarty/sysplugins/smarty_internal_templatecompilerbase.php(443): Smarty_Internal_TemplateCompilerBase->trigger_template_error('unknown tag "s"', 7)
#1 /var/www/clients/client1/web2/web/xxx/engine/Library/Smarty/sysplugins/smarty_internal_templateparser.php(2388): Smarty_Internal_TemplateCompilerBase->compileTag('s', Array)
#2 /var/www/clients/client1/web2/web/xxx/engine/Library/Smart" while reading response header from upstream, client: 84.175.203.160, server: xxx, request: "GET /checkout HTTP/1.1", upstream: "fastcgi://unix:/var/lib/php5-fpm/web2.sock:", host: "xxx", referrer: "https://www.paypal.com/webapps/hermes?flow=1-P&ulReturn=true&token=EC-8X328513JD1561818&country.x=DE&locale.x=de_DE"

 

Rückfrage:
Hab Ihr in den Fehlermeldungen alle das " so stehen, oder macht das Forum beim Copy & Paste aus Anführungszeichen ein "? Warum escaped smarty das Template vor dem Rendern? Weil weiter unten in der exception werden " ja auch nicht escaped.