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 --- extras/ocf/volume.in | 18 +++++++++++++----- extras/stop-all-gluster-processes.sh | 2 +- 2 files changed, 14 insertions(+), 6 deletions(-) (limited to 'extras') diff --git a/extras/ocf/volume.in b/extras/ocf/volume.in index 72fd1213af2..de05373b9e3 100755 --- a/extras/ocf/volume.in +++ b/extras/ocf/volume.in @@ -78,6 +78,16 @@ volume_getdir() { return 0 } +volume_getpid_dir() { + local volpid_dir + volpid_dir="/var/run/gluster/vols/${OCF_RESKEY_volname}" + + [ -d ${volpid_dir} ] || return 1 + + echo "${volpid_dir}" + return 0 +} + volume_getbricks() { local infofile local voldir @@ -92,17 +102,15 @@ volume_getbricks() { volume_getpids() { local bricks - local piddir local pidfile local infofile - local voldir + local volpid_dir - voldir=`volume_getdir` + volpid_dir=`volume_getpid_dir` bricks=`volume_getbricks` - piddir="${voldir}/run" for brick in ${bricks}; do - pidfile="${piddir}/${SHORTHOSTNAME}${brick}.pid" + pidfile="${volpid_dir}/${SHORTHOSTNAME}${brick}.pid" [ -e $pidfile ] || return 1 cat $pidfile done diff --git a/extras/stop-all-gluster-processes.sh b/extras/stop-all-gluster-processes.sh index 69fd601273e..ea2b48ee88b 100755 --- a/extras/stop-all-gluster-processes.sh +++ b/extras/stop-all-gluster-processes.sh @@ -72,7 +72,7 @@ kill_bricks_and_services() local pidfile local pid - for pidfile in $(find /var/lib/glusterd/ -name '*.pid'); + for pidfile in $(find /var/run/gluster/ -name '*.pid'); do local pid=$(cat ${pidfile}); echo "sending SIG${signal} to pid: ${pid}"; -- cgit