page fault on today's CURRENT (tcp_usr_accept)
Robert Watson
rwatson at FreeBSD.org
Mon Apr 3 09:54:02 UTC 2006
On Mon, 3 Apr 2006, Ganbold wrote:
> I've got page fault on today's CURRENT.
After looking at tcp_usr_accept(), I certainly see *a* bug, which might be the
one you've run into. I've committed what I believe is the fix as
tcp_usrreq.c:1.134. Could you pull that down and see if life gets better?
Basically, there was erroneous handling of a connection that has been
disconnected while sitting in the accept queue before the application manages
to call accept() on it (indeed, a race).
Robert N M Watson
>
> Fatal trap 12: page fault while in kernel mode
> fault virtual address = 0xa0
> fault code = supervisor write, page not
> present
> instructon pointer = 0x20: 0xc062bbde
> stack pointer = 0x28: 0xcc8efc10
> frame pointer = 0x28: 0xcc8efc2c
> code segment = base 0x0, limit 0xfffff, type
> 0x1b
> =DPL 0, pres 1, def32 1,
> gran 1
> processor eflags = interrupt enabled, resume, IOPL = 0
> current process = 435 (smbd)
> [thread pid 435 tid 100039]
> stopped at tcp_usr_accept+0xd6: cmpxchgl %ecx, 0xa0(%ebx)
>
> I'm running samba (samba-3.0.21b,1) on this test machine and there is no
> load.
>
> FreeBSD gw.micom.mng.net 7.0-CURRENT FreeBSD 7.0-CURRENT #16: Mon Apr 3
> 14:15:48 ULAST 2006 tsgan at gw.micom.mng.net:/usr/obj/usr/src/sys/GW i386
>
> Ganbold
>
>
>
More information about the freebsd-current
mailing list