17.06.2008, 10:51
|
#31 (permalink)
| | WPD-Moderator
Registriert seit: 31.05.2005 Ort: Gera Ghetto
Beiträge: 3.312
| Zitat:
Zitat von infected @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. |
| |
17.06.2008, 12:17
|
#32 (permalink)
| | PostRank: 0
Registriert seit: 17.06.2008
Beiträge: 10
| 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: Code: class StringReader {
var $_pos;
var $_str;
function StringReader($str='') {
$this->_str = $str;
$this->_pos = 0;
}
function read($bytes) {
$data = substr($this->_str, $this->_pos, $bytes);
$this->_pos += $bytes;
if (strlen($this->_str)<$this->_pos)
$this->_pos = strlen($this->_str);
return $data;
}
function seekto($pos) {
$this->_pos = $pos;
if (strlen($this->_str)<$this->_pos)
$this->_pos = strlen($this->_str);
return $this->_pos;
} ändern in Code: class StringReader {
var $_pos;
var $_str;
function StringReader($str='') {
$this->_str = $str;
$this->_pos = 0;
}
function my_substr($in, $pos, $len) {
$out = "";
for ($i = $pos; $i <= $pos + $len; $i++) {
$out .= $in[$i];
};
return $out;
}
function read($bytes) {
$data = $this->my_substr($this->_str, $this->_pos, $bytes);
$this->_pos += $bytes;
if (strlen($this->_str)<$this->_pos)
$this->_pos = strlen($this->_str);
return $data;
}
function seekto($pos) {
$this->_pos = $pos;
if (strlen($this->_str)<$this->_pos)
$this->_pos = strlen($this->_str);
return $this->_pos;
} Bei mir läuft's damit bisher problemlos. |
| |
17.06.2008, 12:40
|
#33 (permalink)
| | WPD-Team
Registriert seit: 30.03.2008 Ort: Leipzig
Beiträge: 1.770
| Zitat:
Zitat von Beatinu 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 Zitat:
<?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 ! |
| |
17.06.2008, 13:49
|
#34 (permalink)
| | PostRank: 0
Registriert seit: 17.06.2008
Beiträge: 10
| Zitat:
Zitat von codestyling 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... |
| |
17.06.2008, 14:12
|
#35 (permalink)
| | WPD-Team
Registriert seit: 30.03.2008 Ort: Leipzig
Beiträge: 1.770
| Es wäre gut, wenn infected das ebenfalls mal testen könnte, ich würde mir heute abend einen performanten Workarround überlegen. Deshalb wäre ein bestätigter Test, das es daran liegt, sehr wertvoll. |
| |
17.06.2008, 14:27
|
#36 (permalink)
| | PostRank: 10
Registriert seit: 09.07.2006 Ort: Nettetal
Beiträge: 6.960
| 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.
__________________ mf | So ist das halt: Mal biste Hund, mal biste Baum...
|
| |
17.06.2008, 14:46
|
#37 (permalink)
| | WPD-Team
Registriert seit: 30.03.2008 Ort: Leipzig
Beiträge: 1.770
| Zitat:
Zitat von infected Was testen? | Wenn du Alphawolf's Vorschlag durch hast, und es immer noch passiert, wäre Beatinu's Patch der nächste Versuch, so meinte ich das, sorry.
Wäre schon übel, sollte es unter Stress-Situationen in der substr() Funktion zu solchen spontanen Problemen kommt! |
| |
17.06.2008, 17:44
|
#38 (permalink)
| | PostRank: 10
Registriert seit: 09.07.2006 Ort: Nettetal
Beiträge: 6.960
| 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 Zitat:
(ja, manchmal kann wirklich die einfache Lösung die richtige sein )
| doch noch recht 
__________________ mf | So ist das halt: Mal biste Hund, mal biste Baum...
Geändert von infected (17.06.2008 um 18:07 Uhr).
|
| |
17.06.2008, 18:15
|
#39 (permalink)
| | WPD-Team
Registriert seit: 30.03.2008 Ort: Leipzig
Beiträge: 1.770
| Zitat:
Zitat von infected 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  | 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. |
| |
17.06.2008, 18:27
|
#40 (permalink)
| | PostRank: 10
Registriert seit: 09.07.2006 Ort: Nettetal
Beiträge: 6.960
| 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... EDIT: Kommando zurück! 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 Zitat: 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.
__________________ mf | So ist das halt: Mal biste Hund, mal biste Baum...
Geändert von infected (17.06.2008 um 18:40 Uhr).
|
| | | Themen-Optionen | | | | Ansicht | Linear-Darstellung |
Forumregeln
| Es ist dir nicht erlaubt, neue Themen zu verfassen. Es ist dir nicht erlaubt, auf Beiträge zu antworten. Es ist dir nicht erlaubt, Anhänge hochzuladen. Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten. HTML-Code ist aus. | | | Alle Zeitangaben in WEZ +1. Es ist jetzt 00:47 Uhr. | |