bernd: Fatal error

Hallo,

ich bekomme diese Meldung:

Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 15763254 bytes) in /customers/domain.de/domain.de/httpd.www/libs/ez_sql_core.php on line 374

Ich vermute mal, das in der DB eine Datei abgelegt wurde, die das Speicherlimit überschreitet. Oder liege ich das falsch?

Wie finde ich diese Datei? Ich würde es gern löschen. Wie müsste eine Abfage dazu aussehen?

Vielen Dank

  1. Ergänzung

    Es ist eine MySQL Datenbank

  2. Hallo Bernd,

    Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 15763254 bytes) in /customers/domain.de/domain.de/httpd.www/libs/ez_sql_core.php on line 374

    wie lautet die Anweisung in dieser Zeile?

    Ich vermute mal, das in der DB eine Datei abgelegt wurde, die das Speicherlimit überschreitet. Oder liege ich das falsch?

    Du kannst richtig liegen, Du kannst falsch liegen. Ohne nähere Informationen kann Dir niemand helfen. Du könntest z.B. das Abfrageergebnis einer Abfrage wie

      
    SELECT  
        a.*,  
        b.*,  
        c.*  
    FROM  
        a, b, c  
    
    

    abrufen. Läppische 50 Datensätze je Tabelle mit 50 Byte je Datensatz (jeder einzelnen Tabelle) reichten aus, um das Limit zu sprengen.

    Freundliche Grüße

    Vinzenz

  3. Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 15763254 bytes) in /customers/domain.de/domain.de/httpd.www/libs/ez_sql_core.php on line 374

    Könnte auch ein PHP Problem sein, siehe http://www.php.net/manual/en/ini.core.php#ini.memory-limit. Versuch mal am Anfang des Scripts memory_limit zu disablen mit

    ini_set('memory_limit', -1);

    ~JJ

  4. Hallo, Bernd

    ich bekomme diese Meldung:

    Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 15763254 bytes) in /customers/domain.de/domain.de/httpd.www/libs/ez_sql_core.php on line 374

    Ich vermute mal, das in der DB eine Datei abgelegt wurde, die das Speicherlimit überschreitet. Oder liege ich das falsch?

    Wie finde ich diese Datei? Ich würde es gern löschen. Wie müsste eine Abfage dazu aussehen?

    Wieso kommst du zu der Vermutung, dass in der Datenbank eine Datei "abgelegt" wurde? Für mich sieht das eher nach einem PHP-Fehler aus. Das Script versucht 15763254 Bytes an Speicher zu allozieren. Es hat insgesamt 16777216 Bytes zur Verfügung. Wenn es also vorher schon mindestens 1013963 (16777216 - 15763254 + 1) Bytes verbraucht hatte, wird es nicht mehr reichen. Es wäre gut, wenn du den Quellcode des Scripts zur Verfügung stelen könntest, sonst können wir nur raten, was das Script machen soll (und was es dann tatsächlich macht...).

    Ich finde übrigens die Zahl 15763254 schon recht groß (fast 16 MB). Das müssen ja ziemliche Monster von Objekten sein, mit denen du arbeitest. Aus meiner - zugegebenerweise etwas begrenzter Erfahrung mit PHP kenne ich es eher, dass man zum Beispiel in einer Schleife Arrays füllt und sich PHP dann beklagt, dass es keine 17 oder 38 oder 51 Bytes mehr allozieren kann, weil das array einfach schon so riesig ist, dass die 16777216 bytes aufgebraucht sind. Sprich bei mir waren es immer eher kleinere Objekte (oder Arayelemente), die dann das Fass zum Überlaufen gebracht haben.

    Liebe Grüße

    mbr

    1. Ich will nur noch abschließend "die Lösung" beschreiben.

      Beim System handelt es sich um ein Pligg-System. Die Caching-Funktion (zur schnelleren Darstellung der Inhalte) ist bei diesem Problem abgebrochen, weil im Cache eine (die aufgerufene) Datei eben fast 16 MB groß war. Nach Löschen dieser Datei funktioniert es wieder. (vorerst) Ich werde jetzt mal schauen was da schief gelaufen ist.

      Vielen Dank an alle.