Projet

Général

Profil

Actions

Anomalie #318

fermé

Test Galette v0.7.1. Page blanche lors d'une action sur l'un des plugins.

Ajouté par Roland Telle il y a plus de 11 ans. Mis à jour il y a plus de 11 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
Plugins
Version cible:
-
Début:
06/08/2012
Echéance:
% réalisé:

100%

Temps estimé:
Version utilisée:

Description

Toute action menée sur les plugins Paypal et Admintools déclenche une page blanche. Les logs de Galette indiquent :

2012-08-06 17:28:43 - INFO --> PHP Notice: Undefined property: stdClass::$lieu_naissance in D:\xampp\htdocs\galette071\lib\Galette\Entity\Adherent.php on line 595 
2012-08-06 17:28:43 - INFO --> PHP Notice: Undefined property: stdClass::$gpgid in D:\xampp\htdocs\galette071\lib\Galette\Entity\Adherent.php on line 618 
2012-08-06 17:28:43 - INFO --> PHP Notice: Undefined property: stdClass::$fingerprint in D:\xampp\htdocs\galette071\lib\Galette\Entity\Adherent.php on line 620 
2012-08-06 17:28:43 - INFO --> PHP Notice: Trying to get property of non-object in D:\xampp\htdocs\galette071\includes\i18n.inc.php on line 226 
2012-08-06 17:28:43 - INFO --> PHP Notice: Trying to get property of non-object in D:\xampp\htdocs\galette071\includes\i18n.inc.php on line 226 

Encore tout faux ? :)

Mis à jour par Johan Cwiklinski il y a plus de 11 ans

  • Description mis à jour (diff)

N'aurais-tu pas par le plus grand des hasards supprimé certains champs de ta base ?

Est-ce que les champs lieu_naissance, gpgid et fingerprint existent bien en base ?

Cela étant dit, ce ne sont que des notices, je ne pense pas que la page blanche vienne de là... Que disent les logs d'apache ?

Mis à jour par Roland Telle il y a plus de 11 ans

Johan Cwiklinski a écrit :

N'aurais-tu pas par le plus grand des hasards supprimé certains champs de ta base ?

Le hasard ferait-il mal les choses ? ;)

Est-ce que les champs lieu_naissance, gpgid et fingerprint existent bien en base ?

Non, en effet. Ceci parce que j'ai testé les plugins avec une Galette v0.7.1 dont la base de données est un "upgrade" d'une base provenant d'une v0.64RC2 qui, pour une raison qui m'échappe, ne contenait pas ces champs, les "trois derniers" de la table galette_adherents. Mais laissons ce point de côté pour ne traiter ici que Galette v0.7.1 et les plugins.

Cela étant dit, ce ne sont que des notices, je ne pense pas que la page blanche vienne de là... Que disent les logs d'apache ?

Je refais des tests propres et je reviens ici confirmer ou infirmer le constat initial (page blanche) ;)

Mis à jour par Roland Telle il y a plus de 11 ans

Roland Telle a écrit :

Je refais des tests propres et je reviens ici confirmer ou infirmer le constat initial (page blanche) ;)

Donc, avec une Galette v0.7.1 ayant généré à l'installation (et sans problème) une BDD toute neuve et les plugins Paypal et Admintools récupérés sur Git (develop), la même anomalie subsiste. Le fichier error.log d'Apache indique ceci :

