2.2.1x: autofs trouble

From: Kurt Garloff (garloff@suse.de)
Date: Sun Jul 02 2000 - 18:34:13 EDT

  • Next message: Robert Dinse: "Re: Low Latency Patch"

    Hi,

    I got trouble with autofs (4.0.0-pre6) and 2.2.1x kernels.

    A network of computers (behind a FW) sharing homes via NFS + autofs.
    The user's homes are distributed on different machines (everybody has his
    home on the one he normally uses) and gets NFS exported (KNFSD) to the
    friends.
    /home is actually a automount dir. The subdirs get either symlinked to
    real-home (if home is local) or NFS mounted from the real-home from another
    host.

    The trouble starts when the latter fails.
    Sometimes nothing happens, and you succeed to log in an empty home.
    Most of the times, something bad is going on:
    You also land in an empty home, but if you look what the autofs directory
    looks like, you get scared:
    The same directory a couple of times, without one of them being accessible.
    The kernel does not recover from this. As soon as you try to unmount resp.
    kill automount, you get an Oops.

    Jul 2 23:52:39 gum03 automount[468]: parse(sun): gathered options: fstype=nfs,rsize=8192,wsize=8192,intr,nosuid,nodev
    Jul 2 23:52:39 gum03 automount[468]: parse(sun): dequote("etpgum:/real-home/garloff") -> etpgum:/real-home/garloff
    Jul 2 23:52:39 gum03 automount[468]: parse(sun): core of entry: options=fstype=nfs,rsize=8192,wsize=8192,intr,nosuid,nodev, loc=etpgum:/real-home/garloff
    Jul 2 23:52:39 gum03 automount[468]: parse(sun): mounting root /home, mountpoint garloff/, what etpgum:/real-home/garloff, fstype nfs, options rsize=8192,wsize=8192,intr,nosuid,nodev
    Jul 2 23:52:39 gum03 automount[468]: mount(nfs): root=/home name=garloff/ what=etpgum:/real-home/garloff, fstype=nfs, options=rsize=8192,wsize=8192,intr,nosuid,nodev
    Jul 2 23:52:39 gum03 automount[468]: mount(nfs): nfs options="rsize=8192,wsize=8192,intr,nosuid,nodev", nosymlink=0
    Jul 2 23:52:39 gum03 automount[468]: mount(nfs): calling mkdir_path /home/garloff/
    Jul 2 23:52:39 gum03 automount[468]: mount(nfs): calling mount -t nfs -s -o rsize=8192,wsize=8192,intr,nosuid,nodev etpgum:/real-home/garloff /home/garloff/
    Jul 2 23:52:39 gum03 automount[468]: >> mount: etpgum:/real-home/garloff failed, reason given by server: Permission denied
    Jul 2 23:52:39 gum03 automount[468]: mount(nfs): nfs: mount failure etpgum:/real-home/garloff on /home/garloff/
    Jul 2 23:52:39 gum03 automount[468]: mount(nfs): nfs: rmdir ("/home/garloff/") = 0
    Jul 2 23:52:46 gum03 automount[178]: shutting down, path = /misc
    Jul 2 23:52:46 gum03 automount[193]: shutting down, path = /etp
    Jul 2 23:52:46 gum03 automount[217]: shutting down, path = /novell
    Jul 2 23:52:46 gum03 automount[183]: shutting down, path = /home
    Jul 2 23:52:46 gum03 kernel: Unable to handle kernel NULL pointer dereference at virtual address 00000008
    Jul 2 23:52:46 gum03 kernel: current->tss.cr3 = 0db26000, %cr3 = 0db26000
    Jul 2 23:52:46 gum03 kernel: *pde = 00000000
    Jul 2 23:52:46 gum03 kernel: OopOAs: 0000
    Jul 2 23:52:46 gum03 kernel: CPU: 0
    Jul 2 23:52:46 gum03 kernel: EIP: 0010:[kmem_cache_free+64/372]
    Jul 2 23:52:46 gum03 kernel: EFLAGS: 00010086
    Jul 2 23:52:46 gum03 kernel: eax: 0000007c ebx: cd119a20 ecx: 00000000 edx: cd119a9c
    Jul 2 23:52:46 gum03 kernel: esi: cffff620 edi: 00000282 ebp: cd9636a4 esp: cda19f2c
    Jul 2 23:52:46 gum03 kernel: ds: 0018 es: 0018 ss: 0018
    Jul 2 23:52:46 gum03 kernel: Process automount (pid: 183, process nr: 20, stackpage=cda19000)
    Jul 2 23:52:46 gum03 kernel: Stack: cdb89400 cd9636a4 cd119a9c cd119aa0 c01331e7 cffff620 cd119a20 cd119a20
    Jul 2 23:52:46 gum03 kernel: cd119aa0 c01334f8 cd119a20 00000000 00000000 ce77d8c0 d084e420 cdb89400
    Jul 2 23:52:46 gum03 kernel: ce77d8e4 ce77d8c0 00000000 00000001 d084e2ce ce77d8c0 cd950960 ffffffe7
    Jul 2 23:52:46 gum03 kernel: Call Trace: [dput+223/328] [shrink_dcache_sb+284/296] [autofs:autofs_catatonic_mode+116/552] [autofs:is_autofs_dentry+298/520] [sys_ioctl+421/444] [system_call+52/56]
    Jul 2 23:52:46 gum03 kernel: Code: 8b 69 08 81 fd 2b 2f c3 a5 0f 85 d9 00 00 00 8b 69 0c 85 ed

    Options used: -V (default)
                  -o /lib/modules/2.2.16/ (default)
                  -k /proc/ksyms (default)
                  -l /proc/modules (default)
                  -m /usr/src/linux/System.map (default)
                  -c 1 (default)

    Code: 00000000 Before first symbol 00000000 <_IP>: <===
    Code: 00000000 Before first symbol 0: 8b 69 08 movl 0x8(%ecx),%ebp <===
    Code: 00000003 Before first symbol 3: 81 fd 2b 2f c3 a5 cmpl $0xa5c32f2b,%ebp
    Code: 00000009 Before first symbol 9: 0f 85 d9 00 00 00 jne 000000e8 Before first symbol
    Code: 0000000f Before first symbol f: 8b 69 0c movl 0xc(%ecx),%ebp
    Code: 00000012 Before first symbol 12: 85 ed testl %ebp,%ebp

    The problem seems to be in the kernel.
    The NFS mount module of automount does correctly see that the mount failed
    and does rmdir() the path (with a status of 0).

    However, some race must have happened in between; maybe another process
    triggering another mount? Or just the inode of the dir being busy, as some
    looged in with it as home dir, so it can't be removed?
    If you just do a couple of ls ot the failing dir, you won't see the problem.
    (Maybe you will after some trials?) Or just a bookkeeping error in autofs?

    Anybody any clue?

    -- 
    Kurt Garloff  <garloff@suse.de>                          Eindhoven, NL
    GPG key: See mail header, key servers         Linux kernel development
    SuSE GmbH, Nuernberg, FRG                               SCSI, Security
    


    - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/



    This archive was generated by hypermail 2b29 : Mon Jul 03 2000 - 18:30:18 EDT