Subject: kern/10182: raidctl -u while partity rewrites panics
To: None <gnats-bugs@gnats.netbsd.org>
From: None <Manuel.Bouyer@asim.lip6.fr>
List: netbsd-bugs
Date: 05/23/2000 08:40:12
>Number:         10182
>Category:       kern
>Synopsis:       raidctl -u while partity rewrites panics
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue May 23 08:41:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     Manuel Bouyer
>Release:        -current as of a few days ago
>Organization:
	LIP6
>Environment:

System: NetBSD disco 1.4Y NetBSD 1.4Y (DS20-siop) #8: Tue May 23 12:23:10 MEST 2000 bouyer@disco:/home/src/sys/arch/alpha/compile/DS20-siop alpha


>Description:
	I have a raid 1 volume, composed of 20 disks:
START array
# numRow numCol numSpare
1 20 0
START disks
/dev/sd10a
/dev/sd30a
/dev/sd40a
/dev/sd20a
/dev/sd31a
/dev/sd11a
/dev/sd21a
/dev/sd41a
/dev/sd12a
/dev/sd32a
/dev/sd42a
/dev/sd22a
/dev/sd33a
/dev/sd13a
/dev/sd23a
/dev/sd43a
/dev/sd14a
/dev/sd34a
/dev/sd44a
/dev/sd24a
START layout
# sectPerSU SUsPerParityUnit SUsPerReconUnit RAID_level
64 1 1 1
START queue
fifo 100

	Parity rewrite is initiated at boot and can take a long time.
	When trying to unconfigure the raid device while the parity
	is being rewritten (raidctl -u) the machine panics with a trap.
	stack trace is:
db> tr
cpu_Debugger() at cpu_Debugger+0x4
panic() at panic+0xec
trap() at trap+0x6b4
XentMM() at XentMM+0x20
--- memory management fault (from ipl 6) ---
rf_DispatchKernelIO() at rf_DispatchKernelIO+0x278
rf_DiskIOEnqueue() at rf_DiskIOEnqueue+0x2d4
rf_DiskReadFuncForThreads() at rf_DiskReadFuncForThreads+0x178
FireNodeList() at FireNodeList+0x2b4
PropagateResults() at PropagateResults+0x6b0
rf_FinishNode() at rf_FinishNode+0x120
rf_NullNodeFunc() at rf_NullNodeFunc+0x24
FireNodeArray() at FireNodeArray+0x2d4
rf_DispatchDAG() at rf_DispatchDAG+0x158
rf_VerifyParityRAID1() at rf_VerifyParityRAID1+0x6a8
rf_VerifyParity() at rf_VerifyParity+0x8c
rf_RewriteParity() at rf_RewriteParity+0xdc
rf_RewriteParityThread() at rf_RewriteParityThread+0x54
esigcode() at esigcode
--- root of call graph ---

	This is annoying as it can happen at reboot time.
	I didn't try with a recontruction instead of parity rewrite,
	maybe the same problem can happen.

>How-To-Repeat:
	raidctl -i raid2
	raidctl -u raid2
>Fix:
	I guess abort the parity rewrite before unconfiguring ?
>Release-Note:
>Audit-Trail:
>Unformatted: