Probleme mit ASECO - Allowed memory size exhausted

KSD-Anglos

Herzlich willkommen!
Hallo.
Ich hoffe ich habe jetzt kein eigentliches schon bestehendes Thema überlesen...

Folgendes Problem:
Beim Abspeichern der recs auf einem! von insgesamt 4 laufenden TMNF Servern stürzt ASECO ständig ab. Grund hierfür ist folgender Fehler:
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 16 bytes) in /server-1/aseco5.2/plugins/plugin.rasp.php on line 252

Ich habe ein wenig gegoogelt und so erfahren das das Problem die allowed Memory Size ist, die iwo festgelegt ist.
Leider konnte ich nicht in Erfahrung bringen, in welcher Datei diese geregelt ist.
Außerdem wundert mich, daß dieser Fehler erst jetzt auftritt und nicht von vorneherein bestand.

Die Kommandozeile in der er den Fehler ausgibt ist folgende:
Code:
// get ranked records for all tracks
$trank = array();
foreach ($tracks as $track) {
$query = 'SELECT PlayerId FROM records
WHERE challengeid=' . $track . '
ORDER BY score,date
LIMIT ' . $maxrecs;  // save work later on
$res = mysql_query($query);
$i = 1;
if (mysql_num_rows($res) == 0) {
$trank[$track] = array();
} else {
HIER ----->     while ($row = mysql_fetch_object($res)) {     <-----HIER
$pid = $row->PlayerId;
$trank[$track][$pid] = $i++;
}
}
mysql_free_result($res);
}

Für eine Antwort/Erklärung wäre ich sehr dankbar.

Mfg, Anglos
 
Zuletzt bearbeitet:
Das Speicherlimit von PHP auf deinem Server ist auf 8 MB begrenzt. Das bedeutet, sobald das Schript mehr als 8 MB RAM beansprucht, wird es von PHP abgewürgt. Das soll verhindern, das schlecht geschriebene Scripte in einem Sonderfall den gesammten Arbeitsspeicher des Server auffressen und so die Kiste zum Stillstand bringen.

Wie viel Speicher ASECO nun wirklich braucht kann ich nicht sagen aber du kannst den Wert selbst erhöhen. Wenn du Zugriff auf die Konfigurationsdateien des Server hast, setzte / ändere einfach den folgenden Wert in folgendem Bereich in deiner php.ini:
Code:
;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;

memory_limit = 32M

Nach der Änderung musst du ASECO neu starten.
Das sollte genügen. Reicht das immer noch nicht, kann es auch an anderer Stelle haken.

Wenn du keinen Zugriff auf die Konfigurationsdateien des Servers hast, kannst du am Anfang der Aseco.php folgenden Eintrag machen.

Code:
<?PHP
ini_set('memory_limit', '32M');

Auch in diesem Fall ASECO neu starten.
 
Oben