Journal : Mplayer + vidéo Windows = crash noyau

Posté par Tennis Prono (page perso, ) le 21 juin 2004
0
Bonjour,

J'aimerais votre avis sur un problème qui m'embête bien. J'ai une Mandrake 10 avec un noyau 2.4.25 (-2 ou -5). Quand je lis une vidéo avec mplayer appelant une DLL Windows, le process est figé. Pire, tout process qui essaie d'accéder à ce process là (la commande "ps aux" par exemple, ou alors un "cat /dev/1234/cmdline") est figée elle aussi (ce qui implique que je ne peux pas connaitre le status de mon process).
Le seul moyen de rebooter est avec la commande magique alt-sys-b (ou le bouton reset), après quoi j'ai le droit à de fabuleux checkdisks (d'ailleurs au reboot le système me demande de faire à la main des fsck.reiserfs --rebuild-tree).
Je n'ai pas le problème avec la série précédente de noyau 2.4. J'ai cherché sur google en vain.
La dernière ligne que montre un "strace" est un "mmap2" sur la DLL Windows.

Que feriez-vous à ma place ? Comment agir de manière constructive ? C'est plutôt grave qu'un utilisateur non-privilégié puisse mettre en rade le système !

> Lire le journal (15 commentaires, moyenne: 2,5).  

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

DLLTools

Posté par √λιi () le 21/06/2004 à 17:08. (lien). Évalué à 3.

Il me semble que mplayer utilise DLLTool. P'tet qu'une mise à jour pourrais corriger ton problème. (sil n'y a que les codecs DLL qui ne marchent pas, c'est une piste)

  • [^]Re: DLLTools

    Posté par Tennis Prono (page perso, ) le 21/06/2004 à 19:10. (lien). Évalué à 5.

    Ce qui m'inquiète ce n'est pas tant le plantage de mplayer, mais plutôt le fait qu'un processus utilisateur puisse mettre en déroute le système.
    Troll: si ça se passait sous Windows, on verrait des gens dire "ouais, c'est nul c'est un système mal fichu, vu que ce est un système propriétaire fermé ce n'est pas étonnant !

    --
    Pas de bureau 3d libre sans drivers libres!

carte graphique

Posté par sircomsoft () le 21/06/2004 à 17:18. (lien). Évalué à 1.

et ta carte graphique, elle marche bien ? jamais eu de pb similaire avec ?

  • [^]Re: carte graphique

    Posté par Tennis Prono (page perso, ) le 21/06/2004 à 19:04. (lien). Évalué à 2.

    J'ai aussi essayé depuis une console. Je vais essayer avec:
    mplayer -vo null

    --
    Pas de bureau 3d libre sans drivers libres!
    • [^]Re: carte graphique

      Posté par Tennis Prono (page perso, ) le 21/06/2004 à 20:14. (lien). Évalué à 3.

      mplayer -vo null -ao null -> boom
      Étape suivante: je fais un programme C qui effectue les même appels système.

      --
      Pas de bureau 3d libre sans drivers libres!

FORUM !

Posté par 007 () le 21/06/2004 à 17:24. (lien). Évalué à 2.

> Que feriez-vous à ma place ?

A ta place, je posterai ça sur les forums. Il y en a un pour Mandrake sur linuxfr :
http://linuxfr.org/forums/14/(...)

Merci de votre attention.

  • [^]Re: FORUM !

    Posté par Tennis Prono (page perso, ) le 21/06/2004 à 19:08. (lien). Évalué à 2.

    Je vais le faire. Merci du conseil.

    --
    Pas de bureau 3d libre sans drivers libres!

Bug noyau ?

Posté par Obsidian () le 21/06/2004 à 18:41. (lien). Évalué à 3.

Elle se trouve sur quel filesystem, ta lib ?
Parce que mmap est un appel système bien connu, mais mmap2, même s'il est similaire, est:

1) Spécifique à Linux
2) Assez récent (depuis le noyau 2.3.31)

Si en plus, cela bloque les processus complètement indépendants mais qui se réfèrent à ton processus (probablement via /proc), je dirais qu'il y a 9 chances sur 10 que mmap2 soit instable et réagisse mal à travers un filesystem exporté.

Essaie déjà de déplacer ta DLL Windows sur ton disque local et de t'arranger pour que mplayer aille la chercher à cet endroit, cela devrait probablement résoudre le problème temporairement. Si elle s'y trouvait déjà, essaie au contraire de la déplacer vers une partition FAT ou EXT2. Ensuite, si tes recherches sur Google ne donnent rien, envoie un patch ou soumet un rapport de bug ... et tiens-nous au courant :-)

