Zurück   WordPress Deutschland Forum > Support > Installation

Antwort
 
Themen-Optionen Ansicht
Alt 17.06.2008, 10:51   #31 (permalink)
WPD-Moderator
 
Benutzerbild von Alphawolf
 
Registriert seit: 31.05.2005
Ort: Gera Ghetto
Beiträge: 3.312
Zitat:
Zitat von infected Beitrag anzeigen
@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.
__________________
FAQ // Doku // Erbreiterungen
wpseek.com // WordPress World Map
Alphawolf ist offline   Mit Zitat antworten
Alt 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.
Beatinu ist offline   Mit Zitat antworten
Alt 17.06.2008, 12:40   #33 (permalink)
WPD-Team
 
Benutzerbild von codestyling
 
Registriert seit: 30.03.2008
Ort: Leipzig
Beiträge: 1.770
Zitat:
Zitat von Beatinu Beitrag anzeigen
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 !
__________________
It's not a bug, it's always a feature. | Code Styling | Plugins | Plugins & Themes übersetzen
codestyling ist offline   Mit Zitat antworten
Alt 17.06.2008, 13:49   #34 (permalink)
PostRank: 0
 
Registriert seit: 17.06.2008
Beiträge: 10
Zitat:
Zitat von codestyling Beitrag anzeigen
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...
Beatinu ist offline   Mit Zitat antworten
Alt 17.06.2008, 14:12   #35 (permalink)
WPD-Team
 
Benutzerbild von codestyling
 
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.
__________________
It's not a bug, it's always a feature. | Code Styling | Plugins | Plugins & Themes übersetzen
codestyling ist offline   Mit Zitat antworten
Alt 17.06.2008, 14:27   #36 (permalink)
PostRank: 10
 
Benutzerbild von infected
 
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...
infected ist offline   Mit Zitat antworten
Alt 17.06.2008, 14:46   #37 (permalink)
WPD-Team
 
Benutzerbild von codestyling
 
Registriert seit: 30.03.2008
Ort: Leipzig
Beiträge: 1.770
Zitat:
Zitat von infected Beitrag anzeigen
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!
__________________
It's not a bug, it's always a feature. | Code Styling | Plugins | Plugins & Themes übersetzen
codestyling ist offline   Mit Zitat antworten
Alt 17.06.2008, 17:44   #38 (permalink)
PostRank: 10
 
Benutzerbild von infected
 
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).
infected ist offline   Mit Zitat antworten
Alt 17.06.2008, 18:15   #39 (permalink)
WPD-Team
 
Benutzerbild von codestyling
 
Registriert seit: 30.03.2008
Ort: Leipzig
Beiträge: 1.770
Zitat:
Zitat von infected Beitrag anzeigen
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.
__________________
It's not a bug, it's always a feature. | Code Styling | Plugins | Plugins & Themes übersetzen
codestyling ist offline   Mit Zitat antworten
Alt 17.06.2008, 18:27   #40 (permalink)
PostRank: 10
 
Benutzerbild von infected
 
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).
infected ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

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.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist aus.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus



Alle Zeitangaben in WEZ +1. Es ist jetzt 00:47 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.6.0 | Impressum | Ein Inpsyde.com Projekt