Dotclear

Vous n'êtes pas identifié(e).

Annonce

13 février 2024 Sortie de Dotclear 2.29

#1 2010-05-09 15:54:13

zeiram
Membre
Inscription : 2004-06-27
Site Web

"Connection reset by peer" avec la dernière nightly

Hello.

J'ai un "petit" problème avec la dernière nightly (rev 3067).

Situation de départ : serveur en local WAMP, installation toute fraîche de Dotclear 2.1.6 (mais avec une base de données qui est passée par toute une série de versions 2.2-alpha). Tout va bien, mes blogs s'affichent...

Complication : Mise à jour vers la dernière nightly (que ce soit via la mise à jour automatique[1] ou en décompactant manuellement le fichier zip de la nightly) : l'administration continue à fonctionner à merveille, mais la partie publique des blogs ne s'affiche plus (avec un connection reset by peer).

Je n'arrive à trouver aucune trace d'erreur dans les fichiers de log (apache, PHP ou MySQL). J'ai désactivé tous les plugins et thèmes installés (sauf ceux par défaut) : le problème persiste. Si le chemin pour les thèmes (themes_path) pointe sur un répertoire invalide, j'obtiens bien la page d'erreur de Dotclear m'indiquant que le thème par défaut n'est pas trouvé (ce qui me laisse supposer que le problème est bien du côté de Dotclear et non de ma config Apache).

Par acquis de conscience, j'ai également désactivé tous mes fichiers .htaccess : aucun changement par rapport à ce problème.

Dans une installation qui a vécu au travers de plusieurs nightlies (les trois dernières que j'avais installées : r2999, r3032 et r3055), j'ai exactement le même comportement.

Et là, je sèche... je ne sais plus où chercher pour essayer de trouver une solution. C'est pourquoi je fais appel à votre science. Quelqu'un aurait-il une idée de piste sur laquelle je pourrai me lancer pour trouver l'origine de ce problème ? Ou est-ce que quelqu'un d'autre aurait le même problème (au moins je me sentirai moins seul) ?

[1] La mise à jour automatique pose d'ailleurs quelques problèmes car certains dossiers (inc/clearbricks/diff, plugins/tags, plugins/tags/js et plugins/tags/img) n'existent pas. Après création de ces dossiers, la mise à jour peut s'effectuer.


« Y a des jours où faut pas m'chercher !! Et y a des jours tous les jours ! »

Hors ligne

#2 2010-05-09 16:02:58

Tomtom33
Responsable des travaux finis
Lieu : Barcelone
Inscription : 2006-06-13

Re : "Connection reset by peer" avec la dernière nightly

Salut :)

Je suis pratiquement sur que c'est du au nouveau compilateur de thème. Le chargement de PHP en tant que module sous un environnement Windows a du mal avec les grosses regex. La solution : passer PHP en CGI.

Pour plus d'info sur le pourquoi du comment et la solution, je te conseille la lecture de ce post


Le lab => http://lab.dotclear.org
Besoin d'un plugin? => http://plugins.dotaddict.org
Besoin d'un thème? => http://themes.dotaddict.org
Besoin d'une astuce? => http://tips.dotaddict.org

Hors ligne

#3 2010-05-09 16:10:37

zeiram
Membre
Inscription : 2004-06-27
Site Web

Re : "Connection reset by peer" avec la dernière nightly

Un grand grand merci m'sieur Tomtom33... Tu viens de me faire régler en cinq minutes un problème qui m'a irrité toute la journée... :-)


« Y a des jours où faut pas m'chercher !! Et y a des jours tous les jours ! »

Hors ligne

#4 2010-05-09 16:14:53

Tomtom33
Responsable des travaux finis
Lieu : Barcelone
Inscription : 2006-06-13

Re : "Connection reset by peer" avec la dernière nightly

Mais je t'en prie :)


