From 22ac7241b2f8c1bb3db2678b8b6b9a364f14876c Mon Sep 17 00:00:00 2001 From: Gaurav Kumar Garg Date: Wed, 2 Mar 2016 17:42:07 +0530 Subject: glusterd: Gluster should keep PID file in correct location Currently Gluster keeps process pid information of all the daemons and brick processes in Gluster configuration file directory (ie., /var/lib/glusterd/*). These pid files should be seperate from configuration files. Deletion of the configuration file directory might result into serious problems. Also, /var/run/gluster is the default placeholder directory for pid files. So, with this fix Gluster will keep all process pid information of all processes in /var/run/gluster/* directory. > BUG: 1258561 > Signed-off-by: Gaurav Kumar Garg > Signed-off-by: Saravanakumar Arumugam > Reviewed-on: https://review.gluster.org/13580 > Tested-by: MOHIT AGRAWAL > Smoke: Gluster Build System > CentOS-regression: Gluster Build System > Reviewed-by: Atin Mukherjee > cherry pick from commit 220d406ad13d840e950eef001a2b36f87570058d BUG: 1480459 Change-Id: Idb09e3fccb6a7355fbac1df31082637c8d7ab5b4 Signed-off-by: Mohit Agrawal Reviewed-on: https://review.gluster.org/18023 Reviewed-by: Atin Mukherjee Smoke: Gluster Build System CentOS-regression: Gluster Build System --- tests/basic/mount-nfs-auth.t | 2 +- tests/bugs/fuse/bug-858215.t | 4 ++-- .../bug-1225716-brick-online-validation-remove-brick.t | 1 - tests/bugs/glusterd/bug-916549.t | 4 ++-- tests/bugs/glusterfs-server/bug-861542.t | 2 +- tests/bugs/snapshot/bug-1399598-uss-with-ssl.t | 2 +- tests/bugs/trace/bug-797171.t | 4 ++-- tests/cluster.rc | 10 ++++++---- tests/env.rc.in | 3 +++ tests/include.rc | 1 + tests/volume.rc | 8 ++++---- 11 files changed, 23 insertions(+), 18 deletions(-) (limited to 'tests') diff --git a/tests/basic/mount-nfs-auth.t b/tests/basic/mount-nfs-auth.t index cd0189788ba..b275e985287 100755 --- a/tests/basic/mount-nfs-auth.t +++ b/tests/basic/mount-nfs-auth.t @@ -139,7 +139,7 @@ function stat_nfs () { # Restarts the NFS server function restart_nfs () { - local NFS_PID=$(cat ${GLUSTERD_WORKDIR}/nfs/run/nfs.pid) + local NFS_PID=$(cat $GLUSTERD_PIDFILEDIR/nfs/nfs.pid) # kill the NFS-server if it is running while ps -q ${NFS_PID} 2>&1 > /dev/null; do diff --git a/tests/bugs/fuse/bug-858215.t b/tests/bugs/fuse/bug-858215.t index c8613efb72e..389783be841 100755 --- a/tests/bugs/fuse/bug-858215.t +++ b/tests/bugs/fuse/bug-858215.t @@ -40,8 +40,8 @@ TEST touch $M0/newfile; TEST stat $M0/newfile; TEST rm $M0/newfile; -nfs_pid=$(cat $GLUSTERD_WORKDIR/nfs/run/nfs.pid); -glustershd_pid=$(cat $GLUSTERD_WORKDIR/glustershd/run/glustershd.pid); +nfs_pid=$(cat $GLUSTERD_PIDFILEDIR/nfs/nfs.pid); +glustershd_pid=$(cat $GLUSTERD_PIDFILEDIR/glustershd/glustershd.pid); pids=$(pidof glusterfs); for i in $pids diff --git a/tests/bugs/glusterd/bug-1225716-brick-online-validation-remove-brick.t b/tests/bugs/glusterd/bug-1225716-brick-online-validation-remove-brick.t index 47403b44ee6..d168866ab63 100644 --- a/tests/bugs/glusterd/bug-1225716-brick-online-validation-remove-brick.t +++ b/tests/bugs/glusterd/bug-1225716-brick-online-validation-remove-brick.t @@ -28,7 +28,6 @@ EXPECT_WITHIN $REBALANCE_TIMEOUT "completed" remove_brick_status_completed_field #kill a brick process kill_brick $V0 $H0 $B0/${V0}1 -EXPECT_WITHIN $PROCESS_DOWN_TIMEOUT "0" brick_up_status $V0 $H0 $B0/${V0}1 #remove-brick commit should pass even if the brick is down TEST $CLI volume remove-brick $V0 $H0:$B0/${V0}1 commit diff --git a/tests/bugs/glusterd/bug-916549.t b/tests/bugs/glusterd/bug-916549.t index bedbdd60bb6..6e3612dce94 100755 --- a/tests/bugs/glusterd/bug-916549.t +++ b/tests/bugs/glusterd/bug-916549.t @@ -8,8 +8,8 @@ TEST glusterd; TEST $CLI volume create $V0 $H0:$B0/${V0}1; TEST $CLI volume start $V0; -pid_file=$(ls $GLUSTERD_WORKDIR/vols/$V0/run); -brick_pid=$(cat $GLUSTERD_WORKDIR/vols/$V0/run/$pid_file); +pid_file=$(ls $GLUSTERD_PIDFILEDIR/vols/$V0/); +brick_pid=$(cat $GLUSTERD_PIDFILEDIR/vols/$V0/$pid_file); kill -SIGKILL $brick_pid; diff --git a/tests/bugs/glusterfs-server/bug-861542.t b/tests/bugs/glusterfs-server/bug-861542.t index d33593257b9..60d1b132fb4 100755 --- a/tests/bugs/glusterfs-server/bug-861542.t +++ b/tests/bugs/glusterfs-server/bug-861542.t @@ -39,7 +39,7 @@ TEST $CLI --xml volume status $V0; TEST $CLI --xml volume status $V0 detail; # Kill the brick process. After this, port number for the killed (in this case brick) process must be "N/A". -kill `cat $GLUSTERD_WORKDIR/vols/$V0/run/$H0-d-backends-brick0.pid` +kill `cat $GLUSTERD_PIDFILEDIR/vols/$V0/$H0-d-backends-brick0.pid` EXPECT "N/A" port_field $V0 '0'; # volume status EXPECT "N/A" port_field $V0 '1'; # volume status detail diff --git a/tests/bugs/snapshot/bug-1399598-uss-with-ssl.t b/tests/bugs/snapshot/bug-1399598-uss-with-ssl.t index 7d6252638b5..f4e4e6ec4d2 100755 --- a/tests/bugs/snapshot/bug-1399598-uss-with-ssl.t +++ b/tests/bugs/snapshot/bug-1399598-uss-with-ssl.t @@ -20,7 +20,7 @@ function total_online_bricks { # This will count snapd, which isn't really a brick, but callers can # account for that so it's OK. - find $GLUSTERD_WORKDIR -name '*.pid' | wc -l + find $GLUSTERD_PIDFILEDIR -name '*.pid' | wc -l } cleanup; diff --git a/tests/bugs/trace/bug-797171.t b/tests/bugs/trace/bug-797171.t index 29f96b1be57..b823e477229 100755 --- a/tests/bugs/trace/bug-797171.t +++ b/tests/bugs/trace/bug-797171.t @@ -21,8 +21,8 @@ $M0; touch $M0/{1..22}; rm -f $M0/*; -pid_file=$(ls $GLUSTERD_WORKDIR/vols/$V0/run); -brick_pid=$(cat $GLUSTERD_WORKDIR/vols/$V0/run/$pid_file); +pid_file=$(ls $GLUSTERD_PIDFILEDIR/vols/$V0/); +brick_pid=$(cat $GLUSTERD_PIDFILEDIR/vols/$V0/$pid_file); mkdir $statedumpdir/statedump_tmp/; echo "path=$statedumpdir/statedump_tmp" > $statedumpdir/glusterdump.options; diff --git a/tests/cluster.rc b/tests/cluster.rc index cd71e6494e8..c1ff8ab5b74 100644 --- a/tests/cluster.rc +++ b/tests/cluster.rc @@ -27,6 +27,7 @@ function define_backends() { for i in `seq 1 $count`; do b="B$i"; mkdir -p ${!b}/glusterd; + mkdir -p ${!b}/run; done } @@ -43,6 +44,7 @@ function define_glusterds() { b="B$i"; h="H$i"; wopt="management.working-directory=${!b}/glusterd"; + ropt="management.run-directory=${!b}/run/gluster"; bopt="management.transport.socket.bind-address=${!h}"; popt="--pid-file=${!b}/glusterd.pid"; sopt="management.glusterd-sockfile=${!b}/glusterd/gd.sock" @@ -52,11 +54,11 @@ function define_glusterds() { logfile=`echo ${0##*/}`_glusterd$i.log lopt="--log-file=$logdir/$logfile" if [ "$2" == "-LDEBUG" ]; then - eval "glusterd_$i='glusterd -LDEBUG --xlator-option $wopt --xlator-option $bopt --xlator-option $sopt $lopt $popt'"; - eval "glusterd$i='glusterd -LDEBUG --xlator-option $wopt --xlator-option $bopt --xlator-option $sopt $lopt $popt'"; + eval "glusterd_$i='glusterd -LDEBUG --xlator-option $wopt --xlator-option $bopt --xlator-option $ropt --xlator-option $sopt $lopt $popt'"; + eval "glusterd$i='glusterd -LDEBUG --xlator-option $wopt --xlator-option $bopt --xlator-option $ropt --xlator-option $sopt $lopt $popt'"; else - eval "glusterd_$i='glusterd --xlator-option $wopt --xlator-option $bopt --xlator-option $sopt $lopt $popt'"; - eval "glusterd$i='glusterd --xlator-option $wopt --xlator-option $bopt --xlator-option $sopt $lopt $popt'"; + eval "glusterd_$i='glusterd --xlator-option $wopt --xlator-option $bopt --xlator-option $ropt --xlator-option $sopt $lopt $popt'"; + eval "glusterd$i='glusterd --xlator-option $wopt --xlator-option $bopt --xlator-option $ropt --xlator-option $sopt $lopt $popt'"; fi done } diff --git a/tests/env.rc.in b/tests/env.rc.in index 82971c4a8de..3f3394bd5ec 100644 --- a/tests/env.rc.in +++ b/tests/env.rc.in @@ -5,6 +5,9 @@ libdir=@libdir@ PATH=@sbindir@:$PATH export PATH +GLUSTERD_PIDFILEDIR=@localstatedir@/run/gluster +export GLUSTERD_PIDFILEDIR + LD_LIBRARY_PATH=@libdir@:$LD_LIBRARY_PATH export LD_LIBRARY_PATH diff --git a/tests/include.rc b/tests/include.rc index ffba54e8176..7470ea13e5f 100644 --- a/tests/include.rc +++ b/tests/include.rc @@ -576,6 +576,7 @@ function cleanup() # Complete cleanup time rm -rf "$B0/*" "/etc/glusterd/*"; rm -rf $WORKDIRS + find $GLUSTERD_PIDFILEDIR -name "*.pid" | xargs rm -rf leftover="" for d in $WORKDIRS ; do if test -d $d ; then diff --git a/tests/volume.rc b/tests/volume.rc index 369e5a706c6..1cee648993b 100644 --- a/tests/volume.rc +++ b/tests/volume.rc @@ -103,7 +103,7 @@ function get_nfs_pid () function read_nfs_pidfile () { - echo `cat $GLUSTERD_WORKDIR/nfs/run/nfs.pid` + echo `cat $GLUSTERD_PIDFILEDIR/nfs/nfs.pid` } function cleanup_statedump { @@ -230,7 +230,7 @@ function ec_child_up_count_shd { } function get_shd_process_pid { - ps auxww | grep glusterfs | grep -E "glustershd/run/glustershd.pid" | awk '{print $2}' | head -1 + ps auxww | grep glusterfs | grep -E "glustershd/glustershd.pid" | awk '{print $2}' | head -1 } function generate_shd_statedump { @@ -279,7 +279,7 @@ function get_brick_pidfile { local host=$2 local brick=$3 local brick_hiphenated=$(echo $brick | tr '/' '-') - echo $GLUSTERD_WORKDIR/vols/$vol/run/${host}${brick_hiphenated}.pid + echo $GLUSTERD_PIDFILEDIR/vols/$vol/${host}${brick_hiphenated}.pid } function get_brick_pid { @@ -534,7 +534,7 @@ function volume_exists() { function killall_gluster() { pkill gluster - find $GLUSTERD_WORKDIR -name '*.pid' | xargs rm -f + find $GLUSTERD_PIDFILEDIR -name '*.pid' | xargs rm -f sleep 1 } -- cgit