DB-Fehler bei Update 4.1 auf 4.5

 
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Aachen
Beiträge: 328
Dabei seit: 05 / 2005
Betreff:

DB-Fehler bei Update 4.1 auf 4.5

 · 
Gepostet: 14.07.2019 - 14:22 Uhr  ·  #1
Hi,

beim Testweisen Update der 4.1 auf 4.5 traf ich auf folgendes Problem:
Sobald ich die update.php das erste Mal aufgerufen habe, lieferte mir mein Firefox einen Encoding-Fehler (siehe Anhang). Nach einigem Debugging fand ich heraus, dass es in der DB-Klasse in execute() offenbar knallt. Dort gibt es im Fehlerfall eine Ausgabe über trigger_error(), welches zu dem Problem führt. Kommentiere ich die trigger_error()-Zeile aus wird mir kein Encoding-Fehler mehr anzeigt.

Natürlich hat die Error-Ausgabe ihren Grund. Wie ich gesehen habe wird u.a. die Konfiguration classic_index_layout neu eingefügt - die gibt es aber in meiner 4.1-Datenbank bereits, daher kommt auch die Fehlerausgabe zustande. Das gleiche gilt auch für weitere Konfigurationsparameter, z.B. use_today_yesterday.

Lösung für mich war jetzt einfach die Error-Unterdrückung während des Setups. Hab danach aber auch kontrolliert, ob die in der update.php genannten Konfigurationen alle gesetzt wurden - passt.

Hab das in einer VM mehrmals mit Datenbank-Backups durchgespielt und kann den Fehler immer wieder reproduzieren. Vlt. wäre es für künftige Setups sinnvoll eine Optimierung bei den INSERT-Statements vorzunehmen, Stichwort "ON DUPLICATE KEY UPDATE": https://dev.mysql.com/doc/refm…icate.html

Wie gesagt: für mich gelöst. Für andere vlt. nicht. Eine Datenbank-Kopie kann ich wg. der darin enthaltenen personenbezogenen Daten nicht liefern :|

PS: Zwirni hat den Text geschrieben, nicht ramstein ;)
Der an diesem Beitrag angefügte Anhang ist entweder nur im eingeloggten Zustand sichtbar oder die Berechtigung Deiner Benutzergruppe ist nicht ausreichend.
Admin
Avatar
Geschlecht:
Herkunft:
Alter: 34
Homepage: cback.de
Beiträge: 17242
Dabei seit: 12 / 2003
Betreff:

Re: DB-Fehler bei Update 4.1 auf 4.5

 · 
Gepostet: 15.07.2019 - 12:50 Uhr  ·  #2
Hallo Zwirni,

was das Content Encoding statt Errormeldung angeht werde ich mir auf jeden Fall mal anschauen, vielen Dank für die Meldung! Es kann sogar sein, dass dies von der 4.1 mit einem Problem zusammen hing, welches inzwischen sogar schon länger behoben ist (die 4.1 war ja immerhin von 05/2017, inzwischen kam dan ja nochmal einiges neues) und also gar nicht mehr passiert, aber das checke ich dann nochmal fürs nächste Update. :)


Das das Problem überhaupt entsteht ist allerdings in diesem Fall vermutlich etwas, was jetzt wirklich explizit auf Deinem System passiert ist.

Die meisten der aktiven CF4 Foren sind auch schon auf der neuesten 4.5 oder dem Vorgänger 4.4 ohne Probleme - die Updates werden normal sehr schnell adaptiert, ist das doch auch sehr einfach zu bewerkstelligen aufgrund der Tatsache, dass CF4 Plugins sich nicht mit den Hauptdateien verhaken und es für individuelle Templates auch immer Changelogs gibt.

Das ein Feld, welches im CF4 dann neu eingeführt wurde, schon bei Dir existierte sollte also normalerweise nie vorkommen.


Ich weiß ja von anderen Anfragen sogar noch aus der CF3 Zeit, dass ihr/Du an Eurem Forum sehr viel eigenes entwickelt und dabei auch teilweise Boarddateien anpackt soweit mir bekannt ist, ich schätze mal Du hattest eventuell ein Testforum mit einer neueren CF4 Version und irgendwann mal die Datenbanken verbunden oder teilweise Tabellen oder Tabellenstrukturen von einem Board ins andere kopiert, könnte das sein? Oder das Script lief trotz dem Encoding Fehler schon mal halb durch aber hat nicht alle Schritte gemacht und daher die Dopplung später?

Auf jeden Fall ist es allerdings sogar gewollt, dass das Updatesystem so streng wie möglich ist.

Falls nämlich doch mal ein Problem entsteht, dann kann man - wie Du es dann absolut richtig getan hast - selbst nachsehen was hängt und das Problem bei sich individuell lösen und testen. Es wird ja vor Updates immer geraten ein Backup der Datenbank + Boarddateien anzufertigen: Es ist also gut, wenn eventuelle Probleme, die nicht vom Hersteller vorhergesehen waren, genau beim Update direkt passieren, sodass man im Ernstfall immer noch die Möglichkeit hätte ohne Datenverlust zurückzuspringen.