Le lab => http://lab.dotclear.org
Besoin d'un plugin? => http://plugins.dotaddict.org
Besoin d'un thème? => http://themes.dotaddict.org
Besoin d'une astuce? => http://tips.dotaddict.org

Hors ligne

#5 2010-05-09 16:42:04

zeiram
Membre
Inscription : 2004-06-27
Site Web

Re : "Connection reset by peer" avec la dernière nightly

Mais je ne suis pas encore sorti de l'auberge... car mes thèmes sont partis complètement à l'ouest avec cette nouvelle nightly ! :-/ On dirait bien que le nouveau moteur de template foire complètement mon thème (je me retrouve avec un '</div>' dans un attribut 'href'... c'est pas bon du tout ça !)


« Y a des jours où faut pas m'chercher !! Et y a des jours tous les jours ! »

Hors ligne

#6 2010-05-09 17:01:46

Tomtom33
Responsable des travaux finis
Lieu : Barcelone
Inscription : 2006-06-13

Re : "Connection reset by peer" avec la dernière nightly

Une révision de ton thème s'impose alors :)

Tu as bien vidé le cache de Dotclear, du navigateur, tout ça?


Le lab => http://lab.dotclear.org
Besoin d'un plugin? => http://plugins.dotaddict.org
Besoin d'un thème? => http://themes.dotaddict.org
Besoin d'une astuce? => http://tips.dotaddict.org

Hors ligne

#7 2010-05-09 17:13:25

zeiram
Membre
Inscription : 2004-06-27
Site Web

Re : "Connection reset by peer" avec la dernière nightly

Yep, of course! ;-)

J'ai trouvé le "coupable" pour une partie de mes problèmes...  (mais pas encore la solution). Dans le _public.php du thème, je fais un appel à $core->blog->getDates($params), et si je donne une valeur à $params['post_type'], une erreur (mystère laquelle, car je n'ai aucune trace dans aucun fichier de log) se produit et interromp tout le traitement du fichier tpl faisant cet appel. Je soupçonne le changeset 3042 d'être la cause de mes maux.


« Y a des jours où faut pas m'chercher !! Et y a des jours tous les jours ! »

Hors ligne

#8 2010-05-09 17:58:00

Tomtom33
Responsable des travaux finis
Lieu : Barcelone
Inscription : 2006-06-13

Re : "Connection reset by peer" avec la dernière nightly

Hummm, tu as une piste effectivement. Je pense que comme $params est utilisé pour beaucoup de balises afin de passer les paramètres aux fonctions, le fait de ne pas réinitialiser le tableau peut causer ce genre de problème. Il faut voir comment contourner ce problème, si c'est bien ça :p

J'ai prévenu les copains, on va regarder ça de plus près ;)


Le lab => http://lab.dotclear.org
Besoin d'un plugin? => http://plugins.dotaddict.org
Besoin d'un thème? => http://themes.dotaddict.org
Besoin d'une astuce? => http://tips.dotaddict.org

Hors ligne

#9 2010-05-09 18:03:18

zeiram
Membre
Inscription : 2004-06-27
Site Web

Re : "Connection reset by peer" avec la dernière nightly

Si jamais, voici la méthode de template qui pose problème chez moi (définie dans le _public.php de mon thème) :

  public static function LastArchiveURL($attr)
  {
		$p = '$params = array();';
		$p .= "\$params['type'] = 'month';\n";
		if (isset($attr['type'])) {
			$p .= "\$params['type'] = '".addslashes($attr['type'])."';\n";
		}
		
		if (isset($attr['category'])) {
			$p .= "\$params['cat_url'] = '".addslashes($attr['category'])."';\n";
		}

#		$p .= "\$params['post_type'] = 'post';\n";
#		if (isset($attr['post_type'])) {
#			$p .= "\$params['post_type'] = '".addslashes($attr['post_type'])."';\n";
#		}

		$p .=
		'if ($_ctx->exists("categories")) { '.
			"\$params['cat_id'] = \$_ctx->categories->cat_id; ".
		"}\n";
		
		$order = 'desc';
		if (isset($attr['order']) && preg_match('/^(desc|asc)$/i',$attr['order'])) {
			$p .= "\$params['order'] = '".$attr['order']."';\n ";
		}

		$p .= "\$params['previous'] = strftime('%Y-%m-%d %H:%M:%S');\n";

		$res = "<?php\n";
		$res .= $p;
		$res .= '$archives = $core->blog->getDates($params); unset($params);'."\n";
		$res .=
		'while ($archives->fetch()) { echo $archives->url($core); } $archives = null; ?>';
		return $res;
  }

