]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: Create all_osds_die test
authorColin Patrick McCabe <cmccabe@alumni.cmu.edu>
Wed, 5 Jan 2011 00:37:37 +0000 (16:37 -0800)
committerColin Patrick McCabe <cmccabe@alumni.cmu.edu>
Thu, 6 Jan 2011 23:44:23 +0000 (15:44 -0800)
Signed-off-by: Colin McCabe <colinm@hq.newdream.net>
src/test/test_common.sh
src/test/test_lost.sh

index 5aaf0439e54c3a880b0d80913699584c668877f3..1d7de583a46d43e39078863ac4cbdeecb090d8a9 100755 (executable)
@@ -108,7 +108,7 @@ poll_cmd() {
 
         t=0
         while [ $t -lt $total_time ]; do
-                $command | grep $search_str
+                $command | grep "$search_str"
                 [ $? -eq 0 ] && return 1
                 sleep $polling_interval
                 t=$(($t+$polling_interval))
index 1998ee4c9e0243c755f9ed3e634901ceccc6ebbf..77d25126bb58dab9d2a9099f7c53cc061b1e9a67 100755 (executable)
@@ -10,12 +10,13 @@ source "`dirname $0`/test_common.sh"
 # Functions
 setup() {
         export CEPH_NUM_OSD=$1
+        vstart_config=$2
 
         # Start ceph
         ./stop.sh
 
         # set recovery start to a really long time to ensure that we don't start recovery
-        ./vstart.sh -d -n -o 'osd recovery delay start = 10000' || die "vstart failed"
+        ./vstart.sh -d -n -o "$vstart_config" || die "vstart failed"
 }
 
 recovery1_impl() {
@@ -57,7 +58,7 @@ recovery1_impl() {
 }
 
 recovery1() {
-        setup 2
+        setup 2 'osd recovery delay start = 10000'
         recovery1_impl
 }
 
@@ -118,21 +119,44 @@ radostool instance to finish"
 }
 
 lost1() {
-        setup 2
+        setup 2 'osd recovery delay start = 10000'
         lost1_impl 0
 }
 
 lost2() {
-        setup 2
+        setup 2 'osd recovery delay start = 10000'
         lost1_impl 1
 }
 
+all_osds_die_impl() {
+        poll_cmd "./ceph osd stat -o -" '3 up, 3 in' 20 240
+        [ $? -eq 1 ] || die "didn't start 3 osds"
+
+        stop_osd 0
+        stop_osd 1
+        stop_osd 2
+
+       # wait for the MOSDPGStat timeout
+        poll_cmd "./ceph osd stat -o -" '0 up' 20 240
+        [ $? -eq 1 ] || die "all osds weren't marked as down"
+}
+
+all_osds_die() {
+       setup 3 'osd mon report interval max = 60
+       osd mon report interval min = 3
+       mon osd report timeout = 60'
+
+       all_osds_die_impl
+}
+
 run() {
         recovery1 || die "test failed"
 
         lost1 || die "test failed"
 
         lost2 || die "test failed"
+
+        all_osds_die || die "test failed"
 }
 
 $@