In message <pine.bsf.4.05.9906091450270.49155-100...@thelab.hub.org>Marc 
Fournier writes:
>> >I'm currently investigating a problem with my server that
>> >coincedentally(sp?) started right after I upgraded INN to what we
>> >currently have...
>> >
>> >Someone *just* suggested that they thought that 3.2-STABLE of FreeBSD
>> >still has a slight bug in MMAP that causes a race condition...it just
>> >clued into me that Richard(?) sent out that response to me about Clayton
>> >using mmap() more now in nnrpd to share active?

Sigh.  Well, I said earlier that I hadn't seen that problem on 3.1-STABLE.
Well, I spoke too soon.  I came in today and saw innd locked in an unkillable
wait on vmpfw.  I provoked a crash dump out of the system, and managed to
get the following info out of gdb, if this is helpful to anyone. 
I've still got the corefile around if anyone has suggestions on where to look
further.

P.S. is there any easier way to get process struct addresses out of kgdb other
than to keep doing "p (struct proc 
*)curproc->p_list->le_next->p_list->le_next..."
until you find the process struct you're looking for?

Script started on Fri Jun 11 12:15:26 1999
Warning: imported path contains relative components
skywalker# gdb -k kernel.gdb /var/crash/vmcore.3
GDB is free software and you are welcome to distribute copies of it
 under certain conditions; type "show copying" to see the conditions.
There is absolutely no warranty for GDB; type "show warranty" for details.
GDB 4.16 (i386-unknown-freebsd), 
Copyright 1996 Free Software Foundation, Inc...
IdlePTD 3477504
initial pcb at 2da934
panic messages:
---
---
#0  boot (howto=260) at ../../kern/kern_shutdown.c:285
285                     dumppcb.pcb_cr3 = rcr3();
(kgdb) p *(struct proc *)0xf62e03c0
$1 = {p_procq = {tqe_next = 0x0, tqe_prev = 0xf02dacd4}, p_list = {
    le_next = 0xf62df1e0, le_prev = 0xf62158c8}, p_cred = 0xf1014fc0, 
  p_fd = 0xf0f3ff80, p_stats = 0xf6516214, p_limit = 0xf0cdb200, 
  p_upages_obj = 0xf64527f8, p_procsig = 0xf1014260, p_flag = 5, 
  p_stat = 3 '\003', p_pad1 = "\000\000", p_pid = 87154, p_hash = {
    le_next = 0xf62e2a40, le_prev = 0xf0c589c8}, p_pglist = {
    le_next = 0xf62167e0, le_prev = 0xf1015a68}, p_pptr = 0xf6218e60, 
  p_sibling = {le_next = 0xf62e07e0, le_prev = 0xf6218eb0}, p_children = {
    lh_first = 0xf62167e0}, p_ithandle = {callout = 0xf357d290}, p_oppid = 0, 
  p_dupfd = 0, p_vmspace = 0xf62d8980, p_estcpu = 43, p_cpticks = 0, 
  p_pctcpu = 0, p_wchan = 0xf04dd610, p_wmesg = 0xf02af73a "vmpfw", 
  p_swtime = 24351, p_slptime = 22360, p_realtimer = {it_interval = {
      tv_sec = 0, tv_usec = 0}, it_value = {tv_sec = 0, tv_usec = 0}}, 
  p_runtime = 162720418, p_switchtime = {tv_sec = 571212, tv_usec = 964442}, 
  p_uticks = 17177, p_sticks = 3063, p_iticks = 576, p_traceflag = 0, 
  p_tracep = 0x0, p_siglist = 524544, p_textvp = 0xf6440880, 
  p_lock = 1 '\001', p_oncpu = 0 '\000', p_lastcpu = 0 '\000', 
  p_pad2 = 0 '\000', p_locks = 0, p_simple_locks = 0, p_stops = 0, 
  p_stype = 0, p_step = 0 '\000', p_pfsflags = 0 '\000', p_pad3 = "\000", 
  p_retval = {0, 134813312}, p_sigiolst = {slh_first = 0x0}, p_sigparent = 20, 
  p_oldsigmask = 0, p_sig = 0, p_code = 0, p_sigmask = 0, 
  p_priority = 0 '\000', p_usrpri = 60 '<', p_nice = 0 '\000', 
  p_comm = "innd\000tart\000\000\000\000\000\000\000", p_pgrp = 0xf1015a60, 
---Type <return> to continue, or q <return> to quit---
  p_sysent = 0xf02c4244, p_rtprio = {type = 1, prio = 0}, p_addr = 0xf6516000, 
  p_md = {md_regs = 0xf6517fbc}, p_xstat = 0, p_acflag = 1, p_ru = 0x0, 
  p_nthreads = 0, p_aioinfo = 0x0, p_wakeup = 0, p_peers = 0x0, 
  p_leader = 0xf62e03c0, p_asleep = {as_priority = 0, as_timo = 0}}
