public inbox for ltp@lists.linux.it
 help / color / mirror / Atom feed
From: Jan Stancek <jstancek@redhat.com>
To: ltp-list@lists.sourceforge.net
Subject: [LTP] [PATCH] cgroups/cgroup_regression_test: fix sporadic failures
Date: Tue, 19 Apr 2011 09:27:49 -0400 (EDT)	[thread overview]
Message-ID: <2122052384.29161.1303219669187.JavaMail.root@zmail06.collab.prod.int.phx2.redhat.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 1383 bytes --]


There were failures caused by incomplete cleanup,
leaving groups behind after some stress tests.
Some stress tests failed to complete upon receiving SIGUSR1.

1. dmesg can rotate and number of found bugs can actually go down
clear the buffer before test to avoid this

2. test_5: test should mount 2 subsystems, but mount command
says "$subsys" instead of "$subsys2"

3. test_6: test may leave groups behind, fix rmdir
to match test_6_1.sh

4. test_7_2: mounts whole cgroup not $subsys

5. test_10: can leave cgroups umounted before cleanup
make sure cgroups are mounted before doing cleanup

6. test_*.sh scripts use trap in loop, which may cause bash
to miss signal, see https://bugzilla.redhat.com/show_bug.cgi?id=695656
move trap outside loop to avoid it

Signed-off-by: Jan Stancek <jstancek@redhat.com>
---
 .../controllers/cgroup/cgroup_regression_test.sh   |   15 ++++++++++-----
 testcases/kernel/controllers/cgroup/test_10_1.sh   |    3 +--
 testcases/kernel/controllers/cgroup/test_10_2.sh   |    3 +--
 testcases/kernel/controllers/cgroup/test_3_1.sh    |    3 +--
 testcases/kernel/controllers/cgroup/test_3_2.sh    |    3 +--
 testcases/kernel/controllers/cgroup/test_6_1.sh    |    3 +--
 testcases/kernel/controllers/cgroup/test_9_1.sh    |    3 +--
 testcases/kernel/controllers/cgroup/test_9_2.sh    |    3 +--
 8 files changed, 17 insertions(+), 19 deletions(-)


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-cgroups-cgroup_regression_test-fix-sporadic-failures.patch --]
[-- Type: text/x-patch; name=0001-cgroups-cgroup_regression_test-fix-sporadic-failures.patch, Size: 6223 bytes --]

diff --git a/testcases/kernel/controllers/cgroup/cgroup_regression_test.sh b/testcases/kernel/controllers/cgroup/cgroup_regression_test.sh
index 5527afc..6c74b92 100755
--- a/testcases/kernel/controllers/cgroup/cgroup_regression_test.sh
+++ b/testcases/kernel/controllers/cgroup/cgroup_regression_test.sh
@@ -40,6 +40,7 @@ elif [ "x$(id -ru)" != x0 ]; then
 	exit 0
 fi
 
+dmesg -c > /dev/null
 nr_bug=`dmesg | grep -c "kernel BUG"`
 nr_null=`dmesg | grep -c "kernel NULL pointer dereference"`
 nr_warning=`dmesg | grep -c "^WARNING"`
@@ -78,6 +79,8 @@ check_kernel_bug()
 	nr_warning=$new_warning
 	nr_lockdep=$new_lockdep
 
+	echo "check_kernel_bug found something!"
+	dmesg
 	failed=1
 	return 0
 }
@@ -254,7 +257,7 @@ test_5()
 	subsys1=`tail -n 1 /proc/cgroups | awk '{ print $1 }'`
 	subsys2=`tail -n 2 /proc/cgroups | head -1 | awk '{ print $1 }'`
 
-	mount -t cgroup -o $subsys1,$subsys xxx cgroup/
+	mount -t cgroup -o $subsys1,$subsys2 xxx cgroup/
 	if [ $? -ne 0 ]; then
 		tst_resm TFAIL "mount $subsys1 and $subsys2 failed"
 		failed=1
@@ -325,7 +328,7 @@ test_6()
 
 	# clean up
 	mount -t cgroup -o ns xxx cgroup/ > /dev/null 2>&1
-	rmdir cgroup/[1-9] > /dev/null 2>&1
+	rmdir cgroup/[1-9]* > /dev/null 2>&1
 	umount cgroup/
 }
 
