From 888ad44a9da3006b3e5695e5e5b40d6e446aa109 Mon Sep 17 00:00:00 2001 From: Avra Sengupta Date: Fri, 22 Jul 2016 11:40:32 +0530 Subject: snapshot/snapd: Don't display pid when snapd is offline Backport of http://review.gluster.org/#/c/14981/ We were previously reading the pidfile, and displaying the pid even if snapd daemon is not running. Now to fix it, we re-assign pid value to -1, if snapd is offline. > Reviewed-on: http://review.gluster.org/14981 > Tested-by: Vijay Bellur > NetBSD-regression: NetBSD Build System > Smoke: Gluster Build System > CentOS-regression: Gluster Build System > Reviewed-by: Jeff Darcy (cherry picked from commit ec6925a379c7bee071df1638bc2751b266cee346) Change-Id: I4baff8d489fe9380061c52aea006db90fa421cd7 BUG: 1360979 Signed-off-by: Avra Sengupta Reviewed-on: http://review.gluster.org/15032 Smoke: Gluster Build System NetBSD-regression: NetBSD Build System CentOS-regression: Gluster Build System Reviewed-by: Rajesh Joseph --- tests/bugs/snapshot/bug-1111041.t | 6 ++++++ xlators/mgmt/glusterd/src/glusterd-snapshot-utils.c | 2 ++ 2 files changed, 8 insertions(+) mode change 100644 => 100755 tests/bugs/snapshot/bug-1111041.t diff --git a/tests/bugs/snapshot/bug-1111041.t b/tests/bugs/snapshot/bug-1111041.t old mode 100644 new mode 100755 index 9188880912c..f771d64f2a3 --- a/tests/bugs/snapshot/bug-1111041.t +++ b/tests/bugs/snapshot/bug-1111041.t @@ -29,4 +29,10 @@ SNAPD_PID=$($CLI volume status $V0 | grep "Snapshot Daemon" | awk {'print $8'}); TEST [ $SNAPD_PID -gt 0 ] +kill -9 $SNAPD_PID + +SNAPD_PID=$($CLI volume status $V0 | grep "Snapshot Daemon" | awk {'print $8'}); + +TEST [ $SNAPD_PID = 'N/A' ] + cleanup ; diff --git a/xlators/mgmt/glusterd/src/glusterd-snapshot-utils.c b/xlators/mgmt/glusterd/src/glusterd-snapshot-utils.c index 1f3f34ab901..1d2cbef3d76 100644 --- a/xlators/mgmt/glusterd/src/glusterd-snapshot-utils.c +++ b/xlators/mgmt/glusterd/src/glusterd-snapshot-utils.c @@ -2054,6 +2054,8 @@ glusterd_add_snapd_to_dict (glusterd_volinfo_t *volinfo, glusterd_svc_build_snapd_pidfile (volinfo, pidfile, sizeof (pidfile)); brick_online = gf_is_service_running (pidfile, &pid); + if (brick_online == _gf_false) + pid = -1; memset (key, 0, sizeof (key)); snprintf (key, sizeof (key), "%s.pid", base_key); -- cgit