Contao-Camp 2024
Ergebnis 1 bis 4 von 4

Thema: Timeouts in Front- und Backend

  1. #1
    Contao-Nutzer
    Registriert seit
    05.08.2019.
    Beiträge
    13

    Standard Timeouts in Front- und Backend

    Vergangenen Donnerstag hat sich eine unserer Seiten verabschiedet. Ganz selten läd das Backend noch, das Frontend läuft immer entweder in die Contao eigene Fehlermeldung "Es ist ein fehler aufgetreten" oder gleich die Browsermeldung: "ERR_EMPTY_RESPONSE"

    Ich habe zuletzt keine nennenswerten Änderungen gemacht, lediglich am Donnerstag den ein oder andren Artikel bearbeitet.

    Das log meldet ein Überschreiten der execution time:

    Code:
     app.CRITICAL: An exception occurred. {"exception":"[object] (Symfony\\Component\\Debug\\Exception\\FatalErrorException(code: 0): Error: Maximum execution time of 240 seconds exceeded at ~vendor/contao/core-bundle/src/Resources/contao/library/Contao/InsertTags.php:78)"}
    Wobei der Fehler nicht immer in der InsertTags.php gemeldet wird, sondern auch mal woanders (z.B. StringUtil.php oder Frontendindex.php) - Die Zeile variiert ebenfalls. Daher denke ich nicht, dass der Fehler dort liegt, sondern an dieser Stelle einfach der timeout einsetzt

    Wenn das Backend nicht läd (meistens) gibt es da noch diesen Fehler: "MySQL server has gone away":

    Code:
    [2019-11-04 12:34:59] app.CRITICAL: An exception occurred. {"exception":"[object] (Doctrine\\DBAL\\Exception\\DriverException(code: 0): An exception occurred while executing 'SELECT * FROM tl_session WHERE tl_session.hash='XXXXXXXXXXXXXXXXXXXX' AND tl_session.name='BE_USER_AUTH' LIMIT 0,1':\n\nSQLSTATE[HY000]: General error: 2006 MySQL server has gone away at /usr/www/users/animatq/ktour2019/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php:115, Doctrine\\DBAL\\Driver\\PDOException(code: HY000): SQLSTATE[HY000]: General error: 2006 MySQL server has gone away at /usr/www/users/animatq/ktour2019/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:106, PDOException(code: HY000): SQLSTATE[HY000]: General error: 2006 MySQL server has gone away at /usr/www/users/animatq/ktour2019/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:104)"} []

    Der Contao-Manager läuft ganz normal und meldet keine Fehler, dort habe ich sämtliche Systemwartungen durchgeführt - leider ohne Erfolg.

    Gehostet sind wir bei Hetzner und haben das Webhosting Paket Level 19, andere Contaos auf demselben Hosting laufen ohne Probleme.

    Aus den Errorlogs von Hetzner (dieser Fehler steht dort öfter):
    Code:
    [Mon Nov 04 11:59:27 2019] [core:error] [pid 23599:tid 140174126159616] [client XXXXX] End of script output before headers: app.php
    Hier noch die PHP Info: https://imgur.com/a/VQuJBbv
    Und so sehen die Settings aus: https://imgur.com/a/elBKD4r

    Den Support habe ich auch kontaktiert, obwohl die Indizien ja eher gegen ein Hosting-Problem sprechen.



    Irgendjemand eine Idee, woran das liegen könnte?

  2. #2
    Contao-Urgestein
    Registriert seit
    29.10.2009.
    Ort
    Magdeburg
    Beiträge
    2.020
    Partner-ID
    626
    User beschenken
    Wunschliste

    Standard

    Der Aufbau der Seite läuft in einen Timeout oder der DB-Server abschiedet sich. Vermutung: Du hast irgendwo eine unendliche Rekursion eingebaut. Z.b. ein insert_article:: des identischen Artikels...

  3. #3
    Contao-Nutzer
    Registriert seit
    05.08.2019.
    Beiträge
    13

    Standard

    Danke für den Tip, aber dann müsste ja das gesamte Backend wiederum laufen, oder? Der Fehler dürfte dann ja nur da auftreten wo ich die Rekursion eingebaut habe.

    Ab und zu komme ich für 1-2 Seitenaufrufe in die Seiten/Artikelstruktur, aber dann verrennt er sich genauso wie im Frontend. Gerade eben hab ich es hinbekommen, eine neue, leere Testseite anzulegen, die ein bisher unbenutztes Seitenlayout zugewiesen hat. Also eigentlich unmöglich, dass dort eine Rekursion drin ist - kann diese Seite aber auch nicht im Frontend öffnen.

    Kann ich es irgendwie genauer einkreisen, was während des Aufrufs passiert?

  4. #4
    Contao-Nutzer
    Registriert seit
    05.08.2019.
    Beiträge
    13

    Standard Lösung gefunden!

    Danke nochmal herzlich für den Tip. Letztlich war es, wie von dir vermutet, eine Rekursion, die ich noch dazu selbst eingebaut habe. Einmal nicht aufgepasst...


    Ich möchte es hier nochmal erläutern, wie ich vorgegengen bin. Vielleicht kann ich ja so etwas zurückgeben.

    Das Problem war nämlich auch, dass - einmal ausgelöst - diese Rekursion die PHP Resourcen so lange und so intensiv ausgelastet hat, dass das Backend auch immer längere Zeit nichtmehr lief, sobald man das Frontend einmal öffnet.

    Auf Tip meines Providers habe ich erfahren, wie ich diese Prozesse killen kann, damit ich mich im Backend auf die Suche machen kann (PHP Version einmal wechseln und abspeichern)

    Dadurch gelangte ich wieder ins Contao, duplizierte das Layout einer Seite die betroffen war und blendete zunächst alle eingebundenen Module aus. Nachdem das erfolgreich geladen hat wusste ich, dass hier irgendwo der Fehler sein muss.

    Danach erstmal die Artikelmodule einblenden, was mir Gewissheit hab, dass der Fehler nicht in der Pflege eines Artikels selbst lag. Danach nach und nach die Module einblenden. Beim einblenden der MainNavi schmierte es dann wieder ab. Durch festlegen der Menütiefe im Menü konnte ich dann auch die 3. Menüebene einkreisen. Dort habe ich es dann gefunden. Bei einer Ankernavigation, die über externe Weitereitungen nach dem Schema {{link_url::XXXX}}#anker-id erstellt wurden, habe ich eine Weiterleitung auf sich selbst zeigen lassen.

    Ein bisschen wundert mich nur, das schon das Menü ausreichte. Ich hätte vermutet, dass es nur dann zu einer Endlosschleife kommt, wenn man die betroffene Seite auch aufruft. - Zumal ich im Menü ein Hard Limit drin hatte.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •