From owner-freebsd-bugs Mon May 22 16:10:10 2000 Delivered-To: freebsd-bugs@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (Postfix) with ESMTP id CD4BD37B530 for ; Mon, 22 May 2000 16:10:01 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.9.3/8.9.2) id QAA11733; Mon, 22 May 2000 16:10:01 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Date: Mon, 22 May 2000 16:10:01 -0700 (PDT) Message-Id: <200005222310.QAA11733@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org Cc: From: Thomas Faehnle Subject: kern/18754: Vinum: reviving RAID5 volume corrupts data Reply-To: Thomas Faehnle Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org The following reply was made to PR kern/18754; it has been noted by GNATS. From: Thomas Faehnle To: FreeBSD-gnats-submit@freebsd.org Cc: Subject: kern/18754: Vinum: reviving RAID5 volume corrupts data Date: Mon, 22 May 2000 21:20:35 +0200 (CEST) >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/ 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 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message