From: Neil Brown <neilb@suse.de>
To: Peter Rabbitson <rabbit+list@rabbit.us>
Cc: linux-raid@vger.kernel.org
Subject: Re: BUG: possible array corruption when adding a component to a degraded raid5 (possibly other levels too)
Date: Tue, 29 Jan 2008 11:38:00 +1100 [thread overview]
Message-ID: <18334.30056.611260.951887@notabene.brown> (raw)
In-Reply-To: message from Peter Rabbitson on Monday January 28
On Monday January 28, rabbit+list@rabbit.us wrote:
> Hello,
>
> It seems that mdadm/md do not perform proper sanity checks before adding a
> component to a degraded array. If the size of the new component is just right,
> the superblock information will overlap with the data area. This will happen
> without any error indications in the syslog or otherwise.
>
> I came up with a reproducible scenario which I am attaching to this email
> alongside with the entire test script. I have not tested it for other raid
> levels, or other types of superblocks, but I suspect the same problem will
> occur for many other configurations.
>
> I am willing to test patches, however the attached script is non-intrusive
> enough to be executed anywhere.
Thanks for the report and the test script.
This patch for mdadm should fix this problem.... I hate the fact that
we sometimes use K and sometimes use sectors for
sizes/offsets... groan.
I'll probably get a test in the kernel as well to guard against this.
Thanks,
NeilBrown
### Diffstat output
./Manage.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff .prev/Manage.c ./Manage.c
--- .prev/Manage.c 2008-01-29 11:15:54.000000000 +1100
+++ ./Manage.c 2008-01-29 11:16:15.000000000 +1100
@@ -337,7 +337,7 @@ int Manage_subdevs(char *devname, int fd
/* Make sure device is large enough */
if (tst->ss->avail_size(tst, ldsize/512) <
- array.size) {
+ array.size*2) {
fprintf(stderr, Name ": %s not large enough to join array\n",
dv->devname);
return 1;
prev parent reply other threads:[~2008-01-29 0:38 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-28 10:05 BUG: possible array corruption when adding a component to a degraded raid5 (possibly other levels too) Peter Rabbitson
2008-01-28 11:34 ` Neil Brown
2008-01-28 11:54 ` Peter Rabbitson
2008-01-29 0:38 ` Neil Brown [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=18334.30056.611260.951887@notabene.brown \
--to=neilb@suse.de \
--cc=linux-raid@vger.kernel.org \
--cc=rabbit+list@rabbit.us \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).