Programmation » Différences entre Fedora...
Différences entre Fedora...
Publié le 30/06/2010 @ 17:55:41,
Par zionPlop,
Merci aux dieux Linux, parce que c'est loin au dessus de ma tête la question.
J'ai un process, développé sous Kylix, qui tourne sur une Fedora.
Pas de bol, dans le process y a un bug, j'accède à un pointeur null, bardaf, ça se plante.
-Sur une vieille Fedora, le programme se ferme, salut, bye bye, bon tant pis
-Sur une nouvelle Fedora, le programme se freeze, je sais pas catcher l'exception, et le programme répond plus.
Qu'est ce qui pourrait avoir changé entre ces deux configs pour que maintenant il se ferme plus quand il se plante?
Une idée magnifique?
Merci aux dieux Linux, parce que c'est loin au dessus de ma tête la question.
J'ai un process, développé sous Kylix, qui tourne sur une Fedora.
Pas de bol, dans le process y a un bug, j'accède à un pointeur null, bardaf, ça se plante.
-Sur une vieille Fedora, le programme se ferme, salut, bye bye, bon tant pis
-Sur une nouvelle Fedora, le programme se freeze, je sais pas catcher l'exception, et le programme répond plus.
Qu'est ce qui pourrait avoir changé entre ces deux configs pour que maintenant il se ferme plus quand il se plante?
Une idée magnifique?
Je suis le Roy
Différences entre Fedora...
Publié le 30/06/2010 @ 17:59:30,
Par Dr_DanLe Kernel?
Se tromper est humain ; Vraiment foutre la merde necessite le mot de passe de root.
Différences entre Fedora...
Publié le 30/06/2010 @ 18:04:58,
Par zionOui, mais ça me dit pas en quoi la réaction à une exception serait différente
Je suis le Roy
Différences entre Fedora...
Publié le 30/06/2010 @ 20:24:48,
Par philfrQuand tu dis que tu accèdes à un pointeur nul, c'est le kernel qui te le dit avec un segfault ou Kylix qui transforme cet accès en exception ?
L'accès à l'adresse 0 provoquera toujours un segfault. L'accès à une adresse random peut ou non faire un segfault, et si non, le bug se manifestera ailleurs si tu as corrompu quelque chose.
Tu connais le bug et tu dois vivre avec en prod ou tu cherches à trouver où il est pour le corriger ?
L'accès à l'adresse 0 provoquera toujours un segfault. L'accès à une adresse random peut ou non faire un segfault, et si non, le bug se manifestera ailleurs si tu as corrompu quelque chose.
Tu connais le bug et tu dois vivre avec en prod ou tu cherches à trouver où il est pour le corriger ?
Différences entre Fedora...
Publié le 30/06/2010 @ 20:28:21,
Par zionJe connais le bug, je l'ai corrigé, mais le comportement en cas de segfault ne me plait pas, je préfère que le programme se vautre ce que je peux détecter facilement plutôt que de rester dans un état instable
Les Exceptions sous Kylix ont jamais fonctionné en fait, si je fais un try..except et qu'il y a un segfault, ça se vautrait tout de même. Sous Windows tu peux le catcher et tenter de reprendre une activité "normale".
J'aimerais donc soit:
-Pouvoir le catcher comme je le ferais sous Windows dans mon try..except
-Soit que comme avant, il se petit suicide et on en parle plus
L'entre deux, c'est moche...
Les Exceptions sous Kylix ont jamais fonctionné en fait, si je fais un try..except et qu'il y a un segfault, ça se vautrait tout de même. Sous Windows tu peux le catcher et tenter de reprendre une activité "normale".
J'aimerais donc soit:
-Pouvoir le catcher comme je le ferais sous Windows dans mon try..except
-Soit que comme avant, il se petit suicide et on en parle plus
L'entre deux, c'est moche...
Je suis le Roy
Différences entre Fedora...
Publié le 30/06/2010 @ 20:37:54,
Par zionhttp://www.drdobbs.com/184404850;jsessionid=LUW5SGMSHDJ43QE1GHPCKHWATMY32JVN
A lire demain quand j'aurai la tête reposée, mais quand je commence avec ça, ça fait peur...
A lire demain quand j'aurai la tête reposée, mais quand je commence avec ça, ça fait peur...
When introduced in the early 1990s, Borland's Delphi application development environment targeted Windows only. With Kylix, however, Borland (the company we work for) has brought the Delphi toolset and environment to Linux. As with Delphi, Object Pascal is at the heart of Kylix. Consequently, in bringing Delphi to Linux we first had to port Object Pascal and all of its language features. And, as it turns out, one of the most challenging features to port involved exception handling.
Je suis le Roy
Différences entre Fedora...
Publié le 30/06/2010 @ 20:45:04,
Par Dr_DanAnalyse les sources du kernel
Se tromper est humain ; Vraiment foutre la merde necessite le mot de passe de root.
Différences entre Fedora...
Publié le 30/06/2010 @ 20:53:02,
Par zionEn fait Dr_Dan, t'avais raison...
http://sourceforge.net/tracker/index.php?func=detail&aid=424316&group_id=22417&atid=- 375216
Voila pourquoi ça a jamais bien catché sous Nunux, c'est plus compatible depuis la glibc 2.2.3+ en... 2001... merde
http://sourceforge.net/tracker/index.php?func=detail&aid=424316&group_id=22417&atid=- 375216
Voila pourquoi ça a jamais bien catché sous Nunux, c'est plus compatible depuis la glibc 2.2.3+ en... 2001... merde
Je suis le Roy
Différences entre Fedora...
Publié le 30/06/2010 @ 21:40:15,
Par Dr_DanEn fait Dr_Dan, t'avais raison...
http://sourceforge.net/tracker/index.php?func=detail&aid=424316&group_id=22417&atid=- 375216
Voila pourquoi ça a jamais bien catché sous Nunux, c'est plus compatible depuis la glibc 2.2.3+ en... 2001... merde
http://sourceforge.net/tracker/index.php?func=detail&aid=424316&group_id=22417&atid=- 375216
Voila pourquoi ça a jamais bien catché sous Nunux, c'est plus compatible depuis la glibc 2.2.3+ en... 2001... merde
Je suis trop fort!
Se tromper est humain ; Vraiment foutre la merde necessite le mot de passe de root.
Différences entre Fedora...
Publié le 30/06/2010 @ 21:43:04,
Par philfrC'est un problème glibc, pas kernel...
Et plutôt redhat.
Et plutôt redhat.
Différences entre Fedora...
Publié le 02/07/2010 @ 13:00:38,
Par zion+ We have not found the "outer" context on the stack.
+ Since it is not possible to reliably detect whether
+ we have a version of glibc (2.2.3+) that has the
+ context bugfix applied, or whether we have a version
+ of glibc that needs the scalpel code (2.2.2 and earlier),
+ or RedHat 7.1 (which is nominally 2.2.2 with internal 2.2.3
+ versioning) we cannot tell whether the modifications to
+ the "correct" context are enough to get exception handling
+ to work correctly.
+
+ If exception handling does not work due to the glibc context
+ confusion, it is likely that the process will hang dead on,
+ for instance, a SIGSEGV and not react at all to a SIGINT (Ctrl+C).
+
+ Because of this unpredictable behaviour take down the process hard.
+ Since it is not possible to reliably detect whether
+ we have a version of glibc (2.2.3+) that has the
+ context bugfix applied, or whether we have a version
+ of glibc that needs the scalpel code (2.2.2 and earlier),
+ or RedHat 7.1 (which is nominally 2.2.2 with internal 2.2.3
+ versioning) we cannot tell whether the modifications to
+ the "correct" context are enough to get exception handling
+ to work correctly.
+
+ If exception handling does not work due to the glibc context
+ confusion, it is likely that the process will hang dead on,
+ for instance, a SIGSEGV and not react at all to a SIGINT (Ctrl+C).
+
+ Because of this unpredictable behaviour take down the process hard.
Quand je lis ça... j'ai peur
Je suis le Roy
Différences entre Fedora...
Publié le 02/07/2010 @ 13:16:17,
Par philfrIls devraient linker leur code statiquement avec les fonctions glibc qu'ils maîtrisent... Ainsi ils ne devraient pas "détecter" s'ils tournent sur une glibc buggée ou pas.
Différences entre Fedora...
Publié le 02/07/2010 @ 13:24:47,
Par zionJ'irai leur dire... mais comme ils ont pas sorti de nouvelle version du compilateur en 10 ans, bon je suis un peu seul à bord.
Mais mon petit doigt me dit que si je suis patient jusqu'en 2011 y aura des solutions, en espérant qu'avec 10 ans de recul ils ont trouvé des experts Linux
Dernière édition: 02/07/2010 @ 13:24:59
Mais mon petit doigt me dit que si je suis patient jusqu'en 2011 y aura des solutions, en espérant qu'avec 10 ans de recul ils ont trouvé des experts Linux
Dernière édition: 02/07/2010 @ 13:24:59
Je suis le Roy
Différences entre Fedora...
Publié le 02/07/2010 @ 13:44:00,
Par philfrEt si tu utilisais une vielle version de glibc et que tu prélinkais au lancement de ton appli ?
LD_PRELOAD=/lib/libc-kivabien.so ./tonsoft
LD_PRELOAD=/lib/libc-kivabien.so ./tonsoft
Différences entre Fedora...
Publié le 02/07/2010 @ 13:50:57,
Par zionEuh, je vais pouvoir utiliser une glibc d'il y a 10 ans sur une Fedora de maintenant?
Sachant que j'utilise aussi d'autres librairies dans le soft?
Sachant que j'utilise aussi d'autres librairies dans le soft?
Je suis le Roy
Différences entre Fedora...
Publié le 02/07/2010 @ 13:51:50,
Par philfrJ'irai leur dire... mais comme ils ont pas sorti de nouvelle version du compilateur en 10 ans, bon je suis un peu seul à bord.
Ah oué, j'avais pas réalisé la version
2.2.2 = 2001-02-16
2.2.3 = 2001-04-27
2.2.4 = 2001-08-16
On est à la 2.11.2
Différences entre Fedora...
Publié le 02/07/2010 @ 13:54:48,
Par philfrDonc ils ont fait un workaround à un bug glibc qui fait que ça ne fonctionne pas comme il faut quand le bug est corrigé dans glibc...
Alors, tu essaies le LD_PRELOAD avec http://ftp.gnu.org/gnu/glibc/glibc-2.2.2.tar.gz ?
Alors, tu essaies le LD_PRELOAD avec http://ftp.gnu.org/gnu/glibc/glibc-2.2.2.tar.gz ?
Différences entre Fedora...
Publié le 02/07/2010 @ 13:58:29,
Par zionSi je sors le "mode blibli" c'est mal?
Je connais les deux commandes magiques pour compiler, mais j'ai pas envie qu'il aille me niquer ma glibc actuelle
Je connais les deux commandes magiques pour compiler, mais j'ai pas envie qu'il aille me niquer ma glibc actuelle
Je suis le Roy
Différences entre Fedora...
Publié le 02/07/2010 @ 14:09:39,
Par philfrFais le make, pas le make install, et pas en root, alors tu ne risques rien.
Puis copie les .so dans le directory de ton appli, pour être sûr de ne rien mélanger.
Puis copie les .so dans le directory de ton appli, pour être sûr de ne rien mélanger.