From owner-freebsd-net@FreeBSD.ORG Tue Feb 1 18:50:28 2011 Return-Path: Delivered-To: freebsd-net@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CCAB8106564A; Tue, 1 Feb 2011 18:50:28 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebius.int.ru (glebius.int.ru [81.19.64.117]) by mx1.freebsd.org (Postfix) with ESMTP id 2FB2B8FC1A; Tue, 1 Feb 2011 18:50:27 +0000 (UTC) Received: from cell.glebius.int.ru (localhost [127.0.0.1]) by cell.glebius.int.ru (8.14.4/8.14.4) with ESMTP id p11IoQh0030398; Tue, 1 Feb 2011 21:50:26 +0300 (MSK) (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by cell.glebius.int.ru (8.14.4/8.14.4/Submit) id p11IoQbj030397; Tue, 1 Feb 2011 21:50:26 +0300 (MSK) (envelope-from glebius@FreeBSD.org) X-Authentication-Warning: cell.glebius.int.ru: glebius set sender to glebius@FreeBSD.org using -f Date: Tue, 1 Feb 2011 21:50:26 +0300 From: Gleb Smirnoff To: Eugene Grosbein Message-ID: <20110201185026.GB62007@glebius.int.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> MIME-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline In-Reply-To: <4D48513C.40503@rdtc.ru> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: freebsd-net@FreeBSD.org, Julian Elischer , John Baldwin Subject: Re: panic: bufwrite: buffer is not busy??? X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Feb 2011 18:50:29 -0000 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 : 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.