rpc.lockd(8) seg faults on 5.2-RELEASE

Rory Arms rorya at TrueStep.com
Wed Jan 28 02:20:53 PST 2004

-current developers,

I've noticed, since upgrading from 5.1-RELEASE-p11 to 5.2-RELEASE a few  
weeks ago, rpc.lockd has been crashing repeatedly, though randomly. All  
the clients are MacOS X 10.3 machines and one 10.2. Though, I think it  
wasn't till 10.3, that client NFS locking was finally supported. It  
looks like they request locks for certain operations, such as when  
reading the address book file. It definitely had something to do with  
the new version, as it started occurring after the upgrade, with no  
other changes on the network.

Here are the machine's specs:

 > cat /var/run/dmesg.boot
Copyright (c) 1992-2004 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
         The Regents of the University of California. All rights  
FreeBSD 5.2-RELEASE #3: Mon Jan 12 13:56:46 EST 2004
Preloaded elf kernel "/boot/kernel/kernel" at 0xc083b000.
Preloaded elf module "/boot/kernel/acpi.ko" at 0xc083b244.
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Pentium II/Pentium II Xeon/Celeron (375.04-MHz 686-class CPU)
   Origin = "GenuineIntel"  Id = 0x652  Stepping = 2
real memory  = 536739840 (511 MB)
avail memory = 511721472 (488 MB)
FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
  cpu0 (BSP): APIC ID:  0
  cpu1 (AP): APIC ID:  1
ioapic0 <Version 1.1> irqs 0-23 on motherboard
Pentium Pro MTRR support enabled
npx0: [FAST]
npx0: <math processor> on motherboard
npx0: INT 16 interface
acpi0: <TYANCP TYANTBLE> on motherboard
acpi0: Overriding SCI Interrupt from IRQ 9 to IRQ 20
pcibios: BIOS version 2.10
acpi0: Power Button (fixed)
Timecounter "ACPI-safe" frequency 3579545 Hz quality 1000
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x408-0x40b on acpi0
acpi_cpu0: <CPU> on acpi0
acpi_cpu1: <CPU> on acpi0
acpi_cpu1: Failed to attach throttling P_CNT
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
pcib1: <PCI-PCI bridge> at device 1.0 on pci0
pci1: <PCI bus> on pcib1
isab0: <PCI-ISA bridge> at device 7.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel PIIX4 UDMA33 controller> port 0xffa0-0xffaf at device  
7.1 on pci0
ata0: at 0x1f0 irq 14 on atapci0
ata0: [MPSAFE]
ata1: at 0x170 irq 15 on atapci0
ata1: [MPSAFE]
pci0: <serial bus, USB> at device 7.2 (no driver attached)
pci0: <bridge, PCI-unknown> at device 7.3 (no driver attached)
pcib2: <PCI-PCI bridge> at device 16.0 on pci0
pci2: <PCI bus> on pcib2
pcib2: slot 5 INTA is routed to irq 17
fxp0: <Intel 82559 Pro/100 Ethernet> port 0xdf00-0xdf3f mem  
0xfd500000-0xfd5fffff,0xfd6ff000-0xfd6fffff irq 17 at device 5.0 on  
fxp0: Ethernet address 00:90:27:ee:02:97
miibus0: <MII bus> on fxp0
inphy0: <i82555 10/100 media interface> on miibus0
inphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
fxp1: <Intel 82558 Pro/100 Ethernet> port 0xef40-0xef5f mem  
0xfea00000-0xfeafffff,0xffaff000-0xffafffff irq 19 at device 17.0 on  
fxp1: Ethernet address 00:e0:81:10:22:27
miibus1: <MII bus> on fxp1
inphy1: <i82555 10/100 media interface> on miibus1
inphy1:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
ahc0: <Adaptec aic7895 Ultra SCSI adapter> port 0xe400-0xe4ff mem  
0xfebee000-0xfebeefff irq 16 at device 18.0 on pci0
aic7895C: Ultra Wide Channel A, SCSI Id=7, 32/253 SCBs
ahc1: <Adaptec aic7895 Ultra SCSI adapter> port 0xe800-0xe8ff mem  
0xfebef000-0xfebeffff irq 16 at device 18.1 on pci0
aic7895C: Ultra Wide Channel B, SCSI Id=7, 32/253 SCBs
ahc2: <Adaptec 2902/04/10/15/20C/30C SCSI adapter> port 0xe000-0xe0ff  
mem 0xfebed000-0xfebedfff irq 16 at device 19.0 on pci0
aic7850: Single Channel A, SCSI Id=7, 3/253 SCBs
pci0: <display, VGA> at device 20.0 (no driver attached)
acpi_button0: <Sleep Button> on acpi0
atkbdc0: <Keyboard controller (i8042)> port 0x64,0x60 irq 1 on acpi0
atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0
kbd0 at atkbd0
fdc0: cmd 3 failed at out byte 1 of 3
sio0 port 0x3f8-0x3ff irq 4 on acpi0
sio0: type 16550A
sio1 port 0x2f8-0x2ff irq 3 on acpi0
sio1: type 16550A
fdc0: cmd 3 failed at out byte 1 of 3
orm0: <Option ROMs> at iomem 0xc8000-0xcc7ff,0xc0000-0xc7fff on isa0
pmtimer0 on isa0
fdc0: <Enhanced floppy controller (i82077, NE72065 or clone)> at port  
0x3f7,0x3f0-0x3f5 irq 6 drq 2 on isa0
fdc0: FIFO enabled, 8 bytes threshold
fd0: <1440-KB 3.5" drive> on fdc0 drive 0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on  
Timecounters tick every 10.000 msec
ipfw2 initialized, divert enabled, rule-based forwarding enabled,  
default to accept, logging limited to 50 packets/entry by default
IPsec: Initialized Security Association Processing.
acpi_cpu: throttling enabled, 8 steps (100% to 12.5%), currently 100.0%
GEOM: create disk ad0 dp=0xc4835760
ad0: 57259MB <MAXTOR 6L060J3> [116336/16/63] at ata0-master UDMA33
Waiting 15 seconds for SCSI devices to settle
GEOM: create disk da0 dp=0xc48dd050
GEOM: create disk da1 dp=0xc48cbc50
da0 at ahc0 bus 0 target 2 lun 0
da0: <SEAGATE ST410800N 7117> Fixed Direct Access SCSI-2 device
da0: 10.000MB/s transfers (10.000MHz, offset 15)
da0: 8347MB (17096357 512 byte sectors: 255H 63S/T 1064C)
da1 at ahc0 bus 0 target 6 lun 0
da1: <QUANTUM FIREBALL SE8.4S PJ0A> Fixed Direct Access SCSI-2 device
da1: 20.000MB/s transfers (20.000MHz, offset 15), Tagged Queueing  
da1: 8191MB (16777215 512 byte sectors: 255H 63S/T 1044C)
SMP: AP CPU #1 Launched!
Mounting root from ufs:/dev/da0s1a

