Fehlermeldungen nach Update auf 2.5

**Relaunch von WPDE.org**

WPDE.org wurde kürzlich unter neuer Führung übernommen und technisch vollständig modernisiert.

Neuer Betreiber ist:
**Maximilian Rupp, Tannenweg 24, 66629 Freisen**

Im Zuge der Übernahme wurde das Forum auf eine aktuelle technische Basis gestellt und wird nun aktiv weiterentwickelt.

Das Thema Datenschutz wird dabei selbstverständlich berücksichtigt.
Sollte jemand sein Benutzerkonto nicht weiterführen wollen, kann dieses jederzeit bequem über die Kontoeinstellungen gelöscht werden.

Bei Fragen oder Anliegen könnt ihr euch jederzeit gerne melden.
Wir arbeiten gerade im Hintergrund an der neuen Foren Struktur, daher wird noch nicht alles passen und es kann vorkommen das Themen/Beiträge noch in Foren sind wo es nicht rein passt. Ebenso sind noch nicht alle Bereiche fertig, die Icons werden noch gesetzt und entsprechende Labelgruppen werden noch konfiguriert für die Foren. Sobald die neue Foren Struktur fertig ist wird der Hinweis wieder entfernt.
  • Also auf mich wirkt das wie ein simples PHP Limits Problem, was wir hier ja schon öftter hatten durch die recht große Sprachdatei.

    Die dritte Fehlermeldung spricht ja eine eindeutige Sprache. Die ersten beiden Meldungen könnten Resultate daraus sein. Die gettext Bibliothek erwartet offenbar einige Bytes mehr, die aber aufgrund des Prozedurabbruchs nicht übertragen wurden...

    Schon das PHP-Limit bzw. Execution Limit erhöht?

    Bitte dazu auch mal dies hier ausführen WordPress Deutschland FAQ » Wie erfahre ich welche PHP Version mein Anbieter eingerichtet hat? und verlinken.

    wpseek.com - Die WordPress-Code-Suchmaschine

    Edited once, last by Alphawolf (June 16, 2008 at 11:03 AM).

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

    Wenn du Fragen hast, kannst du dich gerne jederzeit an @Maximilian Rupp wenden

    Hinweis: folgt noch

  • Also auf mich wirkt das wie ein simples PHP Memory Problem, was wir hier ja schon öftter hatten durch die recht große Sprachdatei.

    Die dritte Fehlermeldung spricht ja eine eindeutige Sprache. Die ersten beiden Meldungen könnten Resultate daraus sein. Die gettext Bibliothek erwartet offenbar einige Bytes mehr, die aber aufgrund des Prozedurabbruchs nicht übertragen wurden...

    Schon das PHP-Limit bzw. Execution Limit erhöht?


    Schon klar, aber der Damage tritt ein, wenn der Ajax Text benutzt werden soll. Im Falle des Ajax Calls (autosave), wird ja wesentlich weniger geladen als es brauchte, die gesamte Admin Seite zu beschriften. Bei einem de_DE.mo mit 224 KB, das maximal 4 mal größer werden kann, komme ich auf 1MB. Zur Darstellung und Beschriftung des Admin Bereichs wird die Datei ja auch geladen, warum sollte es da gehen und bei Ajax, der weniger macht nicht ?

    Zusatz: Wenn ich den Ajax Call zu autosave modifiziere und dies hier testhalber darin als Response ausführen lasse:

    Code
    echo "Jetzt ist Schluss hier!";die(0);

    Dann bekomme ich eine rot umrandete Box mit meinem Text innerhalb des schwarzen Kastens. Also ist definitiv irgendwas im Ajax call nicht so, wie es sollte.

  • Die dritte Fehlermeldung spricht ja eine eindeutige Sprache. Die ersten beiden Meldungen könnten Resultate daraus sein.

    Ist es nicht eher so, dass die 3. Meldung aus den ersten beiden resultiert? Die execution_time steht bei mir auf 30. Ich lasse es mal erhöhen. Aber ich denke auch nicht, dass es daran liegen wird. Dann hätte ich bestimmt auch mit so manchen aufwendigen Plugins Probleme, oder?!

    Aber nochmal zurück zu dem Patch: Es könnte vielleicht doch noch klappen. Ich war ein bisschen voreilig und habe vergessen den Browsercache zu leeren. Ich denke er hatte dann noch die gecachte stream.php beansprucht. Hab´s gerade nachgeholt und beobachte es nochmal.

    Edited once, last by mfitzen (June 16, 2008 at 3:01 PM).

  • Aber nochmal zurück zu dem Patch: Es könnte vielleicht doch noch klappen. Ich war ein bisschen voreilig und habe vergessen den Browsercache zu leeren. Ich denke er hatte dann noch die gecachte stream.php beansprucht. Hab´s gerade nachgeholt und beobachte es nochmal.


    Also der Browsercache hat da nix mit zu tun, wenn dann der WP Cache, falls du den aktiviert hast oder ein Caching Plugin läuft. Und falls dein Server nicht PHP als CGI sondern als fast-cgi oder mod_php ausführt, kann der Apache und/oder cgi Manager noch die alte php gecached haben. Bei mir läuft leider alles über php cgi pur, sodas ich dies derzeit nicht nachstellen kann.

    PS: Screenshot oben mit eingefügt, nur der Vollständigkeit halber.

  • Also das time limit kann nicht weiter erhöht werden (wegen shared server). So viel dann schonmal dazu.

    Das einzige was ich in der phpinfo unter loaded modules von den beiden genannten Sachen sehen kann ist mod_php5. fast_cgi kann ich nicht ausfindig machen.

  • Kann es sein, das bei dir die Speichern/Publizieren Buttons vor sich hinblinken die ganze Zeit ?

    Dann wäre es sinnvoll, mal das autosave interval hochzusetzen in der wp-config.php

    PHP
    define('AUTOSAVE_INTERVAL', 180);

    Das wären dann alle 3 Minuten zwischenspeichern. Ich habe das auf 1 Sekunde bei mir mal testhalber gestellt und dann speichert der bei jedem Tastendruck im Editor dessen gesamten Inhalt. Bei im Speicher des Apache ausgeführtem PHP kann das dann leicht zur Überlastung desselben führen, denn du bombardierst mit Text-Tippen den Server mit immer mehr Post requests, die vom Autosave Script ausgelöst werden.

    Falls es das auch nicht ist, muß ich noch mal in mich gehen. Vielleicht fällt mir noch was ein, aber dann ist es eine harte Nuss.

    ... und nimm den Link zu phpinfo wieder raus, ist nicht 100% safe das Ganze. :)

  • Das ist es definitiv auch nicht. Auto Saves werden bei mir auch nur alle 3 Minuten gemacht.

    Seit meiner Meldung von heute Morgen hatte ich aber keinerlei Probleme mehr. Ich beobachte nebenbei auch mal meinen "normalen" Blog. Dort habe ich Deinen Patch noch nicht eingebaut. Mal sehen wo der Fehler zuerst wieder auftaucht.

    Den Link zur phpinfo wollte alphawolf doch haben... naja, ich kann ihn auch wieder rausnehmen.

    Mann... Wär ich doch auch nur so´n Crack, dann könnte ich mich auch mal selber auf die Suche machen...:|

  • Schon klar, aber der Damage tritt ein, wenn der Ajax Text benutzt werden soll. Im Falle des Ajax Calls (autosave), wird ja wesentlich weniger geladen als es brauchte, die gesamte Admin Seite zu beschriften.


    Schau dir mal den Call Stack an: http://www.zoosau.de/wp_error/

    Es wird die komplette Gettext Bibliothek geladen. Daher nachwievor mein Verdacht, dass es einfach an PHP Limits liegt. Habe gerade geschaut, ich habe auch 30 Sek. als max_execution_time. Interessant wäre daher nochmal die phpinfo, welchen Wert er bei Memory Limit hat.

    Generell, und nur um diese Fehlerquelle auszuschließen, würde ich alle WP-Core-Dateien nochmal neu hochladen. Vllt ist eine Datei korrupt durch einen FTP-Übertragunsfehler (ja, manchmal kann wirklich die einfache Lösung die richtige sein ;)).

    wpseek.com - Die WordPress-Code-Suchmaschine

    Edited once, last by Alphawolf (June 16, 2008 at 8:25 PM).

  • Schau dir mal den Call Stack an: http://www.zoosau.de/wp_error/

    Es wird die komplette Gettext Bibliothek geladen. Daher nachwievor mein Verdacht, dass es einfach an PHP Limits liegt. Habe gerade geschaut, ich habe auch 30 Sek. als max_execution_time. Interessant wäre daher nochmal die phpinfo, welchen Wert er bei Memory Limit hat.

    Einspruch, Euer Ehren!
    Der translate() Aufruf erfolgt in der Mapper Klasse class gettext_reader, die wiederum ihre Implementation auf einen Member der Klasse class CachedFileReader aufsetzt. Dieser wird bei Initialisieren die de_DE.mo komplett in den Speicher laden und alle seek, tell und sonstigen Aufrufe basieren auf dem $this->_str Inhalt, der ja schon gelesen wurde (binärer, kompletter Fileinhalt).

    Wenn ich also einen int auspacken lassen will, ist die Data schon im Speicher, es sei denn ich hab nur die Table of Contents Struktur aus der de_DE.mo lesen können und der seek weis zwar wohin er soll, aber da ist nix mehr.

    Und wie gesagt, der Aufruf und Aufbau der Admin Seite zum Editieren der Posts verbraucht mehr Speicher als der Aufruf der Ajax Funktion, die maximal einen Text String returned.

  • So Männers, gerade vom Fußball zurück... Wie gesagt hatte ich in 2 Installationen (eine mit und eine ohne Codestyling´s Patch) Artikel verfasst und beide mal munter speichern lassen während ich weg war. Bei beiden tritt der Fehler auf! Also hilft der Patch schonmal nicht (hab´s nur nochmal getestet um wirklich sicher zu gehen).

    Alphawolf: Das derzeitige Memory-Limit steht auf 65M. Ich werde morgen, wie von Dir vorgeschlagen die Core Dateien nochmal neu hochladen und dann testen was passiert.

  • Alphawolf: Das derzeitige Memory-Limit steht auf 65M. Ich werde morgen, wie von Dir vorgeschlagen die Core Dateien nochmal neu hochladen und dann testen was passiert.


    Okay, dann kann es kein PHP Limit sein, denn ich habe auch 30 Sek und 32 MB Memory Limit, also weniger als du. Habe aber trotzdem nicht das Problem.

    wpseek.com - Die WordPress-Code-Suchmaschine

  • So, hab auch mal ne Weile debugt, da mein Blog auch mit dem Fehler "Type V: not enough input, need 4, have 0 [...]" ausgestiegen ist. Das Problem trat erst nach einer Weile auf und hing davon ab, was auf meinen anderen Seiten los war (gleiche Installation). Für mich sieht es nach einem Fehler von substr() aus. Hier die Quick&Dirty-Korrektur:

    In Datei wp-includes/streams.php:

    Original:

    ändern in

    Bei mir läuft's damit bisher problemlos.

  • So, hab auch mal ne Weile debugt, da mein Blog auch mit dem Fehler "Type V: not enough input, need 4, have 0 [...]" ausgestiegen ist. Das Problem trat erst nach einer Weile auf und hing davon ab, was auf meinen anderen Seiten los war (gleiche Installation). Für mich sieht es nach einem Fehler von substr() aus.

    Und hier ein passender PHP Bug, der schon gemeldet wurde: PHP Bugs: #40754: substr() checks overflow

    Quote


    <?php

    $v = 2147483647; # INT_MAX on 32bit Linux

    # Tries to allocate too much memory
    var_dump(substr("abcde", 1, $v));

    var_dump(substr_replace("abcde", "x", $v, $v));

    Allerdings immer byteweise zu vergrößern, wäre ein Performance Problem, denn ein de_DE.mo enthält > 2000 Textpaare, von den int's mal ganz abgesehen !


  • Allerdings immer byteweise zu vergrößern, wäre ein Performance Problem, denn ein de_DE.mo enthält > 2000 Textpaare, von den int's mal ganz abgesehen !

    Das ist wahr. Leider gehen einem die schnellen (weil intern auf memcpy basierend) Optionen aus, wenn so eine wichtige Funktion wie substr kaputt ist.
    Hab jetzt nicht recherchiert, daher weiss ich nicht, warum das riesen File erstmal komplett in einen String gelesen wird und dann wieder alles aus dem String geholt wird. Wäre es nicht besser, direkt aus dem File zu lesen? Naja, schätze das wird wegen der Performance gerade nicht so gemacht...

  • Was testen? Den Code, den Beatinu gepostet hat? Teste gerade noch die Variante von Alphawolf: Einfach mal die Core Dateien neu hochgeladen. Bislang keine Fehler, aber das hat gestern ja auch ewig gedauert bis der erste wieder kam. Geb euch aber dann heute Nachmittag/Abend ein kurzes Feedback.

  • Ich trau mich fast gar nicht es zu sagen, aber ich denke/hoffe das Problem hat sich gelöst. Bislang keinerlei Fehler.

    Hoffentlich war´s dann auch die entgültige Lösung. Dann hätte Alphawolf mit seiner Aussage

    Quote

    (ja, manchmal kann wirklich die einfache Lösung die richtige sein ;-))

    doch noch recht :-D

    Edited once, last by mfitzen (June 17, 2008 at 6:07 PM).

  • Ich trau mich fast gar nicht es zu sagen, aber ich denke/hoffe das Problem hat sich gelöst. Bislang keinerlei Fehler.

    Hoffentlich war´s dann auch die entgültige Lösung. Dann hätte Alphawolf mit seiner Aussage doch noch recht :-D


    Ich bin ja auch für einfache Lösungen und wenn es geht, dann ist es ja für Produktivsysteme ok. Aber dennoch bin ich nicht zufrieden mit dieser Lösung, denn:

    Wenn ein ungeänderter Programmcode 100 mal mit exakt den gleichen Eingangsdaten (was dein permanentes Zwischenspeichern ja ist) funktioniert und bei der 101ten Ausführung plötzlich nicht mehr, dann ist da was faul.
    Gleicher Code und identischer Input kann keine 2 Resultate haben.

  • Schon richtig, 2 unterschiedliche Resultate bei identischen Dateien kann eigentlich nicht sein. Wie gesagt, bis jetzt ist es auch nur die Hoffnung, dass es die richtige Lösung war. Kann natürlich auch nur Zufall sein, dass der Fehler heute (scheinbar) nicht auftritt... Eine Frage habe ich jedoch: Kann das was mit dem FTP Übertragungsmodus zu tun haben? Ich hab gerade mal nachgesehen. Wenn ich das Downloadpaket entpacke, liegt die Datei im UNIX Format vor. Kopiere ich sie auf den Server und lade sie dann von dort nochmal auf den Server, dann hat sie das DOS Format. Dadurch ändert sich auch die Dateigröße geringfügig...

    [COLOR=Red] EDIT:[/COLOR] [COLOR=Red]Kommando zurück![/COLOR] Vielleicht hätte ich das eben nicht schreiben sollen... Ist ja lange genug gut gegangen. Prompt werde ich wieder mit ner schönen Meldung bestraft

    Quote


    Warning: unpack() [function.unpack]: Type V: not enough input, need 4, have 0 in /www/htdocs/xxxxxx/test2/wp-includes/gettext.php on line 91

    Warning: unpack() [function.unpack]: Type V: not enough input, need 4, have 0 in /www/htdocs/xxxxxx/test2/wp-includes/gettext.php on line 91

    Fatal error: Maximum execution time of 30 seconds exceeded in /www/htdocs/xxxxxx/test2/wp-includes/gettext.php on line 166

    Ich werd gleich mal Beatinu´s Tipp testen.

    Edited once, last by mfitzen (June 17, 2008 at 6:40 PM).

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!