[Tue Aug 07 14:43:26.303254 2012] [mpm_winnt:notice] [pid 4024:tid 332] AH00428: Parent: child process exited with status 4294967295 -- Restarting.
[Tue Aug 07 14:57:20.196882 2012] [core:warn] [pid 1144:tid 332] AH00098: pid file D:/xampp/apache/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run?
[Tue Aug 07 14:57:20.727283 2012] [ssl:warn] [pid 1144:tid 332] AH01873: Init: Session Cache is not configured [hint: SSLSessionCache]
[Tue Aug 07 14:57:20.852084 2012] [mpm_winnt:notice] [pid 1144:tid 332] AH00455: Apache/2.4.2 (Win32) OpenSSL/1.0.1c PHP/5.4.4 configured -- resuming normal operations
[Tue Aug 07 14:57:20.852084 2012] [mpm_winnt:notice] [pid 1144:tid 332] AH00456: Server built: May 13 2012 14:10:15
[Tue Aug 07 14:57:20.852084 2012] [core:notice] [pid 1144:tid 332] AH00094: Command line: 'd:\\xampp\\apache\\bin\\httpd.exe -d D:/xampp/apache'
[Tue Aug 07 14:57:20.867684 2012] [mpm_winnt:notice] [pid 1144:tid 332] AH00418: Parent: Created child process 920
[Tue Aug 07 14:57:23.129688 2012] [ssl:warn] [pid 920:tid 344] AH01873: Init: Session Cache is not configured [hint: SSLSessionCache]
[Tue Aug 07 14:57:23.223288 2012] [mpm_winnt:notice] [pid 920:tid 344] AH00354: Child: Starting 150 worker threads.

Le fichier php_error_log indique cela :
[07-Aug-2012 13:30:43 UTC] PHP Fatal error:  Uncaught exception 'SmartyException' with message 'unable to write file D:\xampp\htdocs\galette071/templates_c\plugins|paypal^e9bd0cf91a7edcac7ca21e04d51990592d85a02b.file.paypal_form.tpl.php' in D:\xampp\htdocs\galette071\includes\Smarty-3.1.8\sysplugins\smarty_internal_write_file.php:55
Stack trace:
#0 D:\xampp\htdocs\galette071\includes\Smarty-3.1.8\sysplugins\smarty_internal_template.php(201): Smarty_Internal_Write_File::writeFile('D:\xampp\htdocs...', '<?php /* Smarty...', Object(Galette\Core\Smarty))
#1 D:\xampp\htdocs\galette071\includes\Smarty-3.1.8\sysplugins\smarty_internal_templatebase.php(155): Smarty_Internal_Template->compileTemplateSource()
#2 D:\xampp\htdocs\galette071\plugins\paypal\paypal_form.php(76): Smarty_Internal_TemplateBase->fetch('paypal_form.tpl', 'plugins|paypal')
#3 {main}
  thrown in D:\xampp\htdocs\galette071\includes\Smarty-3.1.8\sysplugins\smarty_internal_write_file.php on line 55

[07-Aug-2012 13:32:21 UTC] PHP Fatal error:  Uncaught exception 'SmartyException' with message 'unable to write file D:\xampp\htdocs\galette071/templates_c\plugins|admintools^11357cc1abe290e8a0b0a56efba99febcd93034e.file.admintools.tpl.php' in D:\xampp\htdocs\galette071\includes\Smarty-3.1.8\sysplugins\smarty_internal_write_file.php:55
Stack trace:
#0 D:\xampp\htdocs\galette071\includes\Smarty-3.1.8\sysplugins\smarty_internal_template.php(201): Smarty_Internal_Write_File::writeFile('D:\xampp\htdocs...', '<?php /* Smarty...', Object(Galette\Core\Smarty))
#1 D:\xampp\htdocs\galette071\includes\Smarty-3.1.8\sysplugins\smarty_internal_templatebase.php(155): Smarty_Internal_Template->compileTemplateSource()
#2 D:\xampp\htdocs\galette071\plugins\admintools\admintools.php(99): Smarty_Internal_TemplateBase->fetch('admintools.tpl', 'plugins|adminto...')
#3 {main}
  thrown in D:\xampp\htdocs\galette071\includes\Smarty-3.1.8\sysplugins\smarty_internal_write_file.php on line 55

Effectivement, il n'y a pas de trace des plugins dans template_c ... C'est pas bien, hein ? :)

Mis à jour par Johan Cwiklinski il y a plus de 11 ans

Tiens, bizarre, je n'ai jamais rencontré ce type de problème...

Est-tu certain que les droits sur le dossier templates_c sont corrects ? Et si tu fais du ménage dans ce dossier, parviens-tu à "lancer" Galette ensuite ?

