rpc.statd: msync() failed
John Baldwin
jhb at freebsd.org
Fri Feb 15 17:10:57 UTC 2008
On Friday 15 February 2008 11:08:15 am Christian Weisgerber wrote:
> $ uname -srm
> FreeBSD 5.5-STABLE alpha
>
> Whenever I boot the machine into multi-user mode, this error shows
> up:
>
> rpc.statd: msync() failed: Invalid argument
>
> I've finally bothered to ktrace the rpc.statd invocation and the
> problem remains mysterious. rpc.statd mmaps its status file,
> daemonizes, syslogs a startup messages, reads something from a UDP
> socket, msyncs the mmaped region--error! None of the documented
> reasons for msync(2) to fail with EINVAL apply.
>
> [...]
> 375 rpc.statd CALL open(0x1200032bc,0x2,0x160258b2a)
> 375 rpc.statd NAMI "/var/db/statd.status"
> 375 rpc.statd RET open 3
> 375 rpc.statd CALL mmap(0,0x10000000,0x3,0x1,0x3,0,0)
> 375 rpc.statd RET mmap 1613389824/0x1602a6000
> 375 rpc.statd CALL lseek(0x3,0,0,0x2)
> 375 rpc.statd RET lseek 256/0x100
> 375 rpc.statd CALL sigaction(0x1,0x11ffed68,0x11ffed48)
> 375 rpc.statd RET sigaction 0
> 375 rpc.statd CALL fork
> 375 rpc.statd RET fork 376/0x178
> 376 rpc.statd RET fork 0
> 375 rpc.statd CALL exit(0)
> 376 rpc.statd CALL setsid
> 376 rpc.statd RET setsid 376/0x178
> 376 rpc.statd CALL sigaction(0x1,0x11ffed48,0)
> 376 rpc.statd RET sigaction 0
> 376 rpc.statd CALL chdir(0x16025b956)
> 376 rpc.statd NAMI "/"
> 376 rpc.statd RET chdir 0
> 376 rpc.statd CALL open(0x160256c93,0x2,0)
> 376 rpc.statd NAMI "/dev/null"
> 376 rpc.statd RET open 8
> 376 rpc.statd CALL dup2(0x8,0)
> 376 rpc.statd RET dup2 0
> 376 rpc.statd CALL dup2(0x8,0x1)
> 376 rpc.statd RET dup2 1
> 376 rpc.statd CALL dup2(0x8,0x2)
> 376 rpc.statd RET dup2 2
> 376 rpc.statd CALL close(0x8)
> 376 rpc.statd RET close 0
> 376 rpc.statd CALL gettimeofday(0x11ffdfd8,0)
> 376 rpc.statd RET gettimeofday 0
> 376 rpc.statd CALL access(0x16025d455,0x4)
> 376 rpc.statd NAMI "/etc/localtime"
> 376 rpc.statd RET access 0
> 376 rpc.statd CALL open(0x16025d455,0,0x1)
> 376 rpc.statd NAMI "/etc/localtime"
> 376 rpc.statd RET open 8
> 376 rpc.statd CALL fstat(0x8,0x11ffb618)
> 376 rpc.statd RET fstat 0
> 376 rpc.statd CALL read(0x8,0x11ffbaa8,0x249c)
> 376 rpc.statd GIO fd 8 read 837 bytes
> [... TZ data omitted ...]
> 376 rpc.statd RET read 837/0x345
> 376 rpc.statd CALL close(0x8)
> 376 rpc.statd RET close 0
> 376 rpc.statd CALL socket(0x1,0x2,0)
> 376 rpc.statd RET socket 8
> 376 rpc.statd CALL fcntl(0x8,0x2,0x1)
> 376 rpc.statd RET fcntl 0
> 376 rpc.statd CALL connect(0x8,0x11ffdf78,0x6a)
> 376 rpc.statd NAMI "/var/run/logpriv"
> 376 rpc.statd RET connect 0
> 376 rpc.statd CALL sendto(0x8,0x11ffe048,0x27,0,0,0)
> 376 rpc.statd GIO fd 8 wrote 39 bytes
> "<30>Feb 15 16:25:31 rpc.statd: Starting"
> 376 rpc.statd RET sendto 39/0x27
> 376 rpc.statd CALL sigaction(0x14,0x11ffedb8,0)
> 376 rpc.statd RET sigaction 0
> 376 rpc.statd CALL select(0x8,0x11ffec78,0,0,0x11ffed78)
> 376 rpc.statd RET select 1
> 376 rpc.statd CALL
recvfrom(0x4,0x120034000,0x2260,0,0x11ffe608,0x11ffe688)
> 376 rpc.statd GIO fd 4 read 64 bytes
> 0x0000 47ba b599 0000 0000 0000 0002 0001 86b8 |G...............|
> 0x0010 0000 0001 0000 0004 0000 0000 0000 0000 |................|
> 0x0020 0000 0000 0000 0000 0000 0007 4e46 5320 |............NFS |
> 0x0030 4e4c 4d00 0000 0000 0000 0000 0000 0000 |NLM.............|
> 376 rpc.statd RET recvfrom 64/0x40
> 376 rpc.statd CALL msync(0x1602a6000,0,0)
> 376 rpc.statd RET msync -1 errno 22 Invalid argument
> 376 rpc.statd CALL gettimeofday(0x11ffd868,0)
> 376 rpc.statd RET gettimeofday 0
> 376 rpc.statd CALL sendto(0x8,0x11ffd8d8,0x3f,0,0,0)
> 376 rpc.statd GIO fd 8 wrote 63 bytes
> "<27>Feb 15 16:25:32 rpc.statd: msync() failed: Invalid argument"
> 376 rpc.statd RET sendto 63/0x3f
> [...]
I would add some printfs to msync() to see which EINVAL case is being
triggered and go from there.
--
John Baldwin
More information about the freebsd-alpha
mailing list