Subject: kern/10182: raidctl -u while partity rewrites panics
To: None <>
From: None <>
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
>Originator:     Manuel Bouyer
>Release:        -current as of a few days ago

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

	I have a raid 1 volume, composed of 20 disks:
START array
# numRow numCol numSpare
1 20 0
START disks
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.

	raidctl -i raid2
	raidctl -u raid2
	I guess abort the parity rewrite before unconfiguring ?