Mis à jour par Roland Telle il y a plus de 11 ans

Johan Cwiklinski a écrit :

Tiens, bizarre, je n'ai jamais rencontré ce type de problème...

Est-tu certain que les droits sur le dossier templates_c sont corrects ? Et si tu fais du ménage dans ce dossier, parviens-tu à "lancer" Galette ensuite ?

Tout se passe en local donc il n'y a pas de problème de droits d'autant que dans template_c, il y a d'autres fichiers générés par Galette. Lorsque je vide templace_c, Galette redémarre normalement et les plugins affichent toujours une page blanche quand on les sollicite ...

Mis à jour par Johan Cwiklinski il y a plus de 11 ans

Je ne vois pas d'où peut venir le problème :'(

Pourrais-tu essayer sur ton hébergement (évites d'uploader le dossier .git ; pas besoin ;)) ?

J'essaierai de voir si je parviens à reproduire ça.

Mis à jour par Roland Telle il y a plus de 11 ans

Johan Cwiklinski a écrit :

[...] Pourrais-tu essayer sur ton hébergement (évites d'uploader le dossier .git ; pas besoin ;)) ? [...]

Tout fonctionne correctement ! ;)
mais
  • il faut en permanence fermer le navigateur et lancer Ccleaner pour échapper au syndrome de la page blanche,
  • lors de l'écrasement d'une ancienne base de données, les tables spécifiques du plugin Paypal ne sont pas touchées : c'est pratique mais je ne suis pas convaincu que ça soit une bonne chose dans la mesure où les tables du plugin pourraient évoluer avec le plugin lui-même ; l'utilisateur pourrait omettre de faire l'upgrade et courir après une anomalie qui n'en serait pas une ...

Je vérifierai si les tests en local avec une version de Xampp antérieure à la 1.8.0 fonctionne mieux ...

Où puis-je lire les changements entre la v0.7.0 et la v0.7.1 ? Merci !

Mis à jour par Johan Cwiklinski il y a plus de 11 ans

Roland Telle a écrit :

  • il faut en permanence fermer le navigateur et lancer Ccleaner pour échapper au syndrome de la page blanche,

ccleaner ? C'est quoi ça ?
Il faut que tu actives l'affichage des erreurs pour qu'on puisse voir si le problème est le même que tu as en local.

  • lors de l'écrasement d'une ancienne base de données, les tables spécifiques du plugin Paypal ne sont pas touchées : c'est pratique mais je ne suis pas convaincu que ça soit une bonne chose dans la mesure où les tables du plugin pourraient évoluer avec le plugin lui-même ; l'utilisateur pourrait omettre de faire l'upgrade et courir après une anomalie qui n'en serait pas une ...

Heu... Alors là, c'est le problème de l'utilisateur d'écraser ou non sa base. Galette ainsi que les plugins fournissent un système de mise à jour (les bases des plugins n'ont pas été touchées entre la 0.7 et al 0.7.1).

Où puis-je lire les changements entre la v0.7.0 et la v0.7.1 ? Merci !

Ici : http://redmine.ulysses.fr/versions/show/30 ou là http://galette.tuxfamily.org/dev/documentation/changelog.html :)

Mis à jour par Roland Telle il y a plus de 11 ans

Johan Cwiklinski a écrit :

ccleaner ? C'est quoi ça ?

Le top du "nettoyage" pour pc sous windows : http://www.piriform.com/ccleaner

Il faut que tu actives l'affichage des erreurs pour qu'on puisse voir si le problème est le même que tu as en local.

Passer define('GALETTE_MODE', 'PROD'); //DEV or PROD en mode DEV ? (je ne me souviens plus)

Heu... Alors là, c'est le problème de l'utilisateur d'écraser ou non sa base.

Je suis tout-à-fait d'accord mais l'installateur de Galette ne gère que les tables de Galette (ce qui est parfait).

Galette ainsi que les plugins fournissent un système de mise à jour (les bases des plugins n'ont pas été touchées entre la 0.7 et al 0.7.1).

Le plugin de Paypal ne fait que signaler une anomalie en cas d'absence des trois tables associées que l'administrateur doit "charger à la main" via PhpMyAdmin par exemple. Ce "système de mise à jour" rudimentaire me convient mais peut-être est-il possible de semi-automatiser cette tâche pour le superadministrateur lorsque c'est lui qui saisit les "préférences" ? Ou bien signaler la présence d'autres tables lorsque l'installateur de Galette procède à la vérification du site ?

<commentaire>En fait, ma remarque vient du fait qu'ayant écrasé la base de données originale avec une installation neuve de Galette v0.7.1 (sur une base contenant des tables donc), j'ai été surpris de retrouver les trois tables originales de Paypal (ce qui, in fine, est bien si on procède à une mise à jour de Galette uniquement) ...</commentaire> ;)

Dès que je sais passer en mode debug, je reviens ici pour préciser ce qui ne fonctionne pas sous Xampp 1.8.0

Mis à jour par Johan Cwiklinski il y a plus de 11 ans

Roland Telle a écrit :

Passer define('GALETTE_MODE', 'PROD'); //DEV or PROD en mode DEV ? (je ne me souviens plus)

Oui, mais aussi le display_errors à true ;)

