Date: Mon, 22 May 2000 21:20:35 +0200 (CEST) From: Thomas Faehnle <tf@wurbl.wn.bawue.de> To: FreeBSD-gnats-submit@freebsd.org Subject: kern/18754: Vinum: reviving RAID5 volume corrupts data Message-ID: <E12txqN-0002EB-00@wurbl.bk.int>
next in thread | raw e-mail | index | archive | help
>Number: 18754 >Category: kern >Synopsis: Vinum: reviving RAID5 volume corrupts data >Confidential: no >Severity: critical >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Mon May 22 13:10:03 PDT 2000 >Closed-Date: >Last-Modified: >Originator: Thomas Faehnle >Release: FreeBSD 4.0-STABLE i386 >Organization: Multisys GbR >Environment: 4.0-STABLE, tracked up to CTM patch src-4.0077 >Description: Reviving a subdisk that is part of a RAID5 volume and simultaneously accessing said volume leads to data corruption. This occurs no matter whether the volume is accessed via a filesystem or via the raw /dev/vinum/<whatever> device. >How-To-Repeat: Given the following vinum configuration ,-------------------- | vinum -> l | 3 drives: | D d0 State: up Device /dev/da0s2e | Avail: 15439/15539 MB (99%) | D d1 State: up Device /dev/da1s2e | Avail: 15439/15539 MB (99%) | D d2 State: up Device /dev/da2s2e | Avail: 15439/15539 MB (99%) | 1 volumes: | V raid State: up Plexes: 1 Size: 200 MB | | 1 plexes: | P raid.p0 R5 State: up Subdisks: 3 Size: 200 MB | | 3 subdisks: | S raid.p0.s0 State: up PO: 0 B Size: 100 MB | S raid.p0.s1 State: up PO: 512 kB Size: 100 MB | S raid.p0.s2 State: up PO: 1024 kB Size: 100 MB `-------------------- Create a filesystem on the vinum volume: ,-------------------- | bunsen:~# newfs -v /dev/vinum/raid | /dev/vinum/raid: 409600 sectors in 100 cylinders of 1 tracks, 4096 sectors | 200.0MB in 7 cyl groups (16 c/g, 32.00MB/g, 7168 i/g) | super-block backups (for fsck -b #) at: | 32, 65568, 131104, 196640, 262176, 327712, 393248 `-------------------- In another shell, arrange for one subdisk to get revived (while the newfs above is still running): ,-------------------- | vinum -> stop -f raid.p0.s0 | vinum -> start raid.p0.s0 | Reviving raid.p0.s0 in the background | vinum[335]: reviving raid.p0.s0 | vinum -> ls | S raid.p0.s0 State: R 66% PO: 0 B Size: 100 MB | S raid.p0.s1 State: up PO: 512 kB Size: 100 MB | S raid.p0.s2 State: up PO: 1024 kB Size: 100 MB `-------------------- fsck the volume: ,-------------------- | bunsen:~# fsck /dev/vinum/raid | ** /dev/vinum/raid | BAD SUPER BLOCK: VALUES IN SUPER BLOCK DISAGREE WITH THOSE IN FIRST ALTERNATE | /dev/vinum/raid: NOT LABELED AS A BSD FILE SYSTEM (unused) `-------------------- >Fix: >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E12txqN-0002EB-00>