Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 18 Oct 2003 21:56:49 +0300 (EEST)
From:      Petri Helenius <pete@helenius.fi>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   kern/58228: atacontrol rebuild always panics
Message-ID:  <200310181856.h9IIunCu086509@rms21.rommon.net>
Resent-Message-ID: <200310181900.h9IJ0S7k006350@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         58228
>Category:       kern
>Synopsis:       atacontrol rebuild always panics
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sat Oct 18 12:00:27 PDT 2003
>Closed-Date:
>Last-Modified:
>Originator:     Petri Helenius
>Release:        FreeBSD 5.1-CURRENT i386
>Organization:
>Environment:
System: FreeBSD rms21.rommon.net 5.1-CURRENT FreeBSD 5.1-CURRENT #6: Sat Oct 4 00:50:59 EEST 2003 pete@rms21.rommon.net:/usr/src/sys/i386/compile/ROMMON-SERVER5 i386


	
>Description:
	atacontrol rebuild crashes when it either completes successfully or 
 	fails when rebuilding.
Fatal trap 12: page fault while in kernel mode
fault virtual address   = 0x10
fault code              = supervisor read, page not present
instruction pointer     = 0x8:0xc0163e37
stack pointer           = 0x10:0xd2120ce4
frame pointer           = 0x10:0xd2120d0c
code segment            = base 0x0, limit 0xfffff, type 0x1b
                       = DPL 0, pres 1, def32 1, gran 1
processor eflags        = interrupt enabled, resume, IOPL = 0
current process         = 482 (rebuilding ar0 0%)
kernel: type 12 trap, code=0
Stopped at      ar_rebuild+0x247:       movl    0x10(%eax),%edx
db> trace
ar_rebuild(c25f2000,d2120d48,c03aaf9c,314,0) at ar_rebuild+0x247
fork_exit(c0163bf0,c25f2000,d2120d48) at fork_exit+0xcf
fork_trampoline() at fork_trampoline+0x8
--- trap 0x1, eip = 0, esp = 0xd2120d7c, ebp = 0 ---
db>

This points to the below line in ata-raid.c:
         if (rdp->disks[disk].flags & AR_DF_ONLINE)
               adp = AD_SOFTC(rdp->disks[disk + rdp->width]);
           else
>How-To-Repeat:
	Use atacontrol to detach, attach, addspare and rebuild a mirror or
	raid0+1 set. To make it crash faster, detach while rebuilding.
>Fix:


>Release-Note:
>Audit-Trail:
>Unformatted:
 >>>>>>>>>                adp = AD_SOFTC(rdp->disks[disk]);     <<<<<<<<<<<
            if ((error = ar_rw(adp, rdp->lock_start,
                               size * DEV_BSIZE, buffer, AR_WRITE | AR_WAIT)))
                break;
 
 	
 
 There is also another variation of this panic, which IŽll submit later.
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200310181856.h9IIunCu086509>