Les quatre lignes commentées sont la cause de mon problème.

(Bon, au problème suivant : gallery qui n'arrive plus à charger ses classes en autoload...)


« Y a des jours où faut pas m'chercher !! Et y a des jours tous les jours ! »

Hors ligne

#10 2010-05-10 06:27:18

Dsls
Modérateur couteau-suisse
Inscription : 2004-11-18
Site Web

Re : "Connection reset by peer" avec la dernière nightly

Hello,

Mea culpa, c'est un bug que j'ai introduit dans le changeset 3042, corrigé avec le changeset 3078 (voir dans class.dc.blog.php, méthode getDates, il y a un =' en trop après un post_type).

Cela dit, cette erreur m'a permis de déceler un souci ailleurs (l'erreur entraine une page 404 alors qu'elle ne devrait pas), chose que je vais m'atteler à corriger. Cela est notamment lié à la gestion des exceptions et des pages d'erreur ...


Dyslexics have more fnu!

Hors ligne

#11 2010-05-10 06:27:28

Tomtom33
Responsable des travaux finis
Lieu : Barcelone
Inscription : 2006-06-13

Re : "Connection reset by peer" avec la dernière nightly


Le lab => http://lab.dotclear.org
Besoin d'un plugin? => http://plugins.dotaddict.org
Besoin d'un thème? => http://themes.dotaddict.org
Besoin d'une astuce? => http://tips.dotaddict.org

Hors ligne

#12 2010-05-10 07:18:35

zeiram
Membre
Inscription : 2004-06-27
Site Web

Re : "Connection reset by peer" avec la dernière nightly

Super, merci beaucoup.

En lisant plus attentivement les changesets 3042 et 3078, une question me vient à l'esprit. J'ai le sentiment qu'il y a comme une incohérence : dans class.dc.blog.php, le post_type peut prendre plusieurs valeurs (utilisation du IN en SQL), alors que dans class.dc.template.php une seule valeur est possible (utilisation d'un = en SQL, voir par exemple ligne 665). Est-ce voulu ?


« Y a des jours où faut pas m'chercher !! Et y a des jours tous les jours ! »

Hors ligne

#13 2010-05-10 07:21:48

Dsls
Modérateur couteau-suisse
Inscription : 2004-11-18
Site Web

Re : "Connection reset by peer" avec la dernière nightly

Bonne remarque. Je pense qu'il faudrait effectivement généraliser le passage de post_types multiples. Ça va faire partie des prochaines évolutions :)


Dyslexics have more fnu!

Hors ligne

#14 2010-05-10 07:25:07

osku
Membre
Lieu : 28
Inscription : 2005-06-15

Re : "Connection reset by peer" avec la dernière nightly

Dans le même sac, on utilise un attr['type'] pour définir le $params['post_type'] dans Entries, ce qui est un peu confusionnant :)

Hors ligne

#15 2010-05-10 08:43:32

zeiram
Membre
Inscription : 2004-06-27
Site Web

Re : "Connection reset by peer" avec la dernière nightly

