diff options
author | Mohit Agrawal <moagrawal@redhat.com> | 2019-03-01 13:41:24 +0530 |
---|---|---|
committer | Amar Tumballi <amarts@redhat.com> | 2019-03-12 04:54:50 +0000 |
commit | 66986594a9023c49e61b32769b7e6b260b600626 (patch) | |
tree | e681f21da2956617e453572766a0bb62e3e339ed /libglusterfs/src | |
parent | 3e36060b13a86ea4e39fb717dc7f59aacd47bf4f (diff) |
glusterfsd: Multiple shd processes are spawned on brick_mux environment
Problem: Multiple shd processes are spawned while starting volumes
in the loop on brick_mux environment.glusterd spawn a process
based on a pidfile and shd daemon is taking some time to
update pid in pidfile due to that glusterd is not able to
get shd pid
Solution: Commit cd249f4cb783f8d79e79468c455732669e835a4f changed
the code to update pidfile in parent for any gluster daemon
after getting the status of forking child in parent.To resolve
the same correct the condition update pidfile in parent only
for glusterd and for rest of the daemon pidfile is updated in
child
Change-Id: Ifd14797fa949562594a285ec82d58384ad717e81
fixes: bz#1684404
Signed-off-by: Mohit Agrawal <moagrawal@redhat.com>
Diffstat (limited to 'libglusterfs/src')
-rw-r--r-- | libglusterfs/src/common-utils.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/libglusterfs/src/common-utils.c b/libglusterfs/src/common-utils.c index e312b104747..a0c83c06f7e 100644 --- a/libglusterfs/src/common-utils.c +++ b/libglusterfs/src/common-utils.c @@ -4133,7 +4133,6 @@ gf_is_service_running(char *pidfile, int *pid) ret = lockf(fno, F_TEST, 0); if (ret == -1) { running = _gf_true; - goto out; } ret = fscanf(file, "%d", pid); @@ -4141,6 +4140,8 @@ gf_is_service_running(char *pidfile, int *pid) gf_msg("", GF_LOG_ERROR, errno, LG_MSG_FILE_OP_FAILED, "Unable to read pidfile: %s", pidfile); *pid = -1; + running = _gf_false; + goto out; } running = gf_is_pid_running(*pid); |