J’ai un soucis avec les tâches de fond de spip.
Quand je vais sur la page de la liste des tâches cron en attente, elle est vide et des messages d’erreur s’affichent:
Je ne comprend pas trop d’où ca vient. La table spip_jobs est bien présente dans la base de donnée…
Je n’ai rien fait de particulier, ni installer de nouveaux plugins récemment.
Cela me le fait aussi en prod que sur ma version dev en local.
Oui je l’ai déjà fait mais ca n’a rien changé…
SI j’actualise la page, les message d’erreurs disparaissent.
Si je recalcule la page, ils apparaissent de nouveau.
Et j’ai remarqué dans les fichiers logs, je n’ai plus de fichier queue.log.
Bon alors j’ai cherché dans le code des fichiers et j’ai trouvé un truc:
Dans le fichier privé/objets/liste/jobs.html du core de spip, il y a cette boucle: <BOUCLE_liste_jobs(jobs) {id_job?} {where?} {status?} {recherche?} {tri #ENV{par,date}} {pagination #ENV{nb,20}}>
Je n’ai plus de message d’erreur et tous les jobs en attente s’affichent.
C’est normal d’utiliser seulement le nom en minuscule « jobs » pour appeler la table sql?
Bonjour,
Il y a quelque chose qui fait que le prefixe spip_ de la table spip_jobs est nécessaire dans ton cas. Tu es à jour en 4.4.25 ? Ton site n’a pas été hacké à un moment ? Tu n’aurais pas une surcharge (ou un plugin) quelque part qui gène ce fonctionnement ?
Après avoir rétabli le fichier dans son état d’origine, il faudrait peut-être essayer de :
renommer le dossier squelettes
renommer le dossier plugins
Et voir si de base le site fonctionne normalement avec ses jobs.
Ensuite réactiver les plugins un par un pour trouver celui qui pouiche (ou le squelette)…
Non cela sous-entend que la déclaration de la table « jobs » (spip_jobs) n’est pas faite (ou plus correctement) à SPIP et que SPIP ne la connait pas… C’est très très étonnant si c’est sur une mise à jour de SPIP seul de 4.4.24 à 25 qui plus est ; ou alors un autre plugin a été mis à jour, mais tu sembles dire que non.
C’est SQLite ? Mysql ?
Logiquement la page de gestion des plugins recalcule les déclarations de table, je suis étonné que cela corrige puis que les erreurs reviennent sur recalcul ensuite.
En renommant le dossier plugins, effectivement, l’erreur ne s’affiche plus et la liste des travaux en attente s’affiche bien.
Du coup, me reste plus qu’a réactiver les plugins un à un voir lequel pose problème…
Une fois le plugin identifié, il faut que je regarde surtout où? Au niveau du fichier paquet et des pipelines déclarées?
possiblement un pipeline declarer_tables_principales et particulièrement son retour (possiblement un oubli de return $flux; ou return $tables; selon, en fin de fonction. Ces pipelines sont généralement soit dans base/xxx.php soient dans {prefix}_administrations.php d’un plugin
C’était exactement ca @marcimat
Dans l’un de mes plugins perso, return $tables est passé à la trappe…
C’est étrange que cela n’ai jamais empêché les tables déclarées dans ce plugin de fonctionner normalement…
Merci pour votre aide