Log d'erreur sur les jobs public_produire_page article

Bonjour,

Suite à la correction des niveaux de log d’erreur faites par ce commit

Mon site sort plusieurs fois par jour des logs d’erreur de signature sur un job de calcul de cache d’article

spip_log('job signature invalide ' . var_export($row, true), 'queue.' . _LOG_ERREUR);

Le problème c’est que dans ce cas, $row contient le cache de l’article et son texte au format calculé par gzip_page. Je me retrouve donc avec beaucoup (beaucoup) de ligne contenant des caractères unicode dans les logs en prod.

D’abord ça surcharge vraiment les logs et rend complexe le fait de s’y retrouver seulement à l’oeil nu, d’autre part, un point qui me concerne plus, je fais régulièrement usage de grep à travers un script de parse de log pour voir ce qu’il se passe et ces caractères explosent mon script.

J’ai du mal à déterminer ce qui fait que je me retrouve avec des appels mal signés déjà, je suppose que cela vient du fait qu’on réinsère la ligne dans spip_jobs avec une signature obsolète dans schedule, mais je n’arrive pas à reproduire exactement le cas en local.

	// la signature n’est pas recalculée (elle devient invalide, mais elle ne devrait plus servir)
	sql_insertq('spip_jobs', array_merge($row, $update));

De ce que je constate, j’ai probablement eu ce comportement depuis longtemps, seulement je ne le voyais pas à cause du log mal configuré.

Je me demande si d’autres personnes constatent la même chose dans leur site ?

Je pense qu’il faudrait identifier la cause de cela et la corriger, mais je crois aussi que log $row en entier avec le texte complet d’un article est une mauvaise idée. Il faudrait être plus précis dans le log, qu’en pensez vous ?

merci

S’il y a plus sémantique qu’un gzip effectivement ce serait mieux.
Tu pourrais ouvrir un ticket sur spip / spip · GitLab

Mais pour avancer de ton côté, as tu pu voir quels jobs ça concerne ?

Est-ce que tu sais quel plugin fait cela ? cache cool ?

@JLuc @marcimat Vu le job je suis quasi certain que c’est cache_cool, un exemple de log, une fois enlevé args

(pid 3977087) :Pub:ERREUR: job signature invalide array (
  'id_job' => '134754427',
  'descriptif' => '[Re0] Calcul du cache article [principal]',
  'fonction' => 'public_produire_page',
  'md5args' => 'c497c832bda5c28eda33f53856432814',
  'inclure' => '',
  'priorite' => '0',
  'date' => '2026-09-03 00:28:45',
  'status' => '1',
  'signature' => '17ab2996e341823fbd9527a7e30f78516c489e923ee5f975e1f58cd440c20ebb',
)

Je dis quasi car je n’ai pas encore réussi à reproduire l’erreur en local, donc pas 100% mais bon, vu le nom du job et la ligne de cache_cool

job_queue_add('public_produire_page',$c="[Re$elapsed] Calcul du cache $fond [$where]",$args,"",TRUE);

On va quand même dire 99% ça vient de ces jobs, on prod ça m’arrive quand même plusieurs fois par jour.

Pour le ticket je le créé dans spip/spip uniquement ? J’aurai tendance à dire qu’il y a une part coté cache_cool ?