[spip-dev] Lenteur ENORME sur spip cvs d'hier

salut,

impossible d'afficher la moindre page avec le spip CVS que j'ai récupéré
hier.

A priori, ça se cache dans inc_auth.php3, dans auth(), dans la partie
dédiée à la vérif des cookies/.htaccess

Ca y est, ça recommence... Avec la CVS tout fraiche.

Le plus bizarre, c'est qu'à chaque fois que ça se produit, c'est qq
jours après un cvs update...

J'ai viré le CACHE, zappé les inc_meta, refait le inc_connect... rien,
toujours impossible.

Et j'ai oublié comment j'avais résolu la fois passée (!)

1/ quelqu'un sait pourquoi ce genre de trucs se passe ?
2/ Comment je peux rétablir le service :wink:

En fait, j'aimerais surtout savoir comment éviter de reprodure cette
chose (puisque ça semble lié avec un décalage aux upgrades CVS....

Ca y est, ça recommence... Avec la CVS tout fraiche.

Le plus bizarre, c'est qu'à chaque fois que ça se produit, c'est qq
jours après un cvs update...

J'ai viré le CACHE, zappé les inc_meta, refait le inc_connect... rien,
toujours impossible.

Et j'ai oublié comment j'avais résolu la fois passée (!)

T'as essayé de désactiver tous les machins automatiques ?
(syndication, moteur de recherche, newsletter, inscription au site)

J'ai plus accès à ecrire/ à partir du moment où la phase d'install est
terminée.

Autrement dit, dans inc_auth, y'a un truc qui fait tout planter (enfin..
qui ne répond pas)...

A+

La dernière fois, c'était sur les fonctions liées à .htaccess dans
inc_auth...

La dernière fois, c'était sur les fonctions liées à .htaccess dans
inc_auth...

Mhhh. Je pencherais plutôt pour un problème avec ta version de
ecrire/inc_connect.php3

Peux-tu la mettre de côté (PAS L'EFFACER), réinstaller la connexion MySQL,
et nous l'envoyer (en privé et/ou en effaçant les données de connexion) si
c'était ça ? ( Je pense qu'il va falloir faire une détection automatique
d'un certain format d'inc_connect... )

-- Fil

Mhhh. Je pencherais plutôt pour un problème avec ta version de
ecrire/inc_connect.php3

Hum... j'ai mis un return "true" dans la fonction de validation
d'authentification, et c'est ok. Tout marche. Bien sûr plus
d'authentification, donc un accès privé utilisable par tous.

Pour ce qui est de l'accès public, j'ai simpmlemetn placé un exit juste
avant la phase de detection de cookie tout ça, enfin... le truc qui sert
à mettre les boutson "recalculer" en bas de pages, et là aussi, c'est
ok.

C'est donc bien un pb de méthode d'authentification.... non ?

Peux-tu la mettre de côté (PAS L'EFFACER), réinstaller la connexion MySQL,
et nous l'envoyer (en privé et/ou en effaçant les données de connexion) si
c'était ça ? ( Je pense qu'il va falloir faire une détection automatique

Hum... à quoi penses-tu ?

Pour la partie publique. Le problème se situe ici (inc_syndic) :
function executer_une_indexation_syndic() {
        $visiter_sites = lire_meta("visiter_sites");
        if ($visiter_sites == "oui") {
                $query = "SELECT id_syndic FROM spip_syndic WHERE statut='publie
' ".
                        "AND date_index < DATE_SUB(NOW(), INTERVAL 7 DAY) ORDER BY date_index LIMIT 0,1";
exit;
                if ($result = spip_query($query)) {
                        while ($row = spip_fetch_array($result)) {
                                $id_syndic = $row['id_syndic'];
                                indexer_syndic($id_syndic);
                                spip_query("UPDATE spip_syndic SET date_index=NOW() WHERE id_syndic=$id_syndic");
                        }
                }
        }
}

Le exit, placé là où il est, permet de résoudre les problèmes d'accès
publics.

Par contre, impossible de reproduir le bug sur le site en prod
actuellement... je vais devoir attendre la prochaine syndication (!)

Un test de sortie manquant au while ?
Peut-être pourrait-on déporter ces indexations dans d'autres pages
(genre chargées en tâche de fond) pour éviter de pénaliser le visiteur
lrs d'une grosse réindexation/re syndication/envoi de mails en nobmre...

A+

                if ($result = spip_query($query)) {
                        while ($row = spip_fetch_array($result)) {
                                $id_syndic = $row['id_syndic'];
                                indexer_syndic($id_syndic);
                                spip_query("UPDATE spip_syndic SET date_index=NOW() WHERE id_syndic=$id_syndic");

Le exit, placé là où il est, permet de résoudre les problèmes d'accès
publics.

Essaie de mettre le exit() juste avant indexer_syndic(), plutôt ?

-- Fil

Je vais essayer, mais j'ai pas moyen de reproduire la planterie (la
syndication est passé, plus de pb jusqu'à la prochaine...)