Bon, on va oublier tout de suite ma dernière remarque céans... En lisant un peu plus que juste un extrait de code, je me rends compte que la ligne incriminée dans class.dc.template.php s'occupe de donner une valeur à $params['post_type']... $params qui est ensuite passé en argument à $core->blog->getDates()... et getDates() qui fait (maintenant) bien son travail d'exploser ces valeurs pour faire un IN dans la requête SQL. Donc tout va bien (dans le meilleur des mondes)... et moi je vais retourner dormir, ça m'évitera d'écrire des âneries à moitié (et encore je suis gentil) réfléchies.


« Y a des jours où faut pas m'chercher !! Et y a des jours tous les jours ! »

Hors ligne

#16 2010-05-10 14:03:56

Dsls
Modérateur couteau-suisse
Inscription : 2004-11-18
Site Web

Re : "Connection reset by peer" avec la dernière nightly

Par acquis de conscience, j'ai testé des versions plus récentes de php que celle fournie par Wamp (5.3.0, livrée avec le PCRE 7.9), en l'occurrence xampp dernière version (1.7.3, livrée avec php 5.3.1 et le PCRE 8.0), et je n'ai pas de problème de plantage d'apache, même en module...


Dyslexics have more fnu!

Hors ligne

#17 2010-05-11 07:16:48

zeiram
Membre
Inscription : 2004-06-27
Site Web

Re : "Connection reset by peer" avec la dernière nightly

<mode humour="on">Donc ce que tu es en train de nous dire, c'est que les pré-requis pour la 2.2 de Dotclear seront PHP 5.3.1 avec PCRE 8.0 (pis faut bien le préciser, parce que Wamp propose également un PHP 5.3.1, mais toujours avec PCRE 7.9) ? Moi je dis que ça va grogner dans les chaumières... ;-) </mode>


« Y a des jours où faut pas m'chercher !! Et y a des jours tous les jours ! »

Hors ligne

#18 2010-05-11 07:23:25

Dsls
Modérateur couteau-suisse
Inscription : 2004-11-18
Site Web

Re : "Connection reset by peer" avec la dernière nightly

Je dis juste que sous windows, avec php<=5.3.0 et un PCRE<8.0, il vaut mieux configurer php en cgi, pour pas que le pcre se vautre lamentablement en faisant péter la stack d'apache :)


Dyslexics have more fnu!

Hors ligne

#19 2010-05-11 07:55:22

zeiram
Membre
Inscription : 2004-06-27
Site Web

Re : "Connection reset by peer" avec la dernière nightly

Mais est-on sûr que PCRE 8 règle bien le problème ? Et que ce n'est pas simplement une différence d'option de compilation d'Apache entre Wamp et Xampp (configuré avec un stack plus grand dans le deuxième cas) ? Car une des solutions que j'ai vues en recherchant le problème, c'est d'augmenter par après coup la taille du stack d'Apache grâce à la commande editbin.exe (pas pu tester, editbin venant avec Visual Studio et n'ayant pas cet outil). Source de l'info (tout en bas de page).


« Y a des jours où faut pas m'chercher !! Et y a des jours tous les jours ! »

Hors ligne

#20 2010-05-11 08:27:16

Mirovinben
M comme Mathusalem
Lieu : Dole (Jura)
Inscription : 2007-02-06
Site Web

Re : "Connection reset by peer" avec la dernière nightly

zeiram a écrit :

Donc ce que tu es en train de nous dire, c'est que les pré-requis pour la 2.2 de Dotclear seront PHP 5.3.1 avec PCRE 8.0 (pis faut bien le préciser, parce que Wamp propose également un PHP 5.3.1, mais toujours avec PCRE 7.9) ? Moi je dis que ça va grogner dans les chaumières...

A commencer par moi !

qui me permets de rappeler à votre attention cette question restée sans réponse...

[edit] Ben non, je viens d'avoir une réponse. Même qu'elle a diagnostiqué et résolu mon pb.

Dernière modification par Mirovinben (2010-05-11 09:06:30)

Hors ligne

Vous n'êtes pas identifié(e).

Pied de page des forums

Sites map