Date: Tue, 1 Feb 2011 21:50:26 +0300 From: Gleb Smirnoff <glebius@FreeBSD.org> To: Eugene Grosbein <egrosbein@rdtc.ru> Cc: freebsd-net@FreeBSD.org, Julian Elischer <julian@FreeBSD.org>, John Baldwin <jhb@FreeBSD.org> Subject: Re: panic: bufwrite: buffer is not busy??? Message-ID: <20110201185026.GB62007@glebius.int.ru> In-Reply-To: <4D48513C.40503@rdtc.ru> References: <4D3011DB.9050900@frasunek.com> <4D30458D.30007@sentex.net> <4D309983.70709@rdtc.ru> <201101141437.55421.jhb@freebsd.org> <4D46575A.802@rdtc.ru> <4D4670C2.4050500@freebsd.org> <4D48513C.40503@rdtc.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Feb 02, 2011 at 12:30:20AM +0600, Eugene Grosbein wrote: E> On 31.01.2011 14:20, Julian Elischer wrote: E> E> > replace with: E> > E> > 3504 if ((hook == NULL) || E> > 3505 NG_HOOK_NOT_VALID(hook) || E> > ((peer = NG_HOOK_PEER(hook)) == NULL) || E> > 3506 NG_HOOK_NOT_VALID(peer) || E> > ((peernode = NG_PEER_NODE(hook)) == NULL) || E> > 3507 NG_NODE_NOT_VALID(peernode)) { E> > if (peer) E> > kassert((peernode != NULL), ("peer node NULL wile peer hook exists")); E> > 3508 NG_FREE_ITEM(item); E> E> This day I have updated panicing router to RELENG_8 and combined changes supposed E> by Julian and Gleb. After 8 hours it has just paniced again and could not finish E> to write crashdump again: E> E> Fatal trap 12: page fault while in kernel mode E> cpuid = 3; apic id = 06 E> fault virtual address = 0x63 E> fault code = supervisor read data, page not present E> instruction pointer = 0x20:0xffffffff803d4ccd E> stack pointer = 0x28:0xffffff80ebffc600 E> frame pointer = 0x28:0xffffff80ebffc680 E> code segment = base 0x0, limit 0xfffff, type 0x1b E> = DPL 0, pres 1, long 1, def32 0, gran 1 E> processor eflags = interrupt enabled, resume, IOPL = 0 E> current process = 2390 (mpd5) E> trap number = 12 E> panic: page fault E> cpuid = 3 E> Uptime: 8h3m51s E> Dumping 4087 MB (3 chunks) E> chunk 0: 1MB (150 pages) ... ok E> chunk 1: 3575MB (915088 pages) 3559 3543panic: bufwrite: buffer is not busy??? E> cpuid = 3 E> Uptime: 8h3m52s E> Automatic reboot in 15 seconds - press a key on the console to abort E> E> # gdb kernel E> GNU gdb 6.1.1 [FreeBSD] E> Copyright 2004 Free Software Foundation, Inc. E> GDB is free software, covered by the GNU General Public License, and you are E> welcome to change it and/or distribute copies of it under certain conditions. E> Type "show copying" to see the conditions. E> There is absolutely no warranty for GDB. Type "show warranty" for details. E> This GDB was configured as "amd64-marcel-freebsd"... E> (gdb) l *0xffffffff803d4ccd E> 0xffffffff803d4ccd is in ng_pppoe_disconnect (netgraph.h:191). E> 186 int line); E> 187 E> 188 static __inline void E> 189 _chkhook(hook_p hook, char *file, int line) E> 190 { E> 191 if (hook->hk_magic != HK_MAGIC) { E> 192 printf("Accessing freed hook "); E> 193 dumphook(hook, file, line); E> 194 } E> 195 hook->lastline = line; E> (gdb) x/i 0xffffffff803d4ccd E> 0xffffffff803d4ccd <ng_pppoe_disconnect+301>: cmpl $0x78573011,0x64(%rbx) This looks like ng_pppoe_disconnect() was called with NULL argument. Can you add KDB_TRACE option to kernel? Your boxes for some reason can't dump core, but with this option we will have at least trace. -- Totus tuus, Glebius.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110201185026.GB62007>