Projet

Général

Profil

Bug #13353

phantomjs : rediriger les erreurs d'execution js vers stderr

Ajouté par Josué Kouka il y a plus de 7 ans. Mis à jour il y a plus de 7 ans.

Statut:
Fermé
Priorité:
Haut
Assigné à:
Josué Kouka
Catégorie:
-
Version cible:
-
Début:
28 septembre 2016
Echéance:
% réalisé:

100%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

Certaines erreur d'execution js semble remonté dans les stdout de phantomjs , ce qui génère de ValueError lors de decodage JSON

 TypeError: undefined is not a function (evaluating \'$( "#datepicker" ).datepicker({\r\n\t\tshowOn: "button",\r\n\t\tbuttonImage: "images/calendrier.png",\r\n\t\tbuttonImageOnly: true\r\n\t})\')\n\n  https://portail-famille.meyzieu.fr/meyzieu/js/plugins/teamnet/teamnet.js:11\n  https://portail-famille.meyzieu.fr/meyzieu/js/jquery/jquery.min.js:29 in i\n  https://portail-famille.meyzieu.fr/meyzieu/js/jquery/jquery.min.js:29 in fireWith\n  https://portail-famille.meyzieu.fr/meyzieu/js/jquery/jquery.min.js:29 in ready\n  https://portail-famille.meyzieu.fr/meyzieu/js/jquery/jquery.min.js:29 in K\nTypeError: undefined is not a function (evaluating \'$( "#datepicker" ).datepicker({\r\n\t\tshowOn: "button",\r\n\t\tbuttonImage: "images/calendrier.png",\r\n\t\tbuttonImageOnly: true\r\n\t})\')\n\n  https://portail-famille.meyzieu.fr/meyzieu/js/plugins/teamnet/teamnet.js:11
 \n  https://portail-famille.meyzieu.fr/meyzieu/js/jquery/jquery.min.js:29 in i\n  https://portail-famille.meyzieu.fr/meyzieu/js/jquery/jquery.min.js:29 in fireWith\n  https://portail-famille.meyzieu.fr/meyzieu/js/jquery/jquery.min.js:29 in ready\n  https://portail-famille.meyzieu.fr/meyzieu/js/jquery/jquery.min.js:29 in K\n{"result":"ok","cookies":[{"domain":".portail-famille.meyzieu.fr","expires":"mer., 29 mars 2017 23:20:47 GMT","expiry":1490829647,"httponly":false,"name":"__utmz","path":"/","secure":false,"value":"126983436.1475061646.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)"},{"domain":".portail-famille.meyzieu.fr","httponly":false,"name":"__utmc","path":"/","secure":false,"value":"126983436"},{"domain":&
 quot;.portail-famille.meyzieu.fr","expires":"mer., 28 sept. 2016 11:50:47 GMT","expiry":1475063447,"httponly":false,"name":"__utmb","path":"/","secure":false,"value":"126983436.2.10.1475061646"},{"domain":".portail-famille.meyzieu.fr","expires":"ven., 28 sept. 2018 11:20:47 GMT","expiry":1538133647,"httponly":false,"name":"__utma","path":"/","secure":false,"value":"126983436.1547016540.1475061646.1475061646.1475061646.1"},{"domain":".portail-famille.meyzieu.fr","expires":"mer., 28 sept. 2016 11:30:46 GMT","expiry":1475062246,"httponly":false,"name":"__utmt","path":"/","secure":false,"value":"1"},{"domain" 
 :"portail-famille.meyzieu.fr","httponly":true,"name":"JSESSIONID","path":"/meyzieu/","secure":false,"value":"AA4E2ED9E7400807F8C083775B5C70DF"}],"headers":[{"name":"Set-Cookie","value":"JSESSIONID=AA4E2ED9E7400807F8C083775B5C70DF; Path=/meyzieu/; HttpOnly"},{"name":"Set-Cookie","value":"JSESSIONID=AA4E2ED9E7400807F8C083775B5C70DF; Path=/meyzieu/; HttpOnly"}],"url":"https://portail-famille.meyzieu.fr/meyzieu/"}\n