So, it is a dual Pentium II system, using the Tyan Thunder 100  

I can provide the kern conf file, if needed. It is using the default  
SCHED_4BSD scheduler.

Anyhow, the client stalls when this happens. I have to run  
"/etc/rc.d/nfslocking restart" on the server to get it going again.  
Here's the log entry I see when I crashes:

Jan 16 01:11:02 Tserver kernel: pid 424 (rpc.lockd), uid 0: exited on  
signal 11
(core dumped)

I've found the core file it leaves behind. Here's some probing with  
gdb. I'm not really proficient with gdb, so if more is needed let me  
know what kind of extra information you need.

 > sudo gdb -c /rpc.lockd.core /usr/sbin/rpc.lockd
GNU gdb 5.2.1 (FreeBSD)
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and  
you are
welcome to change it and/or distribute copies of it under certain  
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for  
This GDB was configured as "i386-unknown-freebsd"...
(no debugging symbols found)...
Core was generated by `rpc.lockd'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /usr/lib/librpcsvc.so.2...(no debugging symbols  
Loaded symbols for /usr/lib/librpcsvc.so.2
Reading symbols from /lib/libutil.so.4...(no debugging symbols  
Loaded symbols for /lib/libutil.so.4
Reading symbols from /lib/libc.so.5...(no debugging symbols  
Loaded symbols for /lib/libc.so.5
Reading symbols from /libexec/ld-elf.so.1...(no debugging symbols  
Loaded symbols for /libexec/ld-elf.so.1
#0  0x0804dd2f in sigprocmask ()
(gdb) bt
#0  0x0804dd2f in sigprocmask ()
#1  0x080507f6 in _fini ()
#2  0x0804e39c in sigprocmask ()
#3  0x0804ec40 in sigprocmask ()
#4  0x0804f1a0 in sigprocmask ()
#5  0x0804f52e in sigprocmask ()
#6  0x0804cd73 in sigprocmask ()
#7  0x0804aec4 in sigprocmask ()
#8  0x280fe838 in svc_getreq_common () from /lib/libc.so.5
#9  0x280fe61f in svc_getreqset () from /lib/libc.so.5
#10 0x280bde94 in svc_run () from /lib/libc.so.5
#11 0x0804b378 in sigprocmask ()
#12 0x080498a2 in sigprocmask ()


Name:   Rory Arms  | TZ: GMT-5 | Web: http://www.TrueStep.com/~rory/
Email:  rorya at TrueStep.com        | Format: RFC-822 compliant
Finger: rorya at TrueStep.com for info. | Telephone: +1 859-225-3833
         "The mind's the standard of a man" --Joseph Merrick

Name:   Rory Arms                         Email:  rorya at TrueStep.com
Tel: +1 859-225-3833                    Time Zone: GMT -5
I went fishing with a dotted line...I caught every other fish. -Steven  

More information about the freebsd-current mailing list