SPIP 4.4.x – Logs « Erreur 0 de mysql » sur pagination appelée directement (sql_seek)

Bonjour,

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 ?

Merci pour vos avis.

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).

As-tu un compte sur git.spip.net pour créer un ticket sur Tickets · spip / ecrire · GitLab ?

Non, pas de compte, je viens d’en créer un mais il n’est pas encore actif semble-t-il

@Funky je ne trouve pas ta demande d’inscription. tu a utilisé quel pseudo/email?

(Maïeul a supprimé l’email pour limiter le spam)… A moins que l’inscription ne se soit pas bien passée et que je ne l’aie pas remarquée ?

Frank

@Funky je confirme aucune trace d’une demande d’inscription.

C’est bien cette page que tu a rempli Inscription · GitLab ?

C’est bien celle-là. Pas besoin de réessayer si tu sais ouvrir le ticket à ma place ?

Frank

···

On 1/8/2026 10:03 AM, Maïeul Rouquette via Discuter de SPIP wrote:

Maïeul Rouquette maieul
Janvier 8

@Funky je confirme aucune trace d’une demande d’inscription.

C’est bien cette page que tu a rempli Inscription · GitLab ?


Voir le sujet ou répondre à cet e-mail pour répondre.

Pour vous désabonner de ces e-mails, cliquez ici.

Sans virus.www.avast.com

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 :slight_smile: … 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

J’ai retenté une inscription, quand je valide ça part sur une page vide, et (un biathlon plus tard !) qui n’a pas bougé d’un cil… Raté donc.

bizarre @funky je viens de te crler un compte manuellement. Dis moi si tu a recu le lien pour definir ton mot de passe.

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…

‌Vu que ce matin, c’est bon. Merci