[TYPO3-UG Oesterreich] TER Update Fehler

Markus Klein m.klein at mfc-linz.at
Fri Apr 26 20:09:40 CEST 2013


Sorry, nicht weitergelesen.
Ja ich kann das mal reporten für dich.

Lg Markus

> -----Original Message-----
> From: typo3-at-bounces at lists.typo3.org [mailto:typo3-at-
> bounces at lists.typo3.org] On Behalf Of Markus Klein
> Sent: Friday, April 26, 2013 8:09 PM
> To: 'TYPO3 Usergroup Oesterreich'
> Subject: Re: [TYPO3-UG Oesterreich] TER Update Fehler
> 
> Hallo Markus,
> 
> magst du nicht gleich einen Bugreport im forge machen?
> 
> Kommentar zu mbstring:
> Ja mbstring wird default werden. Wurde auch innerhalb der Core Devs
> diskutiert. Bin mir nur grade nicht sicher ob für 6.1 oder 6.2.
> Die unperformante "Rad-Neuerfindung" wird "geschrottet", denn mbstring
> ist seit einiger Zeit ja bereits ein required php modul.
> 
> Lg Markus
> 
> > -----Original Message-----
> > From: typo3-at-bounces at lists.typo3.org [mailto:typo3-at-
> > bounces at lists.typo3.org] On Behalf Of Markus Kappe
> > Sent: Friday, April 26, 2013 7:41 PM
> > To: typo3-at at lists.typo3.org
> > Subject: [TYPO3-UG Oesterreich] TER Update Fehler
> >
> > Liebe TUGA Mitglieder,
> >
> > unter bestimmten Voraussetzungen hört der Spinner sich nicht auf zu
> > drehen, wenn man die Extension Liste aktualisieren will. TYPO3 6.0.x
> >
> > Wurde schon gemeldet unter http://forge.typo3.org/issues/43539 aber
> > dann aufgrund von Nicht-Nachvollziehbarkeit wieder geschlossen.
> >
> > Man untersucht den Ajax Call und sieht die Fehlermeldung Fatal error:
> > Maximum execution time of 30 seconds exceeded in /xxx/typo3_src-
> > 6.0.4/typo3/sysext/core/Classes/Charset/CharsetConverter.php
> > on line 2090
> >
> > Das heißt, das Error Handling versagt hier. Der User bekommt kein
> Feedback.
> >
> > Zum Fehler: Ich habe herausgefunden, dass eine Query fehlschlägt
> > (Insert in die Datenbank der importierten Extension-Details). Das hat 2
> Auswirkungen:
> > 1) Das Debugging wird ausgelöst, wenn es entsprechend konfiguriert ist
> > (devIpMask, sqlErrors, etc.). Das führt zum Timeout. Das erklärt,
> > warum manche das Problem haben und andere nicht.
> >
> > 2) Die Extensions aus dem aktuell bearbeiteten Batch (50 an der Zahl)
> > werden nicht in die Datenbank eingefügt.
> >
> > Wie kommt es zum DB Fehler?
> > Das Insert lautet ca so:
> > INSERT INTO tx_extensionmanager_domain_model_extension
> > (extension_key, version, integer_version, alldownloadcounter,
> > downloadcounter, title, ownerusername, author_name, author_email,
> > authorcompany, last_updated, md5hash, repository, state, review_state,
> > category, description, serialized_dependencies, update_comment)
> VALUES
> > ('qrcode', '1.0.0', 1000000, 155, 0, 'QR Code', 'b263', 'Bastian Braeu', '
> > bb at bftmedia.de', '', 1361908312, '3a7f3e83cbddbd910163ef5eb26d5937',
> > 1, 999, 0, plugin, 'Display QR codes as content elements, embed as
> > Fluidtemplate, or use the view helper in your own extensions.',
> > 'a:1:{s:7:\"depends\";a:3:{s:3:\"cms\";s:12:\"6.0.0-
> > 6.0.99\";s:7:\"extbase\";s:12:\"6.0.0-6.0.99\";s:5:\"fluid\";s:12:\"6.
> > 0.0-
> > 6.0.99\";}}',
> > 'TYPO3 CMS 6.0');
> >
> > Fehlermeldung: Unknown column 'plugin' in 'field list'
> >
> > Was auffällt ist, dass das Wort "plugin" nicht escaped wurde. Ein
> > Vergleich mit anderen Inserts zeigt, dass an der Stelle normalerweise eine
> Zahl steht.
> >
> > Vergleich mit dem XML, welches in SQL umgesetzt wird: hier ist bei
> > normal funktionierenden Datensätzen ein <category>plugin</category>.
> > Bei einigen wenigen falschen Datensätzen steht an der Stelle ein
> > <category>3</category> o.ä.
> >
> > D.h. 1) sind die Ausgangsdaten falsch und 2) werden falsche Daten
> > nicht ausreichend abgefangen.
> >
> > Zurück zum Fehler bei der Debug Ausgabe: die Zeit wird aufgebraucht in
> > TYPO3\CMS\Core\Encoder::encode() bei der Codierung der 21k großen
> > Debug Ausgabe.
> > Das encoden ist sehr unperformat geschrieben, es wird jedes Zeichen
> > unter Berücksichtigung des Zeichensatzes (UTF-8) aus dem 21k String
> > ausgeschnitten und separat encoded bevor es wieder zusammengesetzt
> > wird.
> > Nach ca. 7k Zeichen auf diese Art encoded gibt mein Server auf - es
> > sind 55 Sekunden vergangen (ca. 8 davon außerhalb des Encodings).
> >
> > Es gibt einen einfachen
> > Workaround: $GLOBALS['TYPO3_CONF_VARS']['SYS']['t3lib_cs_utils'] muss
> > auf mbstring gesetzt werden. iconv hat nicht funktioniert bei meinem
> > Test (timeout).
> >
> > Leider löst das nur einen Teil des Problems, denn die Debug Ausgabe
> > (die nun funktioniert) invalidiert den JSON Output des Ajax Calls.
> > Hier muss eindeutig noch ein Bugfix her.
> >
> > Ein anderer Workaround ist, das Debugging abzudrehen. Dann sollte das
> > mit dem Spinner funktionieren. Leider werden dabei trotzdem einige
> > Extensions nicht importiert (es werden immer 50 gleichzeitig in die DB
> > geschrieben und wenn ein Datensatz kaputt ist, fehlen anschließend die
> > anderen 49)
> >
> > Gut, wieder etwas gelernt: die Zeichensatz-Operationen müssen auf
> > mbstring konfiguriert werden damit TYPO3 vernünftig läuft (zumindest
> > bestimmte Aspekte von TYPO3). Meiner Meinung nach sollte mbstring die
> > Default Einstellung sein und die anderen Varianten nur als Fallback dienen.
> > Entweder hart codierte Fallbacks (so dass man gar nichts mehr
> > konfigurieren braucht - automatische Erkennung) oder mbstring wird
> > Default bei einer Neuinstallation und per Check im Install Tool (oder
> > Reports) wird überprüft ob das Modul verfügbar ist - Möglichkeit
> umzukonfigurieren.
> >
> >
> > Was muss jetzt noch gemacht wereden, damit das Problem behoben ist?
> >
> > Patch 1: Fehlermeldung beim Spinner, wenn der TER Import ein Problem
> > hat (d.h. kein gültiges JSON zurückkommt) Patch 2: mbstring als
> > Default verankern.
> > Patch 3: Datenkorrektur der "category 3"
> > Patch 4: Datenvalidierung bevor das Insert ausgeführt wird  // siehe
> > http://forge.typo3.org/issues/46115
> > Patch 5: eventuell encode() performanter neu schreiben // siehe
> > http://forge.typo3.org/issues/47124
> >
> > So, ich habe jetzt viel Zeit mit der Fehlersuche verbracht und möchte
> > freundlich anfragen, ob jemand so nett wäre und die Infos auf englisch
> > übersetzen und Bug Reports machen würde.
> >
> > Danke & LG
> > Markus
> > _______________________________________________
> > TYPO3-at mailing list
> > TYPO3-at at lists.typo3.org
> > http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-at
> 
> _______________________________________________
> TYPO3-at mailing list
> TYPO3-at at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-at



More information about the TYPO3-at mailing list