Fichiers


Demandes liées

Lié à Mandaye - Bug #13264: crash si le site mandayisé contient des erreurs JSFermé21 septembre 2016

Actions

Révisions associées

Révision c4cbb269 (diff)
Ajouté par Josué Kouka il y a plus de 7 ans

prevent js errors to be redirected to stdout (#13353)

Historique

#1

Mis à jour par Josué Kouka il y a plus de 7 ans

#2

Mis à jour par Frédéric Péters il y a plus de 7 ans

Le ticket parlait de stderr mais le patch tape juste ça dans une variable. Ou alors il y a quelque chose à un moment qui fait que le msgStack se trouve affiché sur stderr ?

#3

Mis à jour par Josué Kouka il y a plus de 7 ans

Frédéric Péters a écrit :

Le ticket parlait de stderr mais le patch tape juste ça dans une variable. Ou alors il y a quelque chose à un moment qui fait que le msgStack se trouve affiché sur stderr ?

Oui tu as raison, et je ne l'ai malheureusement pas mis en commentaire de mon patch.
Il y'a normalement un

console.error(msgStack.join('\n'));

étrangement, le résultat s'affichait toujours dans le stdout

#4

Mis à jour par Frédéric Péters il y a plus de 7 ans

Et mettre le msgStack1 global, et en sortir le contenu dans les divers console.log(JSON.stringify(...)), dans une clé 'stderr' ?

[1] à ce sujet on a header_list qui n'est pas camelCase, faudrait idéalement utiliser le même style.

#5

Mis à jour par Josué Kouka il y a plus de 7 ans

Frédéric Péters a écrit :

Et mettre le msgStack1 global, et en sortir le contenu dans les divers console.log(JSON.stringify(...)), dans une clé 'stderr' ?

+1

[1] à ce sujet on a header_list qui n'est pas camelCase, faudrait idéalement utiliser le même style.

Je ferai un commit "misc" pour corriger

Les erreurs sont maintenant stockées dans une key errors

le resultat

Sep 28 16:51:28 mandayejs mandayejs DEBUG portail-famille-meyzieu.test.entrouvert.org 80.12.92.47 f958f48d0a964553acf6132a658bbc r:7F424BDB2E10 {u'url': u'https://portail-famille-meyzieu.test.entrouvert.org/meyzieu/', u'headers': [{u'name': u'Set-Cookie', u'value': u'JSESSIONID=123D9DC42718BDD982A3ECE38D61AE54; Path=/meyzieu/; HttpOnly'}, {u'name': u'Set-Cookie', u'value': u'JSESSIONID=123D9DC42718BDD982A3ECE38D61AE54; Path=/meyzieu/; HttpOnly'}], u'cookies': [{u'domain': u'.portail-famille-meyzieu.test.entrouvert.org', u'name': u'__utmz', u'expires': u'jeu., 30 mars 2017 02:51:25 GMT', u'value': u'199939119.1475074284.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)', u'expiry': 1490842285, u'path': u'/', u'httponly': False, u'secure': False}, {u'domain': u'.portail-famille-meyzieu.test.entrouvert.org', u'name': u'__utmc', u'value': u'199939119', u'path': u'/', u'httponly': False, u'secure': False}, {u'domain': u'.portail-famille-meyzieu.test.entrouvert.org', u'name': u'__utmb', u'expires': u'mer., 28 sept. 2016 15:21:25 GMT', u'value': u'199939119.2.10.1475074284', u'expiry': 1475076085, u'path': u'/', u'httponly': False, u'secure': False}, {u'domain': u'.portail-famille-meyzieu.test.entrouvert.org', u'name': u'__utma', u'expires': u'ven., 28 sept. 2018 14:51:25 GMT', u'value': u'199939119.328802255.1475074284.1475074284.1475074284.1', u'expiry': 1538146285, u'path': u'/', u'httponly': False, u'secure': False}, {u'domain': u'.portail-famille-meyzieu.test.entrouvert.org', u'name': u'__utmt', u'expires': u'mer., 28 sept. 2016 15:01:24 GMT', u'value': u'1', u'expiry': 1475074884, u'path': u'/', u'httponly': False, u'secure': False}, {u'domain': u'portail-famille-meyzieu.test.entrouvert.org', u'name': u'JSESSIONID', u'value': u'123D9DC42718BDD982A3ECE38D61AE54', u'path': u'/meyzieu/', u'httponly': True, u'secure': False}], u'errors': u'ERROR: TypeError: undefined is not a function (evaluating \'$( "#datepicker" ).datepicker({\r\n\t\tshowOn: "button",\r\n\t\tbuttonImage: "images/calendrier.png",\r\n\t\tbuttonImageOnly: true\r\n\t})\')\nTRACE:\n -> https://portail-famille-meyzieu.test.entrouvert.org/meyzieu/js/plugins/teamnet/teamnet.js: 11\n -> https://portail-famille-meyzieu.test.entrouvert.org/meyzieu/js/jquery/jquery.min.js: 29 (in function "i")\n -> https://portail-famille-meyzieu.test.entrouvert.org/meyzieu/js/jquery/jquery.min.js: 29 (in function "fireWith")\n -> https://portail-famille-meyzieu.test.entrouvert.org/meyzieu/js/jquery/jquery.min.js: 29 (in function "ready")\n -> https://portail-famille-meyzieu.test.entrouvert.org/meyzieu/js/jquery/jquery.min.js: 29 (in function "K")', u'result': u'ok'}
#6

Mis à jour par Frédéric Péters il y a plus de 7 ans

Je ferai un commit "misc" pour corriger

Tu introduis msgStack dans ce commit-ci, je suggérerais de nommer différemment celle-ci, et hop. Et que dans le output, la clé s'appelle vraiment "stderr", pour bien faire passer le message que ce n'est pas structuré du tout.

#7

Mis à jour par Josué Kouka il y a plus de 7 ans

J'ai renommé msgStack -> errStack et errors -> stderr

#8

Mis à jour par Frédéric Péters il y a plus de 7 ans

L'idée de renommer msgStack c'était de plus avoir le camelCase…

#9

Mis à jour par Josué Kouka il y a plus de 7 ans

Frédéric Péters a écrit :

L'idée de renommer msgStack c'était de plus avoir le camelCase…

Ma faute, je t'ai mal compris

[1] à ce sujet on a header_list qui n'est pas camelCase, faudrait idéalement utiliser le même style.

J'ai cru que tu voulais que header_list soit en camelCase, voilà pourquoi j'ai parlé de faire un autre commit pour modifier le style de header_list

Bon j'ai modifié le style de errStack

#10

Mis à jour par Josué Kouka il y a plus de 7 ans

  • Priorité changé de Normal à Haut
#11

Mis à jour par Frédéric Péters il y a plus de 7 ans

Pour s'aider derrière, ce serait utile que le python en fasse quelque chose.

#12

Mis à jour par Josué Kouka il y a plus de 7 ans

en cas de stderr, on fait un logger.warning(...)

#13

Mis à jour par Thomas Noël il y a plus de 7 ans

Attention y'a pas toujours de stderr dans le dico

Et en cas de non JSON, loguer une erreur (et pas un debug)

#14

Mis à jour par Josué Kouka il y a plus de 7 ans

  • log une erreur en cas de non JSON
  • log un warning pour les erreurs javascript
  • ajout tests log
#15

Mis à jour par Serghei Mihai il y a plus de 7 ans

Ton patch est rebasé sur master? Il ne s'applique pas chez moi.

#16

Mis à jour par Serghei Mihai il y a plus de 7 ans

Patch appliqué et testé en local. Ok.

#17

Mis à jour par Josué Kouka il y a plus de 7 ans

  • Lié à Bug #13264: crash si le site mandayisé contient des erreurs JS ajouté
#18

Mis à jour par Josué Kouka il y a plus de 7 ans

  • Statut changé de En cours à Résolu (à déployer)
  • % réalisé changé de 0 à 100
#19

Mis à jour par Benjamin Dauvergne il y a plus de 7 ans

  • Statut changé de Résolu (à déployer) à Fermé

Formats disponibles : Atom PDF