LeedRSS / Leed

Leed (contraction de Light Feed) est un agrégateur RSS libre et minimaliste qui permet la consultation de flux RSS de manière rapide et non intrusive.
214 stars 41 forks source link

Échec de mise à jour 1.6 vers 1.7 #426

Closed maniackcrudelis closed 8 years ago

maniackcrudelis commented 8 years ago

Bonjour,

la mise à jour vers leed 1.7 échoue.

2016/06/20 13:05:18 [error] 1480#0: *27 FastCGI sent in stderr: "PHP message: PHP Notice:  Undefined index: HTTP_ACCEPT_LANGUAGE in /var/www/leed/Functions.class.php on line 366
PHP message: Invalid language: ''" while reading response header from upstream, client: 127.0.0.1, server: crudelis-test4.fr, request: "POST /leed/install.php?installButton HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm-leed.sock:", host: "crudelis-test4.fr"
2016/06/20 13:12:51 [error] 1838#0: *38 FastCGI sent in stderr: "PHP message: PHP Warning:  mysqli_query() expects at least 2 parameters, 1 given in /var/www/leed/Update.class.php on line 88
PHP message: PHP Warning:  mysqli_affected_rows() expects exactly 1 parameter, 0 given in /var/www/leed/Update.class.php on line 95
PHP message: PHP Warning:  mysqli_query() expects at least 2 parameters, 1 given in /var/www/leed/Update.class.php on line 88
PHP message: PHP Warning:  mysqli_affected_rows() expects exactly 1 parameter, 0 given in /var/www/leed/Update.class.php on line 95
PHP message: PHP Warning:  mysqli_query() expects at least 2 parameters, 1 given in /var/www/leed/Update.class.php on line 88
PHP message: PHP Warning:  mysqli_affected_rows() expects exactly 1 parameter, 0 given in /var/www/leed/Update.class.php on line 95
PHP message: PHP Warning:  mysqli_query() expects at least 2 parameters, 1 given in /var/www/leed/Update.class.php on line 88
PHP message: PHP Warning:  mysqli_affected_rows() expects exactly 1 parameter, 0 given in /var/www/leed/Update.class.php on line 95
PHP message: PHP Warning:  mysqli_query() expects at least 2 parameters, 1 given in /var/www/leed/Update.class.php on line 88
PHP message: PHP Warning:  mysqli_affected_rows() expects exactly 1 parameter, 0 given in /var/www/leed/Update.class.php on line 95
PHP message: PHP Warning:  mysqli_query() expects at least 2 parameters, 1 given in /var/www/leed/Update.class.php on line 88
PHP message: PHP Warning:  mysqli_affected_rows() expects exactly 1 parameter, 0 given in /var/www/leed/Update.class.php on line 95
PHP message: PHP Warning:  mysqli_query() expects at least 2 parameters, 1 given in /var/www/leed/Update.class.php on line 88
PHP message: PHP Warning:  mysqli_affected_rows() expects exactly 1 parameter, 0 given in /var/www/leed/Update.class.php on line 95
PHP message: PHP Warning:  mysqli_query() expects at least 2 parameters, 1 given in /var/www/leed/Update.class.php on line 88
PHP message: PHP Warning:  mysqli_affected_rows() 

Manifestement en raison d'un échec de récupération de la langue du navigateur, alors que celle-ci est définie dans le constant.php. Cela abouti à une page blanche,

2016/06/20 13:12:56 [error] 1838#0: *38 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught exception 'RainTpl_NotFoundException' with message 'Template index not found!' in /var/www/leed/RainTPL.php:271
Stack trace:
#0 /var/www/leed/RainTPL.php(164): RainTPL->check_template('index')
#1 /var/www/leed/footer.php(4): RainTPL->draw('index')
#2 /var/www/leed/index.php(157): require_once('/var/www/leed/f...')
#3 {main}
  thrown in /var/www/leed/RainTPL.php on line 271" while reading response header from upstream, client: 192.168.1.154, server: crudelis-test4.fr, request: "GET /leed/ HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm-leed.sock:", host: "crudelis-test4.fr", referrer: "https://crudelis-test4.fr/yunohost/sso/"

J'ai essayé un peu dans tout les sens, surtout en le biaisant en faisant migrer le constant.php avec un dossier vidé. Mais le bougre remarque toujours qu'il doit se mettre à jour. La bdd j'imagine...

Est-ce une erreur côté leed, ou une erreur côté serveur ou navigateur?

Sbgodin commented 8 years ago

Salutations,

Il faudrait la révision exacte de ton Leed, pour éliminer tout doute.

L'erreur avec mysqli_query est côté Leed. Normalement, il faut fournir la connexion à la base de données, ce qui n'est pas fait ici. Il manque le paramètre $conn.

L'erreur avec les langues du navigateur est un cas non prévu. Leed s'attend à toujours avoir les langues fournie par le navigateur. Corrigeable en corrigeant le code (tableau vide par défaut) et en adaptant le i18n_init vers la langue par défaut (DEFAULT_LANGUAGE).

Si quelqu'un de plus compétent est disponible, il peut le faire. Sinon, je m'en occuperai. Attention, c'est une erreur impactant visiblement toutes les branches. Je préconise une correction sur la branche de développement et patch sur les autres branches au besoin.

maniackcrudelis commented 8 years ago

Salut, Merci de ta réponse rapide. J'utilise la release 1.7 en tar.gz dont le dernier commit est https://github.com/ldleman/Leed/commit/ed271fb3b47669f225d5ed8aa7160359dc5cb08e

Simounet commented 8 years ago

