php.exe bricht Script ab

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • php.exe bricht Script ab

    Hi Leute,

    zuerst die Konfiguration: IIS 5.1 unter Windows XP Pro, PHP 4.3.10., MySQL 5.0.24.

    Ich habe folgendes Problem: ein Script von mir bereitet Daten aus einer MySQL-Tabelle mit ca. 6,6 Millionen Datensätzen auf. Es lief über ca. 3 Jahre hinweg problemlos und stabil (die > 6 Millionen Datensätze waren schon immer da), doch seit 1 Woche ca. bricht das Script bei Anfrage von bestimmten Daten einfach so ab, ohne eine einzige Fehlermeldung auszugeben. Die Daten sind Werte, die mit Datums-Zeiträumen verküpft sind. Unter bestimmten Bedingungen und bestimmten Datumszeiträumen tritt der Fehler auf...

    - z.B. zeige mir alle Werte von Kunde X mit Datum bis zum 16.10.2010 >> funktioniert.
    - z.B. zeige mir alle Werte von Kunde X mit Datum bis zum 17.10.2010 (oder später) >> funktioniert nicht mehr...

    Eine MySQL-Fehlermeldung gibt es nicht, da ich nach allen Queries mir ein "echo" ausgeben lasse und das wird auch ausgegeben, d.h. die Queries laufen korrekt ab. Es kann also meiner Logik nach nur an der Aufbereitung der Daten liegen. Das interessante ist, dass es nicht an der Datenmenge liegen kann, denn wenn z.B. 1000 Datensätze gefunden werden, bricht es nicht ab, wenn der Fehler auftritt werden aber nur ca. 200 Datensätze bearbeitet...

    Ich lese mir alle Daten über eine While-Schleife (mysql_fetch_array) in ein sehr großes Array und baue dann über eine foreach-Schleife eine Tabelle auf.

    Das Script lief auf einem Webserver - dort bekam ich gar keine Fehlermeldung, sondern bloß eine nicht fertig aufgebaut HTML-Seite (es brach z.B. mitten im Aufbau einer Tabelle ab: <td width=" --> und aus). Nun habe ich das Problem auf meinem Entwicklungsrechner (IIS, WinXP) reproduziert und ich bekomme eine Fehlermeldung, dass php.exe einen Fehler verursacht hat: "Die Anweisung in "0x100b7dd9" verweist auf Speicher in "0x000000004". Der Vorgang "written" konnte nicht auf dem Speicher durchgeführt werden."

    Nun meine Fragen:
    - kann es sein, dass nicht-deklarierte Variablen den Fehler verursachen können? Wenn ich error_reporting auf "ALL" stelle, kommen zahlreiche Notices - die habe ich leider damals immer unterdrückt - nicht sehr edel, aber ich weiß, dass PHP alle Variablen, die nicht deklariert sind, automatisch auf "0" setzt. Aber vielleicht verursacht das den Fehler?

    - kann man grob Gründe nennen, die php.exe abstürzen lassen?

    Danke für jede Hilfe und jeden Tipp - habe keine Idee!

    Greetz Skalu

  • #2
    PHP 4.3.0 ist doch hoffnungslos veraltet. Weg mit dem Dreck.

    Kommentar


    • #3
      ansonsten solltest du dir halt ALLE Einträge mal genau anschauen, die eben am 17.10. erzeugt wurden... Scheinbar verschluckt er sich enorm bei einem der Einträge von diesem Tag.
      Ansonsten musst du halt das ganze Debugging Programm wieder hochziehen .. error-reporting .. nicht nur ein paar Echos ... vermutlich würde die Abfrage bis 17.10ten Mehr Datensätze liefern, als die Abfrage bis 16.10., aber er verschluckt die restlichen Daten ...

      Andererseits - nicht nur PHP 4 ist veraltet ... dein IIS könnte auch ne Verjüngungskur vertragen, wenn's geht

      es könnte natürlich auch einfach sein, dass deinem Script der Speicher ausgeht, wenn du alle Ergebnisse in einem großen Ergebnisarray hast
      [font=Verdana]
      Wer LESEN kann, ist klar im Vorteil!
      [/font]

      Kommentar


      • #4
        Die Fehlermeldung klingt sehr nach Speicherzugriffsschutz.
        Entweder will PHP (Core oder irgendeine Extension) oder IIS (on behalf of PHP?) auf Speicher zugreifen, der nicht in dem vom OS zugewiesenen Bereich liegt
        oder die Speicheradresse existiert überhaupt nicht (0x4 kommt mir sehr "klein" vor, evtl. ein Bug in der Adressverwaltung/-berechnung von PHP/IIS)
        oder der Speicherzugriffsschutz ist fehlerhaft (sehr unwahrscheinlich, aber bei Windows weiß man ja nie *sic*).
        Also ich tippe auf ein nicht für deine Maschine kompiliertes PHP-Modul.

        Kommentar


        • #5
          Hi Leute,

          vielen Dank für eure Antworten! Ich habe nun die PHP-Version auf 5.3.3 upgedated und nun läuft alles wieder gut (trotz altem IIS 5.1)! Warum php.exe abgebrochen hat, weiß ich zwar noch immer nicht, aber ist nun auch egal

          Danke, Skalu

          Kommentar

          Lädt...
          X