IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration système Discussion :

Implémentation différentes des sémaphores selon distrib linux ?


Sujet :

Administration système

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 95
    Par défaut Implémentation différentes des sémaphores selon distrib linux ?
    Bonjour à tous,

    Je porte une appli de mandriva 2005 sous mandriva 2008. J'ai le scénario suivant :
    1. Je compile sous 2005 (toute exécution sous 2005 est OK)
    2. J'exécute une première fois sous 2008 : OK
    3. J'exécute une seconde fois sous 2008 : NOT OK
    4. Pareil pour toutes les fois d'après
    5. Je repasse et exécute sous 2005 : OK
    6. Je reviens et exécute sous 2008 : OK
    7. Les exécutions d'après sous 2008 : NOT OK !!!
    Le problème vient du faire que lors des exécutions NOT OK (qui ne conduisent pas à un crash mais a un comportement incohérent de l'application), un thread est bloqué par un sem_wait sur un sémaphore, donc la valeur est bien incrémentée par un sem_post et qui défile donc 0,1,2,3,... .
    Ce n'est pas un problème de "logique des sémaphores" je dirai, car tout fonctionne depuis longtemps sous mandriva 2005. Ma question est donc la suivante : est-il possible que les sémaphores aient été implémentés différemment dans les distrib mandriva 2005 et 2008 ?

    Merci d'avance pour vos réponses !!!

  2. #2
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Bonjour,

    A ma connaissance les sémaphores sont implémentés au niveau du noyau Linux et il est fort possible que du passage de la version 2.6.11 (2005) à 2.6.27 (2008), il y ai eu des changements à ce niveau

    Semaphore sur LKML (bon courage )

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2008
    Messages : 69
    Par défaut
    et surtout le passage de GCC3.4 a GCC4.2

    Et pourquoi ne port tu pas directement version mandriva 2009?

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 95
    Par défaut
    et surtout le passage de GCC3.4 a GCC4.2
    Oui, GCC4.2 révèle bcp de warning qui n'apparaissaient pas avant (avec GCC3.4).

    Et pourquoi ne port tu pas directement version mandriva 2009?
    Je porte sous 2008 pour des raisons d'homogénéité avec d'autres systèmes.

    Le problème a cependant évolué, car il s'avère en fait que le programme fonctionne correctement (un ping pong entre sem_post et sem_wait se déroule parfaitement) lors d'une execution APRES REDEMARRAGE de la machine. Toutes les executions ultérieures foirent jusqu'au prochain redémarrage (seuls les sem_post sont pris en compte et donc la valeur du sémaphore s'incrémente sans cesse ... :/).

    J'ai fait un ipcs pour voir si il n'y avait pas de zones de mémoire partagée ou de sémaphores résiduels, et ce n'est pas le cas ...
    Quel peut-etre le probleme, au niveau du noyau 2.6.24 qui entraine un tel comportement ?

    Merci d'avance pour votre aide !

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2008
    Messages : 69
    Par défaut
    Essai avec une autre distribution (sur le live-cd) comme Ubuntu, au moin tu sauras si ton bogues vient d'une des composante de mandriva ou si c'est le passage de gcc3 vers et les mises a jout de library qui cause ton probleme. Dans ce cas, prend GDB ou DDD et trace ton programme.

Discussions similaires

  1. [AC-2010] Compter des enregistrements selon 2 critères sur 2 champs différents
    Par nlbmoi dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 03/07/2015, 10h10
  2. Réponses: 8
    Dernier message: 09/12/2009, 15h57
  3. [AC-2000] dimensions différentes des formulaires selon les ordi
    Par diger dans le forum IHM
    Réponses: 1
    Dernier message: 25/06/2009, 14h28
  4. supression des doublons selon différentes conditions ..
    Par gwems dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 17/03/2009, 21h18
  5. Implémentation purement logiciel des sémaphores
    Par Celelibi dans le forum Algorithmes et structures de données
    Réponses: 39
    Dernier message: 26/08/2007, 13h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo