[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#563735: live-initramfs: nfs cow leads to segfault



Package: live-initramfs
Version: 1.156.1+1.157.2-1
Severity: normal


I have created a relatively simple Debian Live configuration to allow PXE booting a thin client.  Everything was working fine until I tried to add persistent copy-on-write via NFS.  The NFS server is configured like so:

    /srv/debian-live *(ro,async,subtree_check,no_root_squash)
    #/srv/debian-live-cow *(rw,async,subtree_check,all_squash,anonuid=1007,anongid=1007)
    /srv/debian-live-cow *(rw,async,subtree_check,no_root_squash)

(The commented second line is the configuration I was originally using; things broke there too.  The UID and GID are for a user I created to avoid giving root write permissions on the server to the thin client.)

The configuration in the Debian Live config directory was changed only in the "binary" file:

    # $LH_NET_COW_PATH: set cow directory
    # (Default: )
    LH_NET_COW_PATH="/srv/debian-live-cow"

    # $LH_NET_COW_SERVER: set cow server
    # (Default: )
    LH_NET_COW_SERVER="10.0.0.1"

This is *without* use of the "persistent" boot parameter, since that disables the functionality that makes use of these variables (and since the "persistent" boot-time parameter doesn't support NFS - it looks at local block devices).

Upon booting, I get the following:

    Begin: Running /scripts/live-premount ... done.
    IP-Config: eth0 hardware address 00:19:21:0d:24:84 mtu 1500 DHCP RARP
    [   10.260015] RPC: Registered udp transport module.
    [   10.260059] RPC: Registered tcp transport module.
    [   10.299282] aufs 20080714
    [   10.320096] loop: module loaded
    [   10.389098] squashfs: version 3.3-CVS (2008/04/04) Phillip Lougher
    [   10.409185] BUG: unable to handle kernel NULL pointer dereference at 00000015
    [   10.409278] IP: [<f89dbf90>] :nfs:nfs_create+0x47/0xa4
    [   10.409361] *pde = 00000000
    [   10.409423] Oops: 0000 [#1]
    [   10.409482] Modules linked in: squashfs zlib_inflate loop aufs exportfs nfs lockd nfs_acl sunrpc ide_generic ide_cd_mod cdrom ata_generic sata_nv libata scsi_mod dock usbhid hid ff_memless floppy forcedeth ide_pci_generic amd74xx ide_core ehci_hcd ohci_hcd usbcore thermal processor fan thermal_sys [last unloaded: scsi_wait_scan]
    [   10.410365]
    [   10.410401] Pid: 1433, comm: exe Not tainted (2.6.26-2-486 #1)
    [   10.410443] EIP: 0060:[<f89dbf90>] EFLAGS: 00010246 CPU: 0
    [   10.410499] EIP is at nfs_create+0x47/0xa4 [nfs]
    [   10.410539] EAX: f7136ae4 EBX: 00008124 ECX: 00008124 EDX: 00000000
    [   10.410581] ESI: f70f2294 EDI: f7136ae4 EBP: 00000000 ESP: f79e9c6c
    [   10.410623]  DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068
    [   10.410665] Process exe (pid: 1433, ti=f79e8000 task=f79414d0 task.ti=f79e8000)
    [   10.410708] Stack: 00000001 39368124 cccc3961 fffee532 f8a0acb0 f79e9c94 f897c580 f7455cc0
    [   10.410967]        f7136ae4 f7136ae4 f89dbafe 00000003 c016b971 f89f9d20 f7136ae4 00008124
    [   10.411224]        f70f2294 c016bf2b 00000000 00000000 00000124 f7138594 f70f2294 f89a4cee
    [   10.411482] Call Trace:
    [   10.411554]  [<f89dbafe>] nfs_permission+0x0/0x10d [nfs]
    [   10.411633]  [<c016b971>] permission+0xd6/0xfc
    [   10.411698]  [<c016bf2b>] vfs_create+0xb4/0x116
    [   10.411763]  [<f89a4cee>] au_h_create+0x25/0x93 [aufs]

The trace proceeds thusly.  I am then left in a BusyBox shell.  The read-only NFS mount (10.0.0.1:/srv/debian-live mounted on /live/image) behaves correctly.  Attempting to list the contents of the COW NFS mount (10.0.0.1:/srv/debian-live-cow mounted on /cow) locks up and will not respond to SIGINT.

I am able to mount both NFS shares successfully on other machines.  I am also able to mount the COW NFS share on the initramfs after the segfault using the same command that the /live.log claimed failed in the first place ("nfsmount -o nolock 10.0.0.1:/srv/debian-live-cow /cow") as long as I change the mount point.  Attempting to run the AUFS mount over that using "mount -o noatime,dirs=/foo=rw://filesystem.squashfs=rr -t aufs aufs /bar" (where /foo is the place I mounted the newer COW NFS share) leads to the same segfault.  Please also note that passing the boot-time parameter "nopersistent" avoids all of this.

As a result of the above, I can only conclude that this is the result of some peculiar combination between AUFS and using an NFS share for COW.  I have no workaround.  Please let me know if I can provide any additional information.

-- Package-specific info:

-- System Information:
Debian Release: 5.0.2
  APT prefers stable
  APT policy: (600, 'stable')
Architecture: i386 (i686)

Kernel: Linux 2.6.18-5-686 (SMP w/1 CPU core)
Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1)
Shell: /bin/sh linked to /bin/bash

Versions of packages live-initramfs depends on:
ii  busybox                   1:1.10.2-2     Tiny utilities for small and embed
ii  file                      4.26-1         Determines file type using "magic"
ii  initramfs-tools           0.92o          tools for generating an initramfs
ii  sudo                      1.6.9p17-2     Provide limited super user privile
ii  udev                      0.125-7+lenny1 /dev/ and hotplug management daemo
ii  user-setup                1.23           Set up initial user and password

Versions of packages live-initramfs recommends:
ii  cryptsetup                  2:1.0.6-7    configures encrypted block devices
ii  eject                       2.1.5+deb1-4 ejects CDs and operates CD-Changer
ii  uuid-runtime                1.41.3-1     universally unique id library
ii  wget                        1.11.4-2     retrieves files from the web

Versions of packages live-initramfs suggests:
pn  curlftpfs                     <none>     (no description available)
pn  genext2fs                     <none>     (no description available)
pn  httpfs2                       <none>     (no description available)
pn  loop-aes-utils                <none>     (no description available)
pn  mtd-tools                     <none>     (no description available)
ii  squashfs-tools                1:3.3-7    Tool to create and append to squas

-- no debconf information



Reply to: