[OE-core] [PATCH] mdadm: fix ptest hang

mingli.yu at windriver.com mingli.yu at windriver.com
Mon Jul 15 08:16:22 UTC 2019


From: Mingli Yu <Mingli.Yu at windriver.com>

Before commit[80d17497b7 mdadm: improve the run-ptest],
the mdadm ptest just run some tests without
"--keep-going" option. After the option added in
commit 80d17497b7, all test cases have chance to
be called.

But the logic in mdadm upstream commit
[e2a8e9d tests: wait for complete rebuild in integrity checks]
will make the test enter infinite loop especially in
qemu env as commit e2a8e9d update the logic from
"check wait" to "check state 'U*'" for testcase
tests/01r5integ and tests/01raid6integ. Considering all
other cases still use "check wait" logic, so revert e2a8e9d
to make tests/01r5integ and tests/01raid6integ also use
"check wait" logic to avoid the infinite loop.

[YOCTO #13368]

Signed-off-by: Mingli Yu <Mingli.Yu at windriver.com>
---
 ...s-wait-for-complete-rebuild-in-integrity-.patch | 52 ++++++++++++++++++++++
 meta/recipes-extended/mdadm/mdadm_4.1.bb           |  1 +
 2 files changed, 53 insertions(+)
 create mode 100644 meta/recipes-extended/mdadm/files/0001-Revert-tests-wait-for-complete-rebuild-in-integrity-.patch

diff --git a/meta/recipes-extended/mdadm/files/0001-Revert-tests-wait-for-complete-rebuild-in-integrity-.patch b/meta/recipes-extended/mdadm/files/0001-Revert-tests-wait-for-complete-rebuild-in-integrity-.patch
new file mode 100644
index 0000000..8801fef
--- /dev/null
+++ b/meta/recipes-extended/mdadm/files/0001-Revert-tests-wait-for-complete-rebuild-in-integrity-.patch
@@ -0,0 +1,52 @@
+From 02a41c3fd560fb5250186dd6b3cff6b21daa2e2b Mon Sep 17 00:00:00 2001
+From: Mingli Yu <Mingli.Yu at windriver.com>
+Date: Mon, 15 Jul 2019 14:12:24 +0800
+Subject: [PATCH] Revert "tests: wait for complete rebuild in integrity checks"
+
+This reverts commit e2a8e9dcf67a28bc722fa5ab2c49b0bc452d4d74
+as the logic "check state 'U*'" will make the test enters
+infinite loop especially in qemu env, so revert it to
+use the previous logic "check wait" which also used
+commonly by other tests such as tests/02r5grow, tests/07revert-grow
+and etc.
+
+Upstream-Status: Submitted[https://marc.info/?l=linux-raid&m=156317157314030&w=2]
+
+---
+ tests/01r5integ    | 2 +-
+ tests/01raid6integ | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/tests/01r5integ b/tests/01r5integ
+index 48676a2..ffb30ce 100644
+--- a/tests/01r5integ
++++ b/tests/01r5integ
+@@ -27,7 +27,7 @@ do
+      exit 1
+     fi
+     mdadm $md0 -a $i
+-    while ! (check state 'U*'); do check wait; sleep 0.2; done
++   check wait
+   done
+   mdadm -S $md0
+ done
+diff --git a/tests/01raid6integ b/tests/01raid6integ
+index 12f4d81..c6fcdae 100644
+--- a/tests/01raid6integ
++++ b/tests/01raid6integ
+@@ -47,10 +47,10 @@ do
+          exit 1
+        fi
+        mdadm $md0 -a $first
+-       while ! (check state 'U*_U*'); do check wait; sleep 0.2; done
++       check wait
+     done
+     mdadm $md0 -a $second
+-    while ! (check state 'U*'); do check wait; sleep 0.2; done
++    check wait
+     totest="$totest $second"
+   done
+   mdadm -S $md0
+-- 
+2.7.4
+
diff --git a/meta/recipes-extended/mdadm/mdadm_4.1.bb b/meta/recipes-extended/mdadm/mdadm_4.1.bb
index 766004f..5df3f90 100644
--- a/meta/recipes-extended/mdadm/mdadm_4.1.bb
+++ b/meta/recipes-extended/mdadm/mdadm_4.1.bb
@@ -18,6 +18,7 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/utils/raid/mdadm/${BPN}-${PV}.tar.xz \
            file://0001-Compute-abs-diff-in-a-standard-compliant-way.patch \
            file://0001-fix-gcc-8-format-truncation-warning.patch \
            file://debian-no-Werror.patch \
+           file://0001-Revert-tests-wait-for-complete-rebuild-in-integrity-.patch \
 	   file://mdadm.init \
 	   file://0001-mdadm-add-option-y-for-use-syslog-to-recive-event-re.patch \
            "
-- 
2.7.4



More information about the Openembedded-core mailing list