----- Original Message ----- > From: "Jes Sorensen" <jes.sorensen@xxxxxxxxx> > To: "Xiao Ni" <xni@xxxxxxxxxx>, linux-raid@xxxxxxxxxxxxxxx > Sent: Thursday, February 8, 2018 3:53:15 AM > Subject: Re: [MDADM PATCH] A sanity check for missing device > > On 02/01/2018 10:57 PM, Xiao Ni wrote: > > If we don't check the number of missing devices and create raid device > > with all missing devices, it gives the error message: > > [root@storageqe-15 mdadm]# ./test --tests=00raid1 > > Testing on linux-3.10.0-830.el7.x86_64 kernel > > tests/00raid1... > > ERROR: dmesg prints errors when testing 00raid1! > > > > FAILED - see /var/tmp/00raid1.log and /var/tmp/fail00raid1.log for details > > > > After checking the missing devices number, the test case can pass. And it > > gives a error log in log file: > > ++ /root/mdadm/mdadm --quiet -CR /dev/md0 -l 1 -n2 missing missing > > --auto=yes > > ++ rv=1 > > ++ case in > > ++ cat /var/tmp/stderr > > mdadm: Subdevs can't be all missing > > > > Signed-off-by: Xiao Ni <xni@xxxxxxxxxx> > > --- > > tests/00raid1 | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/tests/00raid1 b/tests/00raid1 > > index c93465d..752bbbf 100644 > > --- a/tests/00raid1 > > +++ b/tests/00raid1 > > @@ -3,6 +3,9 @@ > > # test version0, version1, and no super > > # test resync and recovery. > > > > +# It's just a sanity check. This command shouldn't run successfully > > +mdadm -CR $md0 -l 1 -n2 missing missing > > + > > mdadm -CR $md0 -l 1 -n2 $dev0 $dev1 > > check resync > > check raid1 > > I think we need to test the opposite here - the test shouldn't report an > error in the log, but rather success if this sanity test passes. Hi Jes Is it ok like this: diff --git a/tests/00raid1 b/tests/00raid1 index c93465d..f6b8be1 100644 --- a/tests/00raid1 +++ b/tests/00raid1 @@ -3,6 +3,10 @@ # test version0, version1, and no super # test resync and recovery. +# It's just a sanity check. This command shouldn't run successfully +mdadm -CR $md0 -l 1 -n2 missing missing +check opposite_result + mdadm -CR $md0 -l 1 -n2 $dev0 $dev1 check resync check raid1 diff --git a/tests/func.sh b/tests/func.sh index 40c6026..af08b60 100644 --- a/tests/func.sh +++ b/tests/func.sh @@ -219,6 +219,10 @@ do_setup() { # check various things check() { case $1 in + opposite_result ) + if [ $? -eq 0 ]; then + die "This command shouldn't run successfully" + fi spares ) spares=$(tr '] ' '\012\012' < /proc/mdstat | grep -c '(S)' || exit 0) [ $spares -ne $2 ] && Regards Xiao > > Cheers, > Jes > > > > -- > To unsubscribe from this list: send the line "unsubscribe linux-raid" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html