]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
vstart: run valgrind properly
authorSage Weil <sage@newdream.net>
Sat, 4 Apr 2009 22:01:49 +0000 (15:01 -0700)
committerSage Weil <sage@newdream.net>
Sat, 4 Apr 2009 22:01:49 +0000 (15:01 -0700)
src/vstart.sh

index 0ceca14158cc99f03280b6829cf696a04e126f8a..2ec462600f76fdfbf6a88a51e12fa3cad70756ce 100755 (executable)
@@ -30,37 +30,37 @@ usage_exit() {
 
 while [ $# -ge 1 ]; do
 case $1 in
-       -d | --debug )
-       debug=1
-       ;;
-        -l | --localhost )
-       localhost=1
-       ;;
-       --new | -n )
-       new=1
-       ;;
-       --valgrind )
-       valgrind="--valgrind"
-       ;;
-       mon | cmon )
-       start_mon=1
-       start_all=0
-       ;;
-       mds | cmds )
-       start_mds=1
-       start_all=0
-       ;;
-       osd | cosd )
-       start_osd=1
-       start_all=0
-       ;;
-       -m )
-       [ "$2" == "" ] && usage_exit
-       MON_ADDR=$2
-       shift
-       ;;
-       * )
-       usage_exit
+    -d | --debug )
+           debug=1
+           ;;
+    -l | --localhost )
+           localhost=1
+           ;;
+    --new | -n )
+           new=1
+           ;;
+    --valgrind )
+           valgrind=1
+           ;;
+    mon | cmon )
+           start_mon=1
+           start_all=0
+           ;;
+    mds | cmds )
+           start_mds=1
+           start_all=0
+           ;;
+    osd | cosd )
+           start_osd=1
+           start_all=0
+           ;;
+    -m )
+           [ "$2" == "" ] && usage_exit
+           MON_ADDR=$2
+           shift
+           ;;
+    * )
+           usage_exit
 esac
 shift
 done
@@ -73,6 +73,17 @@ fi
 
 ARGS="-c $conf"
 
+run() {
+    if [ "$valgrind" -eq 1 ]; then
+       echo "valgrind $* -f &"
+       valgrind $* -f &
+       sleep 1
+    else
+       echo "$*"
+       $*
+    fi
+}
+
 if [ $debug -eq 0 ]; then
        CMON_ARGS="--debug_mon 10 --debug_ms 1"
        COSD_ARGS=""
@@ -181,8 +192,7 @@ EOF
        # start monitors
        if [ $start_mon -ne 0 ]; then
                for f in `seq 0 $((CEPH_NUM_MON-1))`; do
-                   echo $valgrind $CEPH_BIN/cmon -i $f $ARGS $CMON_ARGS 
-                   $valgrind $CEPH_BIN/cmon -i $f $ARGS $CMON_ARGS 
+                   run $CEPH_BIN/cmon -i $f $ARGS $CMON_ARGS
                done
                sleep 1
        fi
@@ -202,8 +212,7 @@ EOF
            $SUDO $CEPH_BIN/cosd -i $osd $ARGS --mkfs # --debug_journal 20 --debug_osd 20 --debug_filestore 20 --debug_ebofs 20
        fi
        echo start osd$osd
-       echo $valgrind $SUDO $CEPH_BIN/cosd -i $osd $ARGS $COSD_ARGS
-       $valgrind $SUDO $CEPH_BIN/cosd -i $osd $ARGS $COSD_ARGS
+       run $SUDO $CEPH_BIN/cosd -i $osd $ARGS $COSD_ARGS
     done
 fi
 
@@ -218,8 +227,7 @@ if [ $start_mds -eq 1 ]; then
 EOF
        fi
        
-       echo $valgrind $CEPH_BIN/cmds -i $name $ARGS $CMDS_ARGS
-       $valgrind $CEPH_BIN/cmds -i $name $ARGS $CMDS_ARGS
+       run $CEPH_BIN/cmds -i $name $ARGS $CMDS_ARGS
        
        mds=$(($mds + 1))
        [ $mds -eq $CEPH_NUM_MDS ] && break