Hello les gens, Je n'ai pas trop le temps tout de suite mais je remarque qu'il y a un autre problème qui me semble plus important que celui de la langue. Quand je suis passé sur mysqli, j'ai zappé d'approfondir l'Update.php. Tel quel, il ne doit pas pouvoir se connecter à la db et donc mettre à jour ton instance. Je vais essayer de regarder ça dans le week-end.

Simounet commented 8 years ago

J'ai fait un fix sur la branche dev.

maniackcrudelis commented 8 years ago

Merci Simounet, je ferai un essai de mise à jour demain

Sbgodin commented 8 years ago

Si l'essai est concluant, je déploierai les modifications sur la branche stable 1.7.

maniackcrudelis commented 8 years ago

Le correctif permet une mise à jour sans encombres \o/

Reste toutefois un problème avec la langue sur le nouveau thème marigolds. Avec le thème marigolds (par défaut) https://crudelis.fr/lutim/4rqDcEgB/lb7S7UxJ.jpeg Avec le thème marigolds-old https://crudelis.fr/lutim/zqwDmq5n/NaZk1G25.jpeg

Sbgodin commented 8 years ago

Ce matin, j'ai fait une petite modification dans la branche de développement (6020d872f8b7532cfcb5c4442ba514a5382432c0) pour corriger la première erreur (undefined index). Est-ce que ça arrive malgré la mise à jour ?

maniackcrudelis commented 8 years ago

J'ai pas mis à jour avec la branche dev, je suis resté sur 1.7. Je vais faire un essai avec ta correction.

maniackcrudelis commented 8 years ago

En apparence tout fonctionne très bien. J'ai le texte par contre, alors qu'on a des icônes sur une install fraîche.

Mais en réalité tout ne se passe pas si bien:

[error] 1697#0: *48 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught exception 'RainTpl_NotFoundException' with message 'Template settings not found!' in /var/www/leed/RainTPL.php:271
Stack trace:
#0 /var/www/leed/RainTPL.php(164): RainTPL->check_template('settings')
#1 /var/www/leed/footer.php(4): RainTPL->draw('settings')
#2 /var/www/leed/settings.php(53): require_once('/var/www/leed/f...')
#3 {main}
  thrown in /var/www/leed/RainTPL.php on line 271" while reading response header from upstream, client: 192.168.1.154, server: crudelis-test2.fr, request: "GET /leed/settings.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm-leed.sock:", host: "crudelis-test2.fr", referrer: "https://crudelis-test2.fr/leed/settings.php"

Mais bon, ça fonctionne.

Sbgodin commented 8 years ago

J'ai utilisé cherry-pick pour intégrer les modifications dans la branche stable (58cfbb1c2be200de503578836e86fcc762a62329). Peux-tu y rebasculer et faire un retour ?

L'autre erreur avec RainTPL, elle existait avant la mise à jour ?

maniackcrudelis commented 8 years ago

L'erreur avec RainTPL ne se pose qu'avec le thème marigold en nouvelle version. Avant, aucun problème.

Avec ton dernier commit sur Update.class.php, il n'y a plus d'erreur. Par contre, la mise à jour ne vide pas le cache de leed, ce qui provoque des erreurs sur certaines pages qui sont encore en cache. Pour ma part c'est pas un problème.

Qu'entends-tu pas branche stable?

Sbgodin commented 8 years ago

Il y a deux branches dans Leed. La branche de développement qui incorpore les dernières fonctionnalités, potentiellement instables. Et la branche stable, à qui on n'ajoute aucune fonctionnalité et qui ne devrait accueillir que des correctifs. Exactement ce qui s'est passé ici.

Évidemment, je n'arrive pas à reproduire l'erreur avec RainTPL. Peux-tu indiquer, depuis la connexion, quels événements (clics, pages, etc.) amenant à la sortie de l'erreur ?

maniackcrudelis commented 8 years ago

Après mise à jour du package, l'accès à leed provoque la mise à jour et demande de recharger la page. Après rechargement, la page est chargée sur le nouveau thème. Dés lors, on avait des erreurs dans le log. Mais avec ton dernier commit sur Update.class.php, c'est corrigé.

La seule chose plus ou moins problématique, c'est le cache qui garde des anciennes versions des fichiers et qui provoques quelques bug après la mise à jour. En le vidant, tout va bien.

Donc en somme, c'est master la branche stable.

Simounet commented 8 years ago

J'ai bien eu cette erreur dans les logs avant d'effectuer ma modif' mais plus du tout après. Et pour répondre à ta question, master est effectivement la branche stable.

Sbgodin commented 8 years ago

@Simounet, tu vois un moyen propre de purger le cache à la fin de la mise à jour ?

Simounet commented 8 years ago

Je n'ai malheureusement rien vu pour le faire côté RainTPL, ce qui aurait été le plus clean. J'ai cependant du mal à comprendre ce qui nécessite de purger le cache lors des mises à jour. J'ai réessayer en partant de la 1.6 et je n'ai plus aucune erreur côté serveur. J'avais par contre du cache navigateur.

maniackcrudelis commented 8 years ago

Je viens de refaire un essai pour être sûr. Installation de leed 1.6, je me balade un peu dans les pages, surtout la page de préférence. Pour être sûr que leed va mettre en cache.

Ensuite je fais la mise à jour vers la dernière version. Je vide le cache du navigateur. Et tout va mal, certaines pages sont restées sur l'ancienne version, la page des préférences de réagit pas. Les icônes sont remplacées par du texte.

Je vide le cache de leed. Tout est rentré dans l'ordre. Tout fonctionne correctement.

Pour Yunohost, j'intègre la purge du cache au processus de mise à jour. Ça fonctionne parfaitement.

Simounet commented 8 years ago

Qu'entends-tu par la purge du cache ? Tu vides le dossier cache de Leed ?

maniackcrudelis commented 8 years ago

sudo rm -r /var/www/leed/cache/*