panic with overcommit and RACCT

Mateusz Guzik mjguzik at gmail.com
Sun May 13 20:29:33 UTC 2012


On Sun, May 13, 2012 at 09:27:11PM +0400, Andrey Zonov wrote:
> Hi,
> 
> I've got a repeatable panic on latest 9.0-STABLE and HEAD with
> turned on overcommit (vm.overcommit=1) and RACCT.
> 
> kgdb trace on today's HEAD:
> 
> #10 0xffffffff80bc3513 in calltrap ()
>     at /usr/src/sys/amd64/amd64/exception.S:228
> #11 0xffffffff808aab71 in racct_set_locked (p=0xfffffe0005d684a0,
> resource=0,
>     amount=2680) at /usr/src/sys/kern/kern_racct.c:372
> #12 0xffffffff808ab645 in racct_proc_exit (p=0xfffffe0005d684a0)
>     at /usr/src/sys/kern/kern_racct.c:615
> #13 0xffffffff80880d69 in fork1 (td=0xfffffe0005b2c460, flags=20, pages=4,
>     procp=0xffffff811a36bb00, procdescp=Variable "procdescp" is not
> available.
> ) at /usr/src/sys/kern/kern_fork.c:943
> #14 0xffffffff80882362 in sys_fork (td=0xfffffe0005b2c460,
> uap=Variable "uap" is not available.
> )
>     at /usr/src/sys/kern/kern_fork.c:110
> #15 0xffffffff80bd7a89 in amd64_syscall (td=0xfffffe0005b2c460, traced=0)
>     at subr_syscall.c:135
> #16 0xffffffff80bc37f7 in Xfast_syscall ()
>     at /usr/src/sys/amd64/amd64/exception.S:387
> #17 0x00000008024729fc in ?? ()
> Previous frame inner to this frame (corrupt stack?)
> (kgdb)
> 
> Unread portion of the kernel message buffer:
> Kernel page fault with the following non-sleepable locks held:
> exclusive sleep mutex racct lock (racct lock) r = 0
> (0xffffffff8128a7c0) locked @ /usr/src/sys/kern/kern_racct.c:614
> exclusive sleep mutex process lock (process lock) r = 0
> (0xfffffe0005d68598) locked @ /usr/src/sys/kern/kern_racct.c:603
> 

It looks like racct_proc_exit can be called for processes without
properly initialized racct structure, which in turn results in this
panic.

Can you please test this patch:
http://student.agh.edu.pl/~mjguzik/patches/racct-fork.patch

?

I was unable to reproduce panic you describe, so it was tested only by
manually injecting error. Nevertheless I think you should try it. :)

-- 
Mateusz Guzik <mjguzik gmail.com>


More information about the freebsd-stable mailing list