@@ -362,7 +365,7 @@ test_7_2()
 {
 	mount -t cgroup xxx cgroup/
 	if [ $? -ne 0 ]; then
-		tst_resm TFAIL "failed to mount $subsys"
+		tst_resm TFAIL "failed to mount cgroup"
 		failed=1
 		return
 	fi
@@ -499,8 +502,9 @@ test_10()
 	wait $pid1
 	wait $pid2
 
-	rmdir cgroup/0 2> /dev/null
-	umount cgroup/ 2> /dev/null
+	mount -t cgroup none cgroup 2> /dev/null
+	rmdir cgroup/0
+	umount cgroup/
 
 	check_kernel_bug
 	if [ $? -eq 1 ]; then
@@ -510,6 +514,7 @@ test_10()
 
 # main
 
+failed=0
 mkdir cgroup/
 
 for ((cur = 1; cur <= $TST_TOTAL; cur++))
diff --git a/testcases/kernel/controllers/cgroup/test_10_1.sh b/testcases/kernel/controllers/cgroup/test_10_1.sh
index 6284722..ffa0d5f 100755
--- a/testcases/kernel/controllers/cgroup/test_10_1.sh
+++ b/testcases/kernel/controllers/cgroup/test_10_1.sh
@@ -22,13 +22,12 @@
 ##                                                                            ##
 ################################################################################
 
+trap exit SIGUSR1
 for ((; ;))
 {
 	mount -t cgroup xxx cgroup/ > /dev/null 2>&1
 	mkdir cgroup/0 > /dev/null 2>&1
 	rmdir cgroup/0 > /dev/null 2>&1
 	umount cgroup/ > /dev/null 2>&1
-
-	trap exit SIGUSR1
 }
 
diff --git a/testcases/kernel/controllers/cgroup/test_10_2.sh b/testcases/kernel/controllers/cgroup/test_10_2.sh
index 82b91e3..f811bbd 100755
--- a/testcases/kernel/controllers/cgroup/test_10_2.sh
+++ b/testcases/kernel/controllers/cgroup/test_10_2.sh
@@ -22,11 +22,10 @@
 ##                                                                            ##
 ################################################################################
 
+trap exit SIGUSR1
 for ((; ;))
 {
 	mount -t cgroup xxx cgroup/ > /dev/null 2>&1
 	umount cgroup/ > /dev/null 2>&1
-
-	trap exit SIGUSR1
 }
 
diff --git a/testcases/kernel/controllers/cgroup/test_3_1.sh b/testcases/kernel/controllers/cgroup/test_3_1.sh
index 86627d4..507a2c4 100755
--- a/testcases/kernel/controllers/cgroup/test_3_1.sh
+++ b/testcases/kernel/controllers/cgroup/test_3_1.sh
@@ -22,11 +22,10 @@
 ##                                                                            ##
 ################################################################################
 
+trap exit SIGUSR1
 for ((; ;))
 {
 	mkdir cgroup/0
 	rmdir cgroup/0
-
-	trap exit SIGUSR1
 }
 
diff --git a/testcases/kernel/controllers/cgroup/test_3_2.sh b/testcases/kernel/controllers/cgroup/test_3_2.sh
index c942969..9f83d9d 100755
--- a/testcases/kernel/controllers/cgroup/test_3_2.sh
+++ b/testcases/kernel/controllers/cgroup/test_3_2.sh
@@ -22,10 +22,9 @@
 ##                                                                            ##
 ################################################################################
 
+trap exit SIGUSR1
 for ((; ;))
 {
 	cat /proc/sched_debug > /dev/null
-
-	trap exit SIGUSR1
 }
 
diff --git a/testcases/kernel/controllers/cgroup/test_6_1.sh b/testcases/kernel/controllers/cgroup/test_6_1.sh
index ff70677..e91e794 100755
--- a/testcases/kernel/controllers/cgroup/test_6_1.sh
+++ b/testcases/kernel/controllers/cgroup/test_6_1.sh
@@ -22,12 +22,11 @@
 ##                                                                            ##
 ################################################################################
 
+trap exit SIGUSR1
 for ((; ;))
 {
 	mount -t cgroup -o ns xxx cgroup/ > /dev/null 2>&1
 	rmdir cgroup/[1-9]* > /dev/null 2>&1
 	umount cgroup/ > /dev/null 2>&1
-
-	trap exit SIGUSR1
 }
 
diff --git a/testcases/kernel/controllers/cgroup/test_9_1.sh b/testcases/kernel/controllers/cgroup/test_9_1.sh
index 24a1524..c6e8f6f 100755
--- a/testcases/kernel/controllers/cgroup/test_9_1.sh
+++ b/testcases/kernel/controllers/cgroup/test_9_1.sh
@@ -22,13 +22,12 @@
 ##                                                                            ##
 ################################################################################
 
+trap exit SIGUSR1
 for ((; ;))
 {
 #	mount -t cgroup -o debug xxx cgroup/ > /dev/null 2>&1
 	mount -t cgroup xxx cgroup/ > /dev/null 2>&1
 	cat cgroup/release_agent > /dev/null 2>&1
 	umount cgroup/ > /dev/null 2>&1
-
-	trap exit SIGUSR1
 }
 
diff --git a/testcases/kernel/controllers/cgroup/test_9_2.sh b/testcases/kernel/controllers/cgroup/test_9_2.sh
index 654df4d..f8e1c61 100755
--- a/testcases/kernel/controllers/cgroup/test_9_2.sh
+++ b/testcases/kernel/controllers/cgroup/test_9_2.sh
@@ -22,12 +22,11 @@
 ##                                                                            ##
 ################################################################################
 
+trap exit SIGUSR1
 for ((; ;))
 {
 #	mount -t cgroup -o debug xxx cgroup/ > /dev/null 2>&1
 	mount -t cgroup xxx cgroup/ > /dev/null 2>&1
 	umount cgroup/ > /dev/null 2>&1
-
-	trap exit SIGUSR1
 }
 

[-- Attachment #3: Type: text/plain, Size: 438 bytes --]

------------------------------------------------------------------------------
Benefiting from Server Virtualization: Beyond Initial Workload 
Consolidation -- Increasing the use of server virtualization is a top
priority.Virtualization can reduce costs, simplify management, and improve 
application availability and disaster protection. Learn more about boosting 
the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev

[-- Attachment #4: Type: text/plain, Size: 155 bytes --]

_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

             reply	other threads:[~2011-04-19 13:27 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-19 13:27 Jan Stancek [this message]
2011-04-19 16:13 ` [LTP] [PATCH] cgroups/cgroup_regression_test: fix sporadic failures Garrett Cooper
2011-04-19 16:31   ` Jan Stancek
2011-04-19 17:40     ` Garrett Cooper
2011-04-19 18:00       ` Jan Stancek
2011-04-19 22:04         ` Garrett Cooper
2011-04-20  6:11           ` Garrett Cooper

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=2122052384.29161.1303219669187.JavaMail.root@zmail06.collab.prod.int.phx2.redhat.com \
    --to=jstancek@redhat.com \
    --cc=ltp-list@lists.sourceforge.net \
    /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