Programmation  » Différences entre Fedora...
Catégorie :  
     
Différences entre Fedora...
Publié le 30/06/2010 @ 17:55:41,
Par zion
Plop,

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? :figti:
Je suis le Roy :ocube:
     
Différences entre Fedora...
Publié le 30/06/2010 @ 17:59:30,
Par Dr_Dan
Le Kernel? :petrus:
Se tromper est humain ; Vraiment foutre la merde necessite le mot de passe de root. :petrus:
     
Différences entre Fedora...
Publié le 30/06/2010 @ 18:04:58,
Par zion
Oui, mais ça me dit pas en quoi la réaction à une exception serait différente :oh:
Je suis le Roy :ocube:
     
Différences entre Fedora...
Publié le 30/06/2010 @ 20:24:48,
Par philfr
Quand 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 ?
     
Différences entre Fedora...
Publié le 30/06/2010 @ 20:28:21,
Par zion
Je 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 :sad:

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... :grin:
Je suis le Roy :ocube:
     
Différences entre Fedora...
Publié le 30/06/2010 @ 20:37:54,
Par zion
http://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...

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 :ocube:
     
Différences entre Fedora...
Publié le 30/06/2010 @ 20:45:04,
Par Dr_Dan
Analyse les sources du kernel :ocube:
:ddr555:
Se tromper est humain ; Vraiment foutre la merde necessite le mot de passe de root. :petrus:
     
Différences entre Fedora...
Publié le 30/06/2010 @ 20:53:02,
Par zion
En 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 :ddr555:
Je suis le Roy :ocube:
     
Différences entre Fedora...
Publié le 30/06/2010 @ 21:40:15,
Par Dr_Dan
En 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 :ddr555:



Je suis trop fort! :ocube:

:neowen:
Se tromper est humain ; Vraiment foutre la merde necessite le mot de passe de root. :petrus:
     
Différences entre Fedora...
Publié le 30/06/2010 @ 21:43:04,
Par philfr
C'est un problème glibc, pas kernel...
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.


Quand je lis ça... j'ai peur :ocube:
Je suis le Roy :ocube:
     
Différences entre Fedora...
Publié le 02/07/2010 @ 13:16:17,
Par philfr
Ils 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 zion
J'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 :ocube:

Dernière édition: 02/07/2010 @ 13:24:59
Je suis le Roy :ocube:
     
Différences entre Fedora...
Publié le 02/07/2010 @ 13:44:00,
Par philfr
Et 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
     
Différences entre Fedora...
Publié le 02/07/2010 @ 13:50:57,
Par zion
Euh, je vais pouvoir utiliser une glibc d'il y a 10 ans sur une Fedora de maintenant? :ocube:

Sachant que j'utilise aussi d'autres librairies dans le soft?
Je suis le Roy :ocube:
     
Différences entre Fedora...
Publié le 02/07/2010 @ 13:51:50,
Par philfr
J'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 :ciler:

2.2.2 = 2001-02-16
2.2.3 = 2001-04-27
2.2.4 = 2001-08-16


On est à la 2.11.2 :oh:
     
Différences entre Fedora...
Publié le 02/07/2010 @ 13:54:48,
Par philfr
Donc 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 ?
     
Différences entre Fedora...
Publié le 02/07/2010 @ 13:58:29,
Par zion
Si 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 :sweat:

:cupra:
Je suis le Roy :ocube:
     
Différences entre Fedora...
Publié le 02/07/2010 @ 14:09:39,
Par philfr
Fais 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.
     
Différences entre Fedora...
Publié le 02/07/2010 @ 14:11:40,
Par philfr
Sinon, j'ai trouvé ici une encore plus vielle version binaire, mais rien entre celle-là et la 2.2.5 :spamafote:

Edith: gros doigts

Dernière édition: 02/07/2010 @ 14:13:47
Répondre  - Catégorie :  
Informaticien.be  - © 2002-2021 Akretio SPRL  - Generated via Kelare
The Akretio Network: Akretio  - Freedelity  - KelCommerce  - Votre publicité sur informaticien.be ?