Depuis le passage d’un site de SPIP 4.2 à SPIP 4.4.7,
nous observons une pollution importante des logs par des messages :
Erreur 0 de mysql
dans sql_seek()
ecrire/src/Compilateur/Iterateur/Sql.php
Le problème est reproductible uniquement dans le cas suivant :
présence d’une boucle paginée (ex : articles d’une même rubrique)
appel direct de pages > 1 par des bots, via des URLs du type :
?debut_articles_rubrique=20
l’affichage est fonctionnel, aucune erreur SQL réelle n’est constatée
En navigation normale (clics sur la pagination), l’erreur ne se produit jamais.
Comparaison :
SPIP 4.2 : comportement silencieux (boucle vide si offset hors plage)
SPIP 4.4 : log systématique « Erreur 0 de mysql » alors que mysql_errno = 0
Le message est généré lors de l’appel à sql_seek(),
qui considère un offset hors plage comme une erreur,
alors qu’il s’agit d’un cas normal en pagination directe.
Impact :
pollution importante des fichiers spip.log / mysql.log
masquage d’erreurs réellement pertinentes
uniquement causé par des crawlers appelant directement les pages > 1
Contournement actuel :
définir _LOG_FILTRE_GRAVITE à 2
Mais cela masque aussi d’autres messages potentiellement utiles.
Des tests de correctif local dans Sql.php ont été tentés,
mais toute tentative d’interception à ce niveau introduit des régressions
(désactivation partielle de l’affichage lors d’appels directs).
Question :
ce comportement de journalisation est-il volontaire en 4.4 ?
existe-t-il une manière propre d’éviter le log dans le cas mysql_errno = 0 ?
un retour au comportement silencieux de SPIP 4.2 est-il envisageable ?
Hum, effectivement il semble y avoir un souci quelque part, et nous observons également de nombreux logs identiques sur contrib.spip.net par exemple.
La requête incriminée commence toujours par SELECT COUNT(*) semble t’il ce qui suppose un problème relatif à une optimisation sur les paginations (introduit en SPIP 4.4 justement).
Hum… Ce serait plus sympa si tu ouvrais le ticket toi même plutôt que de compter toujours sur la poignée de devs qui sont sur la brèche … Peux-tu réessayer de créer ton compte en vérifiant que tu as bien validé de ton côté ? (les admins doivent aussi gérer beaucoup de spams d’inscriptions à Gitllab donc il semble que l’inscription fonctionne).
Merci
En tout cas je viens de tester depuis une adresse email autre que jpai perso : aucun problème pour créer le compte, pas de page vide et je recois bien une notif…