Bon courage.

  • [^]Re: Bug noyau ?

    Posté par Tennis Prono (page perso, ) le 21/06/2004 à 19:13. (lien). Évalué à 2.

    Elle se trouve dans /usr/lib/win32, sur une partition reiserfs (elle vient d'un paquet PLF). Pour le rapport de bug, je l'envoie du coté de Mandrake, ou alors il y a un endroit spécifique au noyau ?
    Bon, allez encore un petit test et quelques "fsck.reiserfs --rebuild-tree" :-(

    --
    Pas de bureau 3d libre sans drivers libres!
  • [^]Re: Bug noyau ?

    Posté par gc (page perso, ) le 22/06/2004 à 07:55. (lien). Évalué à 2.

    tu as vérifié que le syscall mmap n'est pas émulé avec mmap2 et potentiellement visible comme un mmap2 dans strace ?

2.4 -> 2.6

Posté par wismerhill (page perso, ) le 21/06/2004 à 19:57. (lien). Évalué à 2.

J'ai rencontré les mêmes problèmes, qui ont disparu lorsque je suis passé au noyau 2.6.
Peut-être Mandrake a-t-elle intégré au noyau 2.4 des patch qui posent problème dans ce cas précis. À noter que le problème s'était également posé avec wine (toujours lié à des dll windows donc). Peut-être des patch de sécurité qui bloquaient le code windows ...

  • [^]Re: 2.4 -> 2.6

    Posté par 007 () le 21/06/2004 à 22:16. (lien). Évalué à 1.

    > toujours lié à des dll windows donc

    Il y a le même "problème" avec execshield. C'est un "faux" problème car execsheild peut-être désactivé par programme :
    # execstack -q /usr/bin/mplayer
    X /usr/bin/mplayer

    Pour un programme "normal" :
    # execstack /bin/ls
    - /bin/ls

    execshield peut aussi être désactivé lors de la phase de link mais j'ai oublié comment. Normalement au build de mplayer c'est fait automatiquement.

    • [^]Re: 2.4 -> 2.6

      Posté par Tennis Prono (page perso, ) le 22/06/2004 à 19:34. (lien). Évalué à 2.

      J'ai essayé, et ce n'est pas ça. En lisant la FAQ de mplayer, j'ai lu que ce problème pouvait mener à un segfault, pas à un problème noyau.

      --
      Pas de bureau 3d libre sans drivers libres!

meuh

Posté par gc (page perso, ) le 22/06/2004 à 08:02. (lien). Évalué à 5.

le process est figé. Pire, tout process qui essaie d'accéder à ce process là [..] est figée elle aussi

Ca sent le D-state ça : le disk-state à savoir l'attente du processus du résultat d'une E/S disque. Ça arrive sur bug ou "feature"[1] du kernel. Pour ton cas, c'est curieux, est-ce que l'utilisation des dll windows nécessite un module kernel spécifique ? Ça ne doit pas être le cas je suppose, si c'est bien cela c'est probablement un bug du kernel. Essaie de mettre à jour ton kernel ?

Le seul moyen de rebooter est avec la commande magique alt-sys-b (ou le bouton reset), après quoi j'ai le droit à de fabuleux checkdisks

Avant Alt-SysRq-B, tappe Alt-SysRq-S et Alt-SysRq-U (plusieurs fois chacun, ça ne réagit pas toujours en une fois) : le S permet de s-ynchronser les disques (flusher les buffers d'ecriture sur disque) et U de u-mounter les partitions (en fait ça les remonte en read-only). Ça te permettra d'éviter toute corruption sur les disques.


[1] un montage NFS par défaut est "hard" c'est à dire que toute attente réseau sur une entrée-sortie est complètement bloquante pour le processus (D-state donc) afin de simuler au plus près une partition montée localement ; ça peut être emmerdant si le serveur NFS tombe en rade, si on souhaite que les processus qui ouvrent des fichiers sur les volumes NFS se mangent des EIO plutôt qu'ils soient bloqués jusqu'au retour hypothétique du serveur NFS, monter avec l'option "soft"

  • [^]Re: meuh

    Posté par Tennis Prono (page perso, ) le 22/06/2004 à 17:43. (lien). Évalué à 2.

    Essaie de mettre à jour ton kernel ?
    C'est le dernier dispo chez Mandrake.

    Alt-SysRq-U
    Je n'avais pas fait celui-là.

    --
    Pas de bureau 3d libre sans drivers libres!

Revenir en haut de page