contao / contao-manager

Contao Manager
GNU Lesser General Public License v3.0
83 stars 33 forks source link

Manager meldet Datenbankfehler und wird beim Datenbankaufruf nicht fertig #800

Closed do-while closed 3 days ago

do-while commented 4 months ago

Mir ist es bei einer fehlerhaften Erweiterung passiert, dass ein Fehler im PHP dazu führt, dass der Manager einen Datenbankfehler anzeigt. Wenn man dann die Datenbank-Korrektur aufruft, dreht der Kreis unendlich und es kommt zu keiner Anzeige. Ich habe in der Datenbank selbst keine Fehlfunktion feststellen können.

Wie kam es dazu? Um ein Backend-Style hinzuzufügen, habe ich ein PHP-Snippet aus einem alten Contao kopiert:

// contao/config/config.php:
if (TL_MODE == 'BE')
{
    $GLOBALS['TL_CSS'][] = 'files/my-path/styles.css|static';
}

Sicherlich, das TL_MODE kann man in Contao 5 nicht mehr verwenden, aber es führt zu dem vermeintlcihen Datenbankfehler! Warum hat das einen Einfluß auf die Datenbank für den Manager? Man ist da ziemlich hilflos!

Zur Vervollständigung: Die if-Zeile habe ich geändert und der Datenbankfehler war weg:

$request = System::getContainer()->get('request_stack')->getCurrentRequest();

if( $request && System::getContainer()->get('contao.routing.scope_matcher')->isBackendRequest( $request ) ) {
  $GLOBALS['TL_CSS'][] = 'files/my-path/styles.css|static';
}

Contao-Manager 1.8.4, Contao 5.3, PHP 8.3

aschempp commented 4 months ago

Vermutlich wurde mit der Zeile das System kaputt gemacht. Ich denke nicht dass der Manager da etwas tun kann…

do-while commented 4 months ago

Mich wundert nur, dass sich der Manager von PHP-Fehlern im Contao abhängig macht. EIgentlich sollte doch ein defektes Contao den Manager nicht beeinflussen (schon gar nicht bei der Datenbank, obwohl es kein Datenbankfehler ist).

Mein Anliegen war ja auch nur, darauf hinzuweisen, dass da Einflüsse bestehen, die ggf. beseitigt werden könnten. Der Fehler mit TL_MODE macht es nur leicht reproduzierbar.

aschempp commented 4 months ago

Der Manager funktioniert auch, wenn Contao nicht funktioniert. Das heisst, man kann z.B. Erweiterungen installieren, reparieren oder entfernen, wenn Contao nicht mehr funktioniert. Die Datenbank-Migration (und andere Dinge) benötigen aber ein funktionierendes Contao.

MartinUlisses commented 3 months ago

Hatte letzte Woche ein ähnliches Fehlerbild. Bei mir wurde es dadurch ausgelöst, dass ich den ContaoManager in der dev-Environment ausgeführt habe und es an einer Stelle in den DCA Skripten zu einer PHP-Warnung gekommen ist, welche in der dev-Environment ja eine Exception triggert, welche dann zu dem beschriebenen Fehlerbild geführt hat. Ärgerlich ist, dass diese Exception nirgendwo geloggt oder angezeigt wurde.

xprojects-de commented 2 months ago

Bei mir lag es daran dass in der parameter.yml noch eine alte database_version drinnen war. Rauslöschen, Cache aufbauen und fertig!

aschempp commented 3 days ago

fixed in a9fa864eac121aa26beb23e56f1ab86a0b085c90