Je travaille sur une tâche CRON qui invoque un script PHP script qui fait beaucoup de travail de base de données avec des boucles.
Il s'exécute correctement lorsque je limite l'ensemble de données, mais lorsque je l'exécute par rapport à l'ensemble de données complet, le script s'interrompt avec un message :
Killed
set_time_limit est (0) et memory_limit est (-1)
Voici la section du code où il meurt systématiquement :
echo "I'm in _getMemberDemographicAttrs\n";
if (! empty ( $member_id )) {
$query .= ' AND member_id = ' . $member_id;
}
$result = mysql_query ( $query, $this->_db );
if ($result) {
while ( $rule = mysql_fetch_assoc ( $result ) ) {
$rules [] = $rule;
}
if (! empty ( $rules )) {
mysql_free_result ( $result );
echo "I'm leaving _getMemberDemographicAttrs\n";
return $rules;
}
}
Le résultat ressemble à ceci :
I'm in _getMemberDemographicAttrs<br/>
I'm leaving _getMemberDemographicAttrs<br/>
I'm in _getMemberDemographicAttrs<br/>
I'm leaving _getMemberDemographicAttrs<br/>
I'm in _getMemberDemographicAttrs<br/>
Killed
Je n'ai jamais vu ce générique Killed
et je me demande ce qui fait qu'il est tué ?
0 votes
Je viens de recevoir cette erreur en PHP 7.4, et le coupable est une classe anonyme qui surcharge une méthode. J'ai ajouté un paramètre à la méthode de base dans la classe parent, mais j'ai oublié le paramètre dans la classe enfant anonyme. Pour une raison quelconque, PHP n'a pas analysé cela correctement et a monopolisé la mémoire jusqu'à ce que l'erreur OOM se produise.
Killed
le processus. L'ajout du paramètre manquant à la classe anon a réglé le problème. Pour être honnête, cela ressemble à un bug de PHP.