[spip-dev] Bug au passage 2.1.23 - rapport aux revisions et generer_action_auteur ?

Bonjour,

Quelques soucis lors du passage de SPIP 2.1.19 à 2.1.23.

Sur un de mes sites, aucun problème.

et sur un autre, problème !

Après quelques essais, je crois que ça vient des données en base et que ça a un rapport avec les révisions.

Parce que le site sur lequel ça fonctionne, les révisions n’étaient pas activées.

Et le site sur lequel ça ne fonctionne pas, elles sont activées.

Du coup, j’ai installé un SPIP 2.1.23 tout neuf que j’ai configuré à l’identique (config SPIP, squelettes, plugins, etc.).

Et je n’ai pas observé le problème (malgré les révisions activées).

Par contre, en important les données du site avec lequel j’avais le problème, j’ai de nouveau eu le problème.

Le problème en question :

Lorsque je change le statut d’un article, ça mouline un peu puis ça s’arrête.

Le nouveau statut n’est pas visible à l’écran mais si je recharge la page, en fait si…

Au niveau des logs, j’ai les mêmes symptomes que ceux décrits ici :

http://forum.spip.net/en_253967.html

Et aussi d’autres actions comme l’ajout d’un auteur à l’article : une fois l’auteur sélectionné, ça mouline et je me retrouve avec un layout SPIP complet imbriqué dans la zone rechargée…

Même effet à la suppression de l’auteur.

Et même effet que le changement de statut lorsque je clic sur le lien “désinstaller” d’un plugin. (et ce n’est pas un pb de cache SPIP…)

Du coup, j’ai fait un diff entre la 2.1.19 et la 2.1.23 et j’ai trouvé le changement qui provoque le plantage :
http://core.spip.org/projects/spip/repository/diff/branches/spip-2.1/ecrire/inc/actions.php?utf8=%E2%9C%93&rev=20463&rev_to=20323

Si je remets le fichier inc/actions.php de la 2.1.19, et que je vide le cache, ça fonctionne de nouveau.

Si je remets celui de la 2.1.23, j’ai de nouveau les problèmes.

Je ne sais pas trop à quoi sert ce changement.

Un rapport avec generer_action_auteur…

Mais ça poserait un problème avec les données des révisions en base ?

Julien

Merci d'avoir isolé le problème. Je ne le reproduis pas, mais as-tu des plugins activés ?

Essaye quand même quelque chose parce qu'en relisant ma modif, il y a quelques chose qui me trouble.
A la place de:
  $r = ($public ? _DIR_RESTREINT_ABS : _DIR_RESTREINT) .
    generer_url_ecrire($ret, $gra, true, $public);
mets
  $r = ($public ? _DIR_RESTREINT_ABS : _DIR_RESTREINT) .
    generer_url_ecrire($ret, $gra, true, true);

Est-ce que ça résoud le pb ?

Committo,Ergo:Sum

Oui, ça résout tous les symptomes que j’évoquais :slight_smile:

Et ok avec ton trouble ! (par rapport à la valeur par défaut que tu attribuais à $public, le test d’origine passait false au lieu de true…).

Pour les plugins, j’en ai tout un tas d’activés oui, des plugins de spip-contrib et des plugins persos.

C’est pour ça que je suis reparti d’un SPIP neuf, et après avoir remis tous les plugins en questions, ça fonctionnait.

C’est quand j’ai ré-importé les données que le problème est apparu.

donc ça ne m’étonne pas que ce soit difficile à reproduire… moi, même, un site sur 2 que j’ai migré a eu le problème (celui qui gèrait des révisions, et les logs semblaient y faire un peu allusion, de loin).

Merci, pour cette réponse rapide.

Julien

Bon tant mieux, et j'ai envoyé la correction dans 20786.
Mais je suis tout de même surpris par ce que tu décris:
c'est le mod_security d'Apache qui flingue toutes les URL absolues dans les Query-string,
et donc il ne faut pas en produire car il peut être actif (il ne l'est pas toujours).
J'en avais fait apparaître avec cette modif donc, ce qui est un vrai problème.
Mais je ne vois pas en quoi l'état de la base pourrait influer sur la production de ces URL.
Il reste un mystère.

  Committo,Ergo:Sum

Mais je ne vois pas en quoi l’état de la base pourrait influer sur la production de ces URL.

Je crois que j’ai cherché midi à 14h. ça va être plus simple pour reproduire le problème…

La donnée en question qui posait problème était l’URL du site public (de la page ?exec=configuration).

qui n’était pas bonne, suite à mes migrations…

Avec la bonne url, plus de problème (y compris sans la correction 20786)…

ceci dit, la correction rend cela bien moins sensible :slight_smile:

Ah bon je préfère ça. Car je répete que la modif en question n'est utile que si le mod_security d'Apache est actif.

Committo,Ergo:Sum