• # Deadlock sur des fichiers NFS

    Posté par (site web personnel) . En réponse au message Deadlock sur des fichiers NFS. Évalué à 2.

    Bien le bonjour,
    Je n'ai toujours pas résolu mon problème, mais j'ai un peu avancé, et j'ai trouvé des infos pour la Solaris.
    Malheureusement mon serveur NFS est sur une redhat, mais bon, peut-être que ces infos pourraient profiter un jour à quelqu'un :
    Sur Solaris vous pouvez voir via les commandes pstack et truss si les processus sont suspendus en état lock.

    client1% ps -eaf | grep SuperApp
    mre 23796 10031 0 11:13:22 pts/6 0:00 SuperApp
    client1% pstack 23796
    23796: SuperApp
    ff313134 fcntl (1, 7, ffbef9dc)
    ff30de48 fcntl (1, 7, ffbef9dc, 0, 0, 0) + 1c8
    ff30e254 lockf (1, 1, 0, 2, ff332584, ff2a0140) + 98
    0001086c main (1, ffbefac4, ffbefacc, 20800, 0, 0) + 1c
    00010824 _start (0, 0, 0, 0, 0, 0) + dc
    client1% truss -p 23796
    fcntl(1, F_SETLKW, 0xFFBEF9DC) (sleeping...)

    On peut utiliser la commande crash également qui pourrait être assimilé à un shell, mais avec des commandes internes du noyau afin d'examiner son état. Nous utiliserons la commande interne lck pour lock bien sur :

    spike# crash
    dumpfile = /dev/mem, namelist = /dev/ksyms, outfile = stdout
    > lck
    Active and Sleep Locks:
    INO TYP START END PROC PID FLAGS STATE PREV NEXT LOCK
    30000c3ee18 w 0 0 13 136 0021 3 48bf0f8 ae9008 6878d00
    30000dd8710 w 0 MAXEND 17 212 0001 3 8f1a48 8f02d8 8f0e18
    30001cce1c0 w 193 MAXEND -1 3242 2021 3 6878850 c43a08 2338a38

    Summary From List:
    TOTAL ACTIVE SLEEP
    3 3 0
    >

    Pour nettoyer l'état de lock :
    spike# cd /var/statmon/sm
    spike# ls
    client1 ipv4.10.1.0.25 ipv4.10.1.0.26 gonzo java

    spike# clear_locks gonzo

    Voilà, j'espère que ça pourra aidé quelqu'un un jour. C'est pas sur, mais bon...
    En tout cas, si quelqu'un sait comment lister ou même supprimer les lock sur des fichiers partagés via NFS, je suis toujours preneur.
    Pour info, je suis en Red Hat Linux release 7.2 (Enigma)

    Merci d'avance et bonne journée ;)