Wenn das Updatesystem allerdings bei Ausnahmen einfach mit der Schulter zuckt kann es sein, dass ein Problem entsteht, welches zunächst noch nicht erkannt wird. Das Update ist dann - scheinbar - korrekt gelaufen aber es schlummert ein Problem im Board. So ist das Risiko dann gegeben, dass ein Problem erst später auffällt und dann mitunter schon Daten verloren gehen die danach entstanden, weil man auf ein früheres Backup zurückspringen müsste, oder noch schlimmer, dass der Fehler bereits in alle Backups "reingeschlichen" ist je nach dem wie spät man es merkt und wie viele Backups man von früher noch aufgehoben hat.

Aus diesem Grund ist es also durchaus gewollt, dass das Updatescript da bei allem meckert, was vom Herstellerplan abweicht. Egal wie unscheinbar es nun sein mag.

Allerdings bist Du da seit das CF4 draußen ist jetzt auch erst der Zweite Fall von hunderten Updates, der beim Updatescript mal ein Problem bekam (der eine andere war sogar auch mit dem Encoding, was dann aber seit 4.2 behoben wurde, weil es ein Bug mit einer fehlenden Konstante war), also diese Fälle passieren wohl wirklich sehr selten und dann wirklich höchstens dann, wenn ein Forum sehr stark modifiziert wurde und nicht vielleicht ausschließlich auf Plugins gesetzt wurde.

LG,
Chris
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Aachen
Beiträge: 328
Dabei seit: 05 / 2005
Betreff:

Re: DB-Fehler bei Update 4.1 auf 4.5

 · 
Gepostet: 15.07.2019 - 20:22 Uhr  ·  #3
Hey,

danke für die Rückmeldung dazu. Hab gerade mal noch in einer CF3-Datenbanksicherung geschaut und kann dort kein "classic_index_layout" als Konfiguration entdecken. Im CF3-Code kann ich es auch nirgends entdecken. Keine Ahnung also wie es dahin kam. Klar haben wir im CF3 damals ein paar Dinge angepasst, aber ich kann mich nur die Herstellung von Kompatibilität zu neueren PHP-Versionen erinnern - nicht daran irgendwelche Konfigurationsfelder gesetzt zu haben die es offenbar erst im CF4 dann gibt. Eine Mischung aus beiden hatten wir auch nie am Laufen.
Admin
Avatar
Geschlecht:
Herkunft:
Alter: 34
Homepage: cback.de
Beiträge: 17242
Dabei seit: 12 / 2003
Betreff:

Re: DB-Fehler bei Update 4.1 auf 4.5

 · 
Gepostet: 15.07.2019 - 21:14 Uhr  ·  #4
Hallo!

Ebenfalls vielen Dank, dass Du nochmal nachgesehen hast!

In dem Fall gehe ich fast von meiner zweiten Vermutung aus, dass der Updater vielleicht aus irgend einem Grund unterbrochen war oder der Konstantenfehler der 4.1 noch zugeschlagen hat. Oder wegen der vielen Änderungen von 4.1 auf 4.5 irgend eine Grenze dicht gemacht hat.

Darf ich zur Orientierung mal noch bitte fragen wie hoch Deine PHP memory_limit und max_execution_time ist und ob beim Updatescript es vor dem encoding Fehler erstmal ein bisschen "gerödelt" hat bis was kam oder das gefühlt recht direkt auftrat?

Ggf. werde ich um sowas in Zukunft zu vermeiden es dann so machen, dass das Updatescript bei mehreren Versionssprüngen automatisch von Version zu Version springt (mit neuladen) damit die Brocken nicht ganz so groß werden. Wenn aus irgend einem Grund etwas abbricht weiß er dann auch, wie weit er schon gekommen ist statt erst alle Updateschritte zu machen und ganz am schluss erst die Versionsnummer zu aktualisieren.

LG,
Chris
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Aachen
Beiträge: 328
Dabei seit: 05 / 2005
Betreff:

Re: DB-Fehler bei Update 4.1 auf 4.5

 · 
Gepostet: 15.07.2019 - 21:23 Uhr  ·  #5
memory_limit 128M
max_execution_time 30

Ich hab das ja bei mir auf einer VM gemacht. Da gabs keinerlei Verzögerung beim Laden. Er war quasi mit Aufruf schon "fertig" (indem er mir den Encoding-Fehler anzeigte). Auf dem Live-System hab ichs noch vor mir, denke aber dort wirds ebenso fix gehen (dann aber richtig, weil ich vorbereitet bin).
Admin
Avatar
Geschlecht:
Herkunft:
Alter: 34
Homepage: cback.de
Beiträge: 17242
Dabei seit: 12 / 2003
Betreff:

Re: DB-Fehler bei Update 4.1 auf 4.5

 · 
Gepostet: 15.07.2019 - 21:39 Uhr  ·  #6
Ja okay das ist ne Menge da ist sicherlich nichts übergelaufen.

Schätze mal dann hat echt nur ein alter Bug reingefunkt, werde aber beim nächsten Update diesem Scriptchen nochmal einen intensiveren Stresstest in verschiedenen Konstellationen widmen. :) Zumindest bei Dir ist ja das Problem unter Kontrolle, dann bist Du zumindest nicht aufgehalten. :)

LG,
Chris
Gewählte Zitate für Mehrfachzitierung:   0

Registrierte in diesem Topic

Aktuell kein registrierter in diesem Bereich

Die Statistik zeigt, wer in den letzten 5 Minuten online war. Erneuerung alle 90 Sekunden.