PHP Fatal error: Allowed memory size of 134217728 bytes exhausted

di il
6 risposte

PHP Fatal error: Allowed memory size of 134217728 bytes exhausted

Salve,
premetto che non sono un programmatore professionista ...
Ho inserito un loop JS all'interno di un programma PHP per controllare in continuo se un nuovo record viene inserito in una tabella di mysql.
Tutto funziona solo che dopo un giorno o due il sistema (WAMP Server) mi si blocca con un errore di memoria.
Qualcuno può darmi una mano ? GRAZIE !!

Ecco l'errore (parte) e la funzione che viene lanciata ogni 2 secondi.

[24-Aug-2018 15:23:30 UTC] PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 10489856 bytes) in Unknown on line 0
[24-Aug-2018 15:23:30 UTC] PHP Stack trace:
[24-Aug-2018 15:23:30 UTC] PHP 1. {main}() C:\wamp64\www\Eos_Tat_Meter\checkRecords\trigger_c heck_timestamp_tubes.php:0
[24-Aug-2018 15:23:30 UTC] PHP 2. trigger_check_timestamp_tubes_apl->controle() C:\wamp64\www\Eos_Tat_Meter\checkRecords\trigger_c heck_timestamp_tubes.php:1915
.......
==============================
function foo()
{
$.ajax({
url: "../checkRecords/trigger_check_timestamp_tubes.php",
type:"POST",
data: {id:1},
success: function(result){
//alert(result);
if(result != "") window.location.href = "grid_tubes_labo_red.php?t=<? echo $timer_timer ?>";
}});

}

============================== programma richiamato da JS che controlla se nel db è arrivato un nuovo record.
$check_sql = "SELECT CONCAT( 'A' , COUNT(*)) FROM `do_update` WHERE `description` = 'red_tubes' AND `updated` = 0";
sc_lookup(rs, $check_sql);
$rs_val = {rs[0][0]} ;
//echo "RS " . $rs_val . "<br>" ;

if ({rs[0][0]} === false)
{
echo "Access error. Message=". {my_data_erro} ;
}
elseif ({rs[0][0]}=='A0')
{
echo "";
}
else
{
echo "NEW RECORD";
}

6 Risposte

  • Re: PHP Fatal error: Allowed memory size of 134217728 bytes exhausted

    Può essere un po' di tutto, compresi leak di php o scriptcase.
    inizia a togliere dalla equazione questo ultimo e verifica di avere php 5.4 o successivo.
    Aumenta o diminuisci memory_limit per farti una idea
  • Re: PHP Fatal error: Allowed memory size of 134217728 bytes exhausted

    Ciao e grazie per risposta...
    scusa la mia ignoranza.. ma non so cosa sono il leak....
    Versione PHP su WAMP Server è la 7.2.4
    memory_limit = 128M

    inizia a togliere dalla equazione questo ultimo...
    Mi spieghi gentilmente cosa devo fare... scusa ancora
  • Re: PHP Fatal error: Allowed memory size of 134217728 bytes exhausted

    Utilizzi una libreria (mezzo framework), scriptcase, per fare quella query.
    per capire se il problema risiede lì, cioè in un errore della libreria che non libera adeguatamente la memoria che utilizza, man mano "consumandola", fino ad arrivare all'errore, ti suggerisco di far eseguire direttamente la query, ad esempio con PDO, sicchè eliminare un candidato dall'elenco dei possibili problemi.

    Tra l'altro non mi è chiarissimo perchè fai un busy waiting del genere, invece di far segnalare dal client (cioè da js dentro il browser) al server (PHP) che "qualcosa" è avvenuto
  • Re: PHP Fatal error: Allowed memory size of 134217728 bytes exhausted

    Da non programmatore avevo iniziato con fare refresh della griglia ogni 2 secondi da Scriptcase . Ovviamente iI lampeggiamento continuo dello schermo era obrobrioso ...
    L'unico modo per evitarlo era di inserire un JS che facesse il refresh solo quando un nuovo record arrivava a valle di un lettore barcode.
    Purtoppo io uso Scriptcase come fosse un Ms Access senza avere le competenze di cosa succede dietro.
    Magari anche un trigger su mysql potrebbe avvertirmi ma non so neanche da dove iniziare... ;-((
    Quella del JS dentro il server... idem come sopra ;-(
    Scusa se te lo chiedo ma per caso conosci anche tu Scriptcase. Magari potremmo sentirci per un piccola collaborazione.
  • Re: PHP Fatal error: Allowed memory size of 134217728 bytes exhausted

    giovannino ha scritto:


    Da non programmatore avevo iniziato con fare refresh della griglia ogni 2 secondi da Scriptcase . Ovviamente iI lampeggiamento continuo dello schermo era obrobrioso ...
    L'unico modo per evitarlo era di inserire un JS che facesse il refresh solo quando un nuovo record arrivava a valle di un lettore barcode.
    Purtoppo io uso Scriptcase come fosse un Ms Access senza avere le competenze di cosa succede dietro.
    Magari anche un trigger su mysql potrebbe avvertirmi ma non so neanche da dove iniziare... ;-((
    Quella del JS dentro il server... idem come sopra ;-(
    Scusa se te lo chiedo ma per caso conosci anche tu Scriptcase. Magari potremmo sentirci per un piccola collaborazione.
    A dir la verità conosco quello, e altro.
    Ad esempio il trigger mysql non serve assolutamente (in questo caso).
    Il lettore del codice a barre cosa fa, esattamente?
  • Re: PHP Fatal error: Allowed memory size of 134217728 bytes exhausted

    Crea direttamente un record o aggiorna una data di quel record creato.
    Praticamente in Pronto soccorso creano il record leggendo il barcode delle provette, poi quando arrivano il Laboratorio un altro lettore barcode aggiorna un campo data/time di quel record.
    E' una procedura a se credo in dot.net.
Devi accedere o registrarti per scrivere nel forum
6 risposte