Date: Fri, 11 Jun 1999 12:21:50 -0500 From: Richard Michael Todd <rmtodd@mailhost.ecn.ou.edu> To: The Hermit Hacker <scrappy@hub.org> Cc: Richard Michael Todd <rmtodd@mailhost.ecn.ou.edu>, freebsd-current@freebsd.org, freebsd-stable@freebsd.org, inn-workers@isc.org Subject: Re: use of MMAP in new INN code... Message-ID: <m10sV35-000FaDC@independence.ecn.uoknor.edu> In-Reply-To: Your message of "Wed, 09 Jun 1999 14:51:44 -0300." <Pine.BSF.4.05.9906091450270.49155-100000@thelab.hub.org>
next in thread | previous in thread | raw e-mail | index | archive | help
In message <Pine.BSF.4.05.9906091450270.49155-100000@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 majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?m10sV35-000FaDC>
