linux-raid.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* mdadm regression tests, slight progress
@ 2016-02-17 22:48 Bruce Dubbs
  2016-02-18 19:20 ` Jes Sorensen
  0 siblings, 1 reply; 3+ messages in thread
From: Bruce Dubbs @ 2016-02-17 22:48 UTC (permalink / raw)
  To: linux-raid

I'm still trying to figure out why some of the mdadm regression tests 
fail.  I started looking at tests/00raid1:

# ./test --tests=00raid1

It is nice that ./test is a bash script so it is easy to do some debugging.

The test script looks like:

# create a simple mirror
# test version0, version1, and no super
# test resync and recovery.

mdadm -CR $md0 -l 1 -n2 $dev0 $dev1
check resync
check raid1
testdev $md0 1 $mdsize1a 64
mdadm -S $md0

# now with version-0.90 superblock, spare
mdadm -CR $md0 -e0.90 --level=raid1 -n3 -x2 $dev0 missing missing $dev1 $dev2
check recovery
check raid1
testdev $md0 1 $mdsize0 64
mdadm -S $md0

# now with no superblock
mdadm -B $md0 -l mirror  -n2 $dev0 $dev1
check resync
check raid1
testdev $md0 1 $size 1
#### Point 1
mdadm -S $md0

# again, but with no resync
mdadm -B $md0 -l 1 --assume-clean -n2 $dev0 $dev1
check raid1
check nosync
testdev $md0 1 $size 1
mdadm -S $md0
exit 0

What I did was add a couple of 'cat /proc/mdstat' commands where the 
script was failing.  At Point 1 above, I got:

++ cat /proc/mdstat
Personalities : [raid1] [raid10] [raid6] [raid5] [raid4] [multipath]
md127 : inactive md0[0](S)
       19904 blocks

md0 : active raid1 loop1[1] loop0[0]
       20000 blocks super non-persistent [2/2] [UU]
       [==>..................]  resync = 12.5% (2688/20000) finish=0.1min 
speed=2688K/sec


The line with resync looked suspicious so at that point I added a 'sleep 
10' command.  The test now passes.

The full log is at 
http://anduin.linuxfromscratch.org/~bdubbs/files/mdadm-test1.log

Does anyone know what is going on to need this sleep in order for this 
test to pass?

   -- Bruce Dubbs

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: mdadm regression tests, slight progress
  2016-02-17 22:48 mdadm regression tests, slight progress Bruce Dubbs
@ 2016-02-18 19:20 ` Jes Sorensen
  2016-02-18 20:20   ` Bruce Dubbs
  0 siblings, 1 reply; 3+ messages in thread
From: Jes Sorensen @ 2016-02-18 19:20 UTC (permalink / raw)
  To: Bruce Dubbs; +Cc: linux-raid

Bruce Dubbs <bruce.dubbs@gmail.com> writes:
> I'm still trying to figure out why some of the mdadm regression tests
> fail.  I started looking at tests/00raid1:
>
> # ./test --tests=00raid1
>
> It is nice that ./test is a bash script so it is easy to do some debugging.
>
> The test script looks like:
>
> # create a simple mirror
> # test version0, version1, and no super
> # test resync and recovery.
>
> mdadm -CR $md0 -l 1 -n2 $dev0 $dev1
> check resync
> check raid1
> testdev $md0 1 $mdsize1a 64
> mdadm -S $md0
>
> # now with version-0.90 superblock, spare
> mdadm -CR $md0 -e0.90 --level=raid1 -n3 -x2 $dev0 missing missing $dev1 $dev2
> check recovery
> check raid1
> testdev $md0 1 $mdsize0 64
> mdadm -S $md0
>
> # now with no superblock
> mdadm -B $md0 -l mirror  -n2 $dev0 $dev1
> check resync
> check raid1
> testdev $md0 1 $size 1
> #### Point 1
> mdadm -S $md0
>
> # again, but with no resync
> mdadm -B $md0 -l 1 --assume-clean -n2 $dev0 $dev1
> check raid1
> check nosync
> testdev $md0 1 $size 1
> mdadm -S $md0
> exit 0
>
> What I did was add a couple of 'cat /proc/mdstat' commands where the
> script was failing.  At Point 1 above, I got:
>
> ++ cat /proc/mdstat
> Personalities : [raid1] [raid10] [raid6] [raid5] [raid4] [multipath]
> md127 : inactive md0[0](S)
>       19904 blocks
>
> md0 : active raid1 loop1[1] loop0[0]
>       20000 blocks super non-persistent [2/2] [UU]
>       [==>..................]  resync = 12.5% (2688/20000)
> finish=0.1min speed=2688K/sec
>
>
> The line with resync looked suspicious so at that point I added a
> 'sleep 10' command.  The test now passes.
>
> The full log is at
> http://anduin.linuxfromscratch.org/~bdubbs/files/mdadm-test1.log
>
> Does anyone know what is going on to need this sleep in order for this
> test to pass?

It sounds to like the thing hangs if you try to stop the array before
the resync completes. That could be a race in the kernel code.

Jes

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: mdadm regression tests, slight progress
  2016-02-18 19:20 ` Jes Sorensen
@ 2016-02-18 20:20   ` Bruce Dubbs
  0 siblings, 0 replies; 3+ messages in thread
From: Bruce Dubbs @ 2016-02-18 20:20 UTC (permalink / raw)
  To: Jes Sorensen; +Cc: linux-raid

Jes Sorensen wrote:

>> What I did was add a couple of 'cat /proc/mdstat' commands where the
>> script was failing.  At Point 1 above, I got:
>>
>> ++ cat /proc/mdstat
>> Personalities : [raid1] [raid10] [raid6] [raid5] [raid4] [multipath]
>> md127 : inactive md0[0](S)
>>        19904 blocks
>>
>> md0 : active raid1 loop1[1] loop0[0]
>>        20000 blocks super non-persistent [2/2] [UU]
>>        [==>..................]  resync = 12.5% (2688/20000)
>> finish=0.1min speed=2688K/sec
>>
>>
>> The line with resync looked suspicious so at that point I added a
>> 'sleep 10' command.  The test now passes.
>>
>> The full log is at
>> http://anduin.linuxfromscratch.org/~bdubbs/files/mdadm-test1.log
>>
>> Does anyone know what is going on to need this sleep in order for this
>> test to pass?
>
> It sounds to like the thing hangs if you try to stop the array before
> the resync completes. That could be a race in the kernel code.

Thanks.  I'll try a different kernel version and report back.  The above 
was tested with kernel version 4.2.0.

   -- Bruce



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2016-02-18 20:20 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-02-17 22:48 mdadm regression tests, slight progress Bruce Dubbs
2016-02-18 19:20 ` Jes Sorensen
2016-02-18 20:20   ` Bruce Dubbs

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).