From owner-freebsd-geom@FreeBSD.ORG Tue Sep 23 14:01:08 2008 Return-Path: Delivered-To: freebsd-geom@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4BF2E1065671 for ; Tue, 23 Sep 2008 14:01:08 +0000 (UTC) (envelope-from os@rsu.ru) Received: from mail.r61.net (mail.r61.net [195.208.245.249]) by mx1.freebsd.org (Postfix) with ESMTP id CDABA8FC0A for ; Tue, 23 Sep 2008 14:01:07 +0000 (UTC) (envelope-from os@rsu.ru) Received: from [195.208.252.154] (brain.cc.rsu.ru [195.208.252.154]) (authenticated bits=0) by mail.r61.net (8.14.1/8.14.1) with ESMTP id m8NDZWIK006592 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT) for ; Tue, 23 Sep 2008 17:35:32 +0400 (MSD) (envelope-from os@rsu.ru) From: Oleg Sharoiko To: freebsd-geom@freebsd.org Content-Type: text/plain Date: Tue, 23 Sep 2008 17:35:32 +0400 Message-Id: <1222176932.22343.54.camel@brain.cc.rsu.ru> Mime-Version: 1.0 X-Mailer: Evolution 2.22.3.1 FreeBSD GNOME Team Port Content-Transfer-Encoding: 7bit Subject: Kernel panic with gmultipath X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Sep 2008 14:01:08 -0000 Hi! I'm getting reproducable panics with geom_multipath. As soon as active provider has been removed from system any I/O activity on consumer will trigger kernel panic. I'll continue debugging this problem and I'll greatly appreciate any help with it, because my knowledge of GEOM subsystem are somewhat limited. Fatal trap 12: page fault while in kernel mode fault virtual address = 0x0 fault code = supervisor read data, page not present instruction pointer = 0x8:0xffffffff801f8006 stack pointer = 0x10:0xffffffffabe63bc0 frame pointer = 0x10:0xffffff000342f680 code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, long 1, def32 0, gran 1 processor eflags = interrupt enabled, resume, IOPL = 0 current process = 4 (g_down) trap number = 12 panic: page fault (kgdb) bt #0 doadump () at pcpu.h:194 #1 0x0000000000000004 in ?? () #2 0xffffffff80235d18 in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:409 #3 0xffffffff80236150 in panic (fmt=Variable "fmt" is not available. ) at /usr/src/sys/kern/kern_shutdown.c:563 #4 0xffffffff80397284 in trap_fatal (frame=0xc, eva=Variable "eva" is not available.) at /usr/src/sys/amd64/amd64/trap.c:724 #5 0xffffffff80397665 in trap_pfault (frame=0xffffffffabe63b10, usermode=0) at /usr/src/sys/amd64/amd64/trap.c:641 #6 0xffffffff80397f44 in trap (frame=0xffffffffabe63b10) at /usr/src/sys/amd64/amd64/trap.c:410 #7 0xffffffff80380dee in calltrap () at /usr/src/sys/amd64/amd64/exception.S:169 #8 0xffffffff801f8006 in g_io_request (bp=0xffffff0003d3c1b0, cp=0xffffff000342f680) at /usr/src/sys/geom/geom_io.c:364 #9 0xffffffff801f892d in g_io_schedule_down (tp=Variable "tp" is not available. ) at /usr/src/sys/geom/geom_io.c:540 #10 0xffffffff801f8d38 in g_down_procbody () at /usr/src/sys/geom/geom_kern.c:118 #11 0xffffffff8021a663 in fork_exit ( callout=0xffffffff801f8ce0 , arg=0x0, frame=0xffffffffabe63c80) at /usr/src/sys/kern/kern_fork.c:781 #12 0xffffffff803811be in fork_trampoline () ---Type to continue, or q to quit--- at /usr/src/sys/amd64/amd64/exception.S:415 #13 0x0000000000000000 in ?? () #14 0x0000000000000000 in ?? () #15 0x0000000000000001 in ?? () (kgdb) list *0xffffffff801f8006 0xffffffff801f8006 is in g_io_request (/usr/src/sys/geom/geom_io.c:364). 359 KASSERT(bp->bio_length % cp->provider->sectorsize == 0, 360 ("wrong length %jd for sectorsize %u", 361 bp->bio_length, cp->provider->sectorsize)); 362 } 363 364 g_trace(G_T_BIO, "bio_request(%p) from %p(%s) to %p(%s) cmd %d", 365 bp, cp, cp->geom->name, pp, pp->name, bp->bio_cmd); 366 367 bp->bio_from = cp; 368 bp->bio_to = pp; (kgdb) frame 8 #8 0xffffffff801f8006 in g_io_request (bp=0xffffff0003d3c1b0, cp=0xffffff000342f680) at /usr/src/sys/geom/geom_io.c:364 364 g_trace(G_T_BIO, "bio_request(%p) from %p(%s) to %p(%s) cmd %d", (kgdb) print pp $1 = (struct g_provider *) 0x0 (kgdb) print *cp $2 = {geom = 0xffffff000367a300, consumer = {le_next = 0x0, le_prev = 0xffffff0003ddf008}, provider = 0x0, consumers = {le_next = 0x0, le_prev = 0xffffff000342f720}, acr = 0, acw = 0, ace = 0, spoiled = 0, stat = 0xffffff00033b4d80, nstart = 24279, nend = 24279, private = 0xffffff000342f600, index = 2} -- Oleg Sharoiko. Software and Network Engineer Computer Center of Rostov State University.