kernel panic on HEAD from Oct. 4th sources

Matthew Dillon dillon at apollo.backplane.com
Wed Oct 17 14:56:34 PDT 2007


:2007/10/16, Peter Avalos <pavalos at theshell.com>:
:> Just had this one last night:
:>
:> Fatal trap 12: page fault while in kernel mode
:[...]
:> #7  0xc018cb85 in fill_kinfo_proc (p=0xe8c21ba0, kp=0xec319628) at /usr/src/sys/kern/kern_kinfo.c:66
:
:It looks like p->p_pgrp == NULL.
:
:p_pgrp is checked against NULL in several other places in the kernel
:(and in fbsd too), so a fix could be to do the same in
:fill_kinfo_proc().
:
:However, I don't understand how p_pgrp can be NULL.  AFAIU, it is
:inherited from the parent process and set to NULL only when the
:process is about to die (leaveprgp() called from kern_wait() just
:before deleting the proc structure).  Could there be some race
:condition?

    I thought I fixed that one.

    Yes, kinfo_proc can race against an exiting process.  An exiting process
    will be in a partially deallocated state and p_pgrp could very well be
    NULL as of the moment kinfo_proc tries to access it.

					-Matt
					Matthew Dillon 
					<dillon at backplane.com>





More information about the Bugs mailing list