Bug #13353
phantomjs : rediriger les erreurs d'execution js vers stderr
100%
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
Révisions associées
Historique
Mis à jour par Josué Kouka il y a plus de 7 ans
- Fichier 0001-prevent-js-errors-to-be-redirected-to-stdout-13353.patch 0001-prevent-js-errors-to-be-redirected-to-stdout-13353.patch ajouté
- Patch proposed changé de Non à Oui
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 ?
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
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.
Mis à jour par Josué Kouka il y a plus de 7 ans
- Fichier 0001-prevent-js-errors-to-be-redirected-to-stdout-13353.patch 0001-prevent-js-errors-to-be-redirected-to-stdout-13353.patch ajouté
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'}
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.
Mis à jour par Josué Kouka il y a plus de 7 ans
- Fichier 0001-prevent-js-errors-to-be-redirected-to-stdout-13353.patch 0001-prevent-js-errors-to-be-redirected-to-stdout-13353.patch ajouté
J'ai renommé msgStack
-> errStack
et errors
-> stderr
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…
Mis à jour par Josué Kouka il y a plus de 7 ans
- Fichier 0001-prevent-js-errors-to-be-redirected-to-stdout-13353.patch 0001-prevent-js-errors-to-be-redirected-to-stdout-13353.patch ajouté
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
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.
Mis à jour par Josué Kouka il y a plus de 7 ans
- Fichier 0001-prevent-js-errors-to-be-redirected-to-stdout-13353.patch 0001-prevent-js-errors-to-be-redirected-to-stdout-13353.patch ajouté
en cas de stderr
, on fait un logger.warning(...)
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)
Mis à jour par Josué Kouka il y a plus de 7 ans
- Fichier 0001-prevent-js-errors-to-be-redirected-to-stdout-13353.patch 0001-prevent-js-errors-to-be-redirected-to-stdout-13353.patch ajouté
- log une erreur en cas de non JSON
- log un warning pour les erreurs javascript
- ajout tests log
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.
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é
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
Mis à jour par Benjamin Dauvergne il y a plus de 7 ans
- Statut changé de Résolu (à déployer) à Fermé
prevent js errors to be redirected to stdout (#13353)