(kgdb) proc 0xf62e03c0
(kgdb) bt
#0  mi_switch () at ../../kern/kern_synch.c:830
#1  0xf015e70d in tsleep (ident=0xf04dd610, priority=0, 
    wmesg=0xf02af73a "vmpfw", timo=0) at ../../kern/kern_synch.c:448
#2  0xf021f356 in vm_fault (map=0xf62d8980, vaddr=689999872, 
    fault_type=1 '\001', fault_flags=0) at ../../vm/vm_fault.c:308
#3  0xf0248e76 in trap_pfault (frame=0xf6517fbc, usermode=1, eva=690002184)
    at ../../i386/i386/trap.c:816
#4  0xf02489f6 in trap (frame={tf_es = -272695257, tf_ds = -272695257, 
      tf_edi = 136365588, tf_esi = 136896512, tf_ebp = -272640264, 
      tf_isp = -162431004, tf_ebx = 140668256, tf_edx = 0, tf_ecx = 0, 
      tf_eax = 690002184, tf_trapno = 12, tf_err = 4, tf_eip = 134553715, 
      tf_cs = 31, tf_eflags = 66054, tf_esp = -272641860, tf_ss = 39})
    at ../../i386/i386/trap.c:358
#5  0x8052073 in ?? ()
#6  0x805b282 in ?? ()
#7  0x805c5c4 in ?? ()
#8  0x805ccba in ?? ()
#9  0x8057e00 in ?? ()
#10 0x805ad36 in ?? ()
#11 0x804e521 in ?? ()
(kgdb) fr 2
#2  0xf021f356 in vm_fault (map=0xf62d8980, vaddr=689999872, 
    fault_type=1 '\001', fault_flags=0) at ../../vm/vm_fault.c:308
308                                             tsleep(fs.m, PSWP, "vmpfw", 0);
(kgdb) l
303                                     unlock_things(&fs);
304                                     s = splvm();
305                                     if ((fs.m->flags & PG_BUSY) || 
fs.m->busy) {
306                                             vm_page_flag_set(fs.m, 
PG_WANTED | PG_REFERENCED);
307                                             cnt.v_intrans++;
308                                             tsleep(fs.m, PSWP, "vmpfw", 0);
309                                     }
310                                     splx(s);
311                                     vm_object_deallocate(fs.first_object);
312                                     goto RetryFault;
(kgdb) p fs.m
$2 = (struct vm_page *) 0xf04dd610
(kgdb) p fs.m[0][0]
$3 = {pageq = {tqe_next = 0xf05aca14, tqe_prev = 0xf02d0288}, hashq = {
    tqe_next = 0x0, tqe_prev = 0xf043a940}, listq = {tqe_next = 0x0, 
    tqe_prev = 0xf62d2018}, object = 0xf62d2000, pindex = 81, 
  phys_addr = 48844800, queue = 129, flags = 162, pc = 21, wire_count = 0, 
  hold_count = 0, act_count = 5 '\005', busy = 1 '\001', valid = 255 'ΓΏ', 
  dirty = 0 '\000'}
(kgdb) q
skywalker# 

Script done on Fri Jun 11 12:18:45 1999


To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-current" in the body of the message

Reply via email to