mdadm regression tests, slight progress

From
Bruce Dubbs <hidden>
Date
2016-02-17 22:48:04
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
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help