Heu... Alors là, c'est le problème de l'utilisateur d'écraser ou non sa base.

Je suis tout-à-fait d'accord mais l'installateur de Galette ne gère que les tables de Galette (ce qui est parfait).

On est d'accords donc ;)

Galette ainsi que les plugins fournissent un système de mise à jour (les bases des plugins n'ont pas été touchées entre la 0.7 et al 0.7.1).

Le plugin de Paypal ne fait que signaler une anomalie en cas d'absence des trois tables associées que l'administrateur doit "charger à la main" via PhpMyAdmin par exemple. Ce "système de mise à jour" rudimentaire me convient mais peut-être est-il possible de semi-automatiser cette tâche pour le superadministrateur lorsque c'est lui qui saisit les "préférences" ? Ou bien signaler la présence d'autres tables lorsque l'installateur de Galette procède à la vérification du site ?

<commentaire>En fait, ma remarque vient du fait qu'ayant écrasé la base de données originale avec une installation neuve de Galette v0.7.1 (sur une base contenant des tables donc), j'ai été surpris de retrouver les trois tables originales de Paypal (ce qui, in fine, est bien si on procède à une mise à jour de Galette uniquement) ...</commentaire> ;)

Hum, d'accord, il s'agit d'avantage d'une « incompréhension » due en partie à un manque de communication (et de connaissance !!!) des plugins de leur base de données.

Dès que je sais passer en mode debug, je reviens ici pour préciser ce qui ne fonctionne pas sous Xampp 1.8.0

Okay, merci :)

Mis à jour par Roland Telle il y a plus de 11 ans

Roland Telle a écrit :

Dès que je sais passer en mode debug, je reviens ici pour préciser ce qui ne fonctionne pas sous Xampp 1.8.0

Et ça donne :

Fatal error: Uncaught exception 'SmartyException' with message 'unable to write file D:\xampp\htdocs\galette071/templates_c\plugins|admintools^11357cc1abe290e8a0b0a56efba99febcd93034e.file.admintools.tpl.php' in D:\xampp\htdocs\galette071\includes\Smarty-3.1.8\sysplugins\smarty_internal_write_file.php:55 Stack trace: #0 D:\xampp\htdocs\galette071\includes\Smarty-3.1.8\sysplugins\smarty_internal_template.php(201): Smarty_Internal_Write_File::writeFile('D:\xampp\htdocs...', '\smarty_internal_templatebase.php(155): Smarty_Internal_Template->compileTemplateSource() #2 D:\xampp\htdocs\galette071\plugins\admintools\admintools.php(99): Smarty_Internal_TemplateBase->fetch('admintools.tpl', 'plugins|adminto...') #3 {main} thrown in D:\xampp\htdocs\galette071\includes\Smarty-3.1.8\sysplugins\smarty_internal_write_file.php on line 55

