--- Begin Message ---
- To: Debian Bug Tracking System <submit@bugs.debian.org>
- Subject: initramfs-tools: NFS timeout on first mount causes looping.
- From: Tim Phipps <tim@phipps-hutton.freeserve.co.uk>
- Date: Thu, 28 Sep 2006 20:03:50 +0100
- Message-id: <20060928190350.5036.75928.reportbug@hal.phipps-hutton>
Package: initramfs-tools
Version: 0.80
Severity: normal
I'm still getting the timeouts on root mount refered to in bug 359926.
With this version of initramfs-tools the retry fails without really
retrying and it enters a loop. After 180s it times out and drops to a
panic shell. IP is configured since I can ping the client. On the server
I see this in syslog:
Sep 28 17:58:01 hal dhcpd: DHCPDISCOVER from 00:40:63:cc:0f:d0 via eth0
Sep 28 17:58:01 hal dhcpd: DHCPOFFER on 192.168.0.8 to00:40:63:cc:0f:d
Sep 28 17:58:03 hal dhcpd: DHCPREQUEST for 192.168.0.8(192.168.0.4) fr
Sep 28 17:58:03 hal dhcpd: DHCPACK on 192.168.0.8 to 00:40:63:cc:0f:d0
Sep 28 17:58:03 hal atftpd[4096]: Serving pxelinux.0 to 192.168.0.8:207
Sep 28 17:58:03 hal atftpd[4096]: Serving pxelinux.0 to 192.168.0.8:207
Sep 28 17:58:03 hal atftpd[4096]: Serving pxelinux.cfg/01-00-40-63-cc-0
Sep 28 17:58:03 hal atftpd[4096]: Serving pxelinux.cfg/orac.menu to 192
Sep 28 17:58:08 hal atftpd[4096]: Serving vmlinuz to 192.168.0.8:57091
Sep 28 17:58:11 hal atftpd[4096]: Serving initrd.img to 192.168.0.8:570
Sep 28 17:58:29 hal dhcpd: DHCPDISCOVER from 00:40:63:cc:0f:d0 via eth0
Sep 28 17:58:29 hal dhcpd: DHCPOFFER on 192.168.0.8 to 00:40:63:cc:0f:d
Sep 28 17:58:29 hal dhcpd: DHCPREQUEST for 192.168.0.8 (192.168.0.4) fr
Sep 28 17:58:29 hal dhcpd: DHCPACK on 192.168.0.8 to 00:40:63:cc:0f:d0
Sep 28 17:58:30 hal dhcpd: DHCPREQUEST for 192.168.0.8 (192.168.0.4) fr
Sep 28 17:58:30 hal dhcpd: DHCPACK on 192.168.0.8 to 00:40:63:cc:0f:d0
Sep 28 17:58:30 hal mountd[4554]: authenticated mount request from orac
Sep 28 17:58:56 hal dhcpd: DHCPDISCOVER from 00:40:63:cc:0f:d0 via eth0
Sep 28 17:58:56 hal dhcpd: DHCPOFFER on 192.168.0.8 to 00:40:63:cc:0f:d
Sep 28 17:58:56 hal dhcpd: DHCPREQUEST for 192.168.0.8 (192.168.0.4) fr
Sep 28 17:58:56 hal dhcpd: DHCPACK on 192.168.0.8 to 00:40:63:cc:0f:d0
Sep 28 17:58:57 hal dhcpd: DHCPREQUEST for 192.168.0.8 (192.168.0.4) fr
Sep 28 17:58:57 hal dhcpd: DHCPACK on 192.168.0.8 to 00:40:63:cc:0f:d0
Sep 28 17:58:58 hal dhcpd: DHCPDISCOVER from 00:40:63:cc:0f:d0 via eth0
Sep 28 17:58:58 hal dhcpd: DHCPOFFER on 192.168.0.8 to 00:40:63:cc:0f:d
Sep 28 17:58:58 hal dhcpd: DHCPREQUEST for 192.168.0.8 (192.168.0.4) fr
Sep 28 17:58:58 hal dhcpd: DHCPACK on 192.168.0.8 to 00:40:63:cc:0f:d0
Sep 28 17:58:59 hal dhcpd: DHCPREQUEST for 192.168.0.8 (192.168.0.4) fr
Sep 28 17:58:59 hal dhcpd: DHCPACK on 192.168.0.8 to 00:40:63:cc:0f:d0
First off the boot rom does DHCP and gets pxelinux.0 from TFTP, that
then gets the config files and after a timeout boots the default vmlinuz
and initrd.img. The kernel then runs and eventually the first DHCP from
scripts/nfs runs, That works and an nfsmount is run. The first nfsmount
results in the mountd message (with no delay) but that first nfsmount
does time out and then 26 secods later scripts/nfs goes back to running
ipconfig. scripts/nfs seems to get screwed up here since the nfsmount
does not get retried. The DISCOVER...ACK sequence repeats every 1 second
until the 180 second timeout and then I guess it ends up it a shell
prompt since it won't find init.
The previous version of initramfs-tools worked better than this, at
least the second nfsmount would be tried and would usually succeed.
I don't know the cause of this. I have NFSROOT=auto from
/etc/initramfs-tools/initramfs.conf but I think that only has effect on
the first pass through scripts/nfs:
# get nfs root from dhcp
if [ "x${NFSROOT}" = "xauto" ]; then
NFSROOT=${ROOTSERVER}:${ROOTPATH}
# nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]
elif [ -n "${NFSROOT}" ]; then
# nfs options are an optional arg
if [ "${NFSROOT#*,}" != "${NFSROOT}" ]; then
NFSOPTS="-o ${NFSROOT#*,}"
fi
NFSROOT=${NFSROOT%%,*}
if [ "${NFSROOT#:*}" = "$NFSROOT" ]; then
NFSROOT=${ROOTSERVER}:${NFSROOT}
fi
fi
The first time through this NFSROOT will start at "auto" but will end
up as "192.168.0.4:/" or whatever ipconfig puts in ROOTSERVER,ROOTPATH.
The second time through NFSROOT will be "x.x.x.x:/xxx" and it won't be
changed. I think if ipconfig screws up the first time the retries will
not correct it but will keep on trying to nfs mount with bad options.
At least that's my guess as to what's happening. It might be better to
split the ipconfig stage from the nfsmount stage and have both sit in a
loop until they each succeed. At least then the ipconfig would work.
I've never had ipconfig fail. It's not likely to either with PXE since the
only way the initrd arrives is with the boot rom running DHCP and fetching
pxelinux.0. So with PXE the DHCPD and TFTPD have both been woken up
and tested before initramfs-tools does anything.
-- Package-specific info:
-- /proc/cmdline on the server
root=LABEL=root
-- /proc/cmdline on the clients
boot=nfs 3
-- /proc/filesystems
cramfs
ext3
-- lsmod
Module Size Used by
unionfs 64896 0
savage 28416 1
drm 61556 2 savage
nfsd 196644 17
exportfs 5504 1 nfsd
ipv6 222304 42
p4_clockmod 5476 0
speedstep_lib 4548 1 p4_clockmod
freq_table 4544 1 p4_clockmod
dm_snapshot 16032 0
dm_mirror 18928 0
dm_mod 50424 2 dm_snapshot,dm_mirror
cpufreq_userspace 4160 1
vt1211 19512 0
hwmon_vid 2624 1 vt1211
i2c_isa 4896 1 vt1211
mousedev 10788 1
eth1394 18052 0
snd_via82xx 25912 0
gameport 14344 1 snd_via82xx
snd_ac97_codec 82720 1 snd_via82xx
snd_ac97_bus 2368 1 snd_ac97_codec
snd_mpu401_uart 7520 1 snd_via82xx
snd_pcm_oss 35968 0
snd_pcm 74532 3 snd_via82xx,snd_ac97_codec,snd_pcm_oss
snd_page_alloc 9512 2 snd_via82xx,snd_pcm
snd_mixer_oss 15872 1 snd_pcm_oss
snd_seq_dummy 3812 0
snd_seq_oss 28640 0
cx88_dvb 12356 12
cx88_vp3054_i2c 4288 1 cx88_dvb
mt352 5956 1 cx88_dvb
or51132 9252 1 cx88_dvb
video_buf_dvb 6308 1 cx88_dvb
dvb_core 69512 1 video_buf_dvb
nxt200x 12036 1 cx88_dvb
zl10353 4932 1 cx88_dvb
cx24123 12168 1 cx88_dvb
lgdt330x 7292 1 cx88_dvb
cx22702 5892 1 cx88_dvb
dvb_pll 12388 4 cx88_dvb,or51132,nxt200x,cx22702
cx88_blackbird 18332 0
cx8802 11428 2 cx88_dvb,cx88_blackbird
firmware_class 9696 3 or51132,nxt200x,cx88_blackbird
snd_seq_midi 8128 0
snd_rawmidi 22560 2 snd_mpu401_uart,snd_seq_midi
snd_seq_midi_event 6976 2 snd_seq_oss,snd_seq_midi
snd_seq 46224 6 snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_seq_midi_event
snd_timer 20836 2 snd_pcm,snd_seq
snd_seq_device 7756 5 snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_rawmidi,snd_seq
shpchp 34272 0
snd 48100 11 snd_via82xx,snd_ac97_codec,snd_mpu401_uart,snd_pcm_oss,snd_pcm,snd_mixer_oss,snd_seq_oss,snd_rawmidi,snd_seq,snd_timer,snd_seq_device
cx8800 29740 1 cx88_blackbird
cx88xx 57732 4 cx88_dvb,cx88_blackbird,cx8802,cx8800
pci_hotplug 27196 1 shpchp
serio_raw 6596 0
ir_common 27012 1 cx88xx
ohci1394 30448 0
ieee1394 86584 2 eth1394,ohci1394
soundcore 9216 1 snd
i2c_algo_bit 8328 2 cx88_vp3054_i2c,cx88xx
via_agp 9632 1
ide_cd 35680 0
cdrom 32448 1 ide_cd
via_ircc 23092 0
video_buf 22820 6 cx88_dvb,video_buf_dvb,cx88_blackbird,cx8802,cx8800,cx88xx
tveeprom 13808 1 cx88xx
v4l2_common 14080 2 cx88_blackbird,cx8800
compat_ioctl32 1440 1 cx8800
v4l1_compat 12004 1 cx8800
btcx_risc 4744 3 cx8802,cx8800,cx88xx
videodev 8928 3 cx88_blackbird,cx8800,cx88xx
agpgart 29864 2 drm,via_agp
psmouse 34600 0
evdev 9088 3
irda 162364 1 via_ircc
crc_ccitt 2208 1 irda
i2c_viapro 8148 0
i2c_core 19552 14 vt1211,i2c_isa,cx88_dvb,mt352,or51132,nxt200x,zl10353,cx24123,lgdt330x,cx22702,cx88xx,i2c_algo_bit,tveeprom,i2c_viapro
rtc 12340 0
pcspkr 3040 0
8250_pnp 8704 0
thermal 12904 0
processor 25512 1 thermal
fan 4516 0
button 6544 0
via_rhine 22248 0
mii 5312 1 via_rhine
ide_disk 15072 6
via82cxxx 8292 0 [permanent]
ide_core 111016 3 ide_cd,ide_disk,via82cxxx
usbhid 36704 0
uhci_hcd 20424 0
ehci_hcd 28040 0
usbcore 111616 4 usbhid,uhci_hcd,ehci_hcd
nfs 194636 0
lockd 53256 3 nfsd,nfs
nfs_acl 3552 2 nfsd,nfs
sunrpc 137884 13 nfsd,nfs,lockd,nfs_acl
ext3 118568 3
jbd 50292 1 ext3
mbcache 8324 1 ext3
-- kernel-img.conf
link_in_boot = yes
do_symlinks = yes
relative_links = yes
do_bootloader = no
do_bootfloppy = no
do_initrd = yes
silent_modules = yes
#postinst_hook = /sbin/update-grub
#postrm_hook = /sbin/update-grub
-- System Information:
Debian Release: testing/unstable
APT prefers testing
APT policy: (500, 'testing')
Architecture: i386 (i686)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.17-2-686
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Versions of packages initramfs-tools depends on:
ii busybox 1:1.1.3-3 Tiny utilities for small and embed
ii cpio 2.6-17 GNU cpio -- a program to manage ar
ii klibc-utils 1.4.27-1 small statically-linked utilities
ii module-init-tools 3.2.2-3 tools for managing Linux kernel mo
ii udev 0.100-1 /dev/ and hotplug management daemo
initramfs-tools recommends no packages.
-- no debconf information
--- End Message ---