From owner-freebsd-bugs Mon May 22 13:10: 8 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 3EEAB37BC1C for ; Mon, 22 May 2000 13:10:03 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.9.3/8.9.2) id NAA91956; Mon, 22 May 2000 13:10:03 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: from nadia.s.bawue.de (nadia.s.bawue.de [193.197.11.52]) by hub.freebsd.org (Postfix) with ESMTP id DB4E437BC3A for ; Mon, 22 May 2000 13:09:09 -0700 (PDT) (envelope-from tf@wurbl.wn.bawue.de) Received: from wurbl.wn.bawue.de (uucp@localhost) by nadia.s.bawue.de (8.9.3/8.9.3) with UUCP id WAA26466 for freebsd.org!FreeBSD-gnats-submit; Mon, 22 May 2000 22:09:08 +0200 (CEST) Received: from uucp (helo=prian.bk.int) by wurbl.bk.int with local-esmtp (Exim 3.03 #1) id 12txqN-0002EB-00 for FreeBSD-gnats-submit@freebsd.org; Mon, 22 May 2000 21:26:28 +0200 Message-Id: Date: Mon, 22 May 2000 21:20:35 +0200 (CEST) From: Thomas Faehnle To: FreeBSD-gnats-submit@freebsd.org Subject: kern/18754: Vinum: reviving RAID5 volume corrupts data Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org >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