La dernière release stable est : Smarty 3.1.11 du 30 juin 2012 (la 3.1.8 date de février 2012). Ca pourrait l'faire ? ;)

Mis à jour par Johan Cwiklinski il y a plus de 11 ans

Roland Telle a écrit :

La dernière release stable est : Smarty 3.1.11 du 30 juin 2012 (la 3.1.8 date de février 2012). Ca pourrait l'faire ? ;)

Sais pas... Ptètre bien :) Il faut que je parvienne à reproduire le soucis; je m'y attelle dès que je peux :)

Mis à jour par Johan Cwiklinski il y a plus de 11 ans

  • Assigné à mis à Johan Cwiklinski

Mis à jour par Roland Telle il y a plus de 11 ans

Johan Cwiklinski a écrit :

Roland Telle a écrit :

La dernière release stable est : Smarty 3.1.11 du 30 juin 2012 (la 3.1.8 date de février 2012). Ca pourrait l'faire ? ;)

Sais pas... Ptètre bien :) Il faut que je parvienne à reproduire le soucis; je m'y attelle dès que je peux :)

Smarty 3.1.11 ne résoud pas le problème qui vient du fait que windows n'aime pas les noms de fichiers comportant une pipe comme

plugins|paypal^0295d5068cc53c916a72317405ae725dc543664e.file.public_page.tpl.php
En effet, en corrigeant les lignes adhoc des fichiers _config.inc.php (par exemple en écrivant define('PAYPAL_SMARTY_PREFIX', 'plugins^paypal'); au lieu de define('PAYPAL_SMARTY_PREFIX', 'plugins|paypal');, tout rentre dans l'ordre aussi bien sous Xampp qu'en ligne où les fichiers sont écrits avec un underscore au lieu d'une pipe ;)
plugins_paypal^1468161ea416f3bda231be6507badc2ec9e9ca48.file.headers.tpl.php

Bon, je n'ai pas fait un gros effort intellectuel car ça fonctionnait ainsi dans une version précédente, n'est-ce pas Johan ? :)

Mis à jour par Johan Cwiklinski il y a plus de 11 ans

  • Catégorie mis à Plugins
  • Statut changé de Nouveau à In Progress

Roland Telle a écrit :

Smarty 3.1.11 ne résoud pas le problème qui vient du fait que windows n'aime pas les noms de fichiers comportant une pipe comme [...]En effet, en corrigeant les lignes adhoc des fichiers _config.inc.php (par exemple en écrivant define('PAYPAL_SMARTY_PREFIX', 'plugins^paypal'); au lieu de define('PAYPAL_SMARTY_PREFIX', 'plugins|paypal');, tout rentre dans l'ordre aussi bien sous Xampp qu'en ligne où les fichiers sont écrits avec un underscore au lieu d'une pipe ;)[...]
Bon, je n'ai pas fait un gros effort intellectuel car ça fonctionnait ainsi dans une version précédente, n'est-ce pas Johan ? :)

Heu.. Je ne pense pas avoir changé ça, ça doit être des "|" depuis le tout début... On est passés récemment de Smarty2 à Smarty3 ; qui fonctionne de façon complètement différente (j'ai du faire face à quelques petites surprises ou étrangetés pas piquées des vers déjà :D).

Je changerai le | en _ alors ; merci pour le test et pour le correctif ! :-)

Mis à jour par Johan Cwiklinski il y a plus de 11 ans

  • % réalisé changé de 0 à 100
  • Statut changé de In Progress à Résolu

Ça devrait être OK avec le dernier Git de chaque plugin ;)

Mis à jour par Roland Telle il y a plus de 11 ans

Johan Cwiklinski a écrit :

Ça devrait être OK avec le dernier Git de chaque plugin ;)

Testé avec les plugins Admintools et Paypal uniquement. Ca fonctionne désormais sous Windows (Xampp 1.8.0). On peut fermer. Merci ;)

Mis à jour par Johan Cwiklinski il y a plus de 11 ans

  • Statut changé de Résolu à Fermé
Actions

Formats disponibles : Atom PDF