summaryrefslogtreecommitdiffstats
path: root/xlators/mgmt/glusterd/src/glusterd-utils.c
diff options
context:
space:
mode:
authorGaurav Kumar Garg <garg.gaurav52@gmail.com>2016-03-02 17:42:07 +0530
committerShyamsundar Ranganathan <srangana@redhat.com>2017-08-12 13:38:30 +0000
commit22ac7241b2f8c1bb3db2678b8b6b9a364f14876c (patch)
tree83a763d82e6b90d8fc9cff0236331fdb3eea82f1 /xlators/mgmt/glusterd/src/glusterd-utils.c
parentffae8ec38e9a5fd0aa9a5fbba86a22f805b8cfa8 (diff)
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 <ggarg@redhat.com> > Signed-off-by: Saravanakumar Arumugam <sarumuga@redhat.com> > Reviewed-on: https://review.gluster.org/13580 > Tested-by: MOHIT AGRAWAL <moagrawa@redhat.com> > Smoke: Gluster Build System <jenkins@build.gluster.org> > CentOS-regression: Gluster Build System <jenkins@build.gluster.org> > Reviewed-by: Atin Mukherjee <amukherj@redhat.com> > cherry pick from commit 220d406ad13d840e950eef001a2b36f87570058d BUG: 1480459 Change-Id: Idb09e3fccb6a7355fbac1df31082637c8d7ab5b4 Signed-off-by: Mohit Agrawal <moagrawa@redhat.com> Reviewed-on: https://review.gluster.org/18023 Reviewed-by: Atin Mukherjee <amukherj@redhat.com> Smoke: Gluster Build System <jenkins@build.gluster.org> CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
Diffstat (limited to 'xlators/mgmt/glusterd/src/glusterd-utils.c')
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-utils.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c
index e0f166f1d4a..64ff103b5a9 100644
--- a/xlators/mgmt/glusterd/src/glusterd-utils.c
+++ b/xlators/mgmt/glusterd/src/glusterd-utils.c
@@ -1845,7 +1845,7 @@ glusterd_set_brick_socket_filepath (glusterd_volinfo_t *volinfo,
priv = this->private;
- GLUSTERD_GET_VOLUME_DIR (volume_dir, volinfo, priv);
+ GLUSTERD_GET_VOLUME_PID_DIR (volume_dir, volinfo, priv);
GLUSTERD_REMOVE_SLASH_FROM_PATH (brickinfo->path, export_path);
snprintf (sock_filepath, PATH_MAX, "%s/run/%s-%s",
volume_dir, brickinfo->hostname, export_path);
@@ -1904,7 +1904,6 @@ out:
static int
_mk_rundir_p (glusterd_volinfo_t *volinfo)
{
- char voldir[PATH_MAX] = {0,};
char rundir[PATH_MAX] = {0,};
glusterd_conf_t *priv = NULL;
xlator_t *this = NULL;
@@ -1912,8 +1911,7 @@ _mk_rundir_p (glusterd_volinfo_t *volinfo)
this = THIS;
priv = this->private;
- GLUSTERD_GET_VOLUME_DIR (voldir, volinfo, priv);
- snprintf (rundir, sizeof (rundir)-1, "%s/run", voldir);
+ GLUSTERD_GET_VOLUME_PID_DIR (rundir, volinfo, priv);
ret = mkdir_p (rundir, 0777, _gf_true);
if (ret)
gf_msg (this->name, GF_LOG_ERROR, errno,
@@ -4999,8 +4997,8 @@ glusterd_add_node_to_dict (char *server, dict_t *dict, int count,
priv = this->private;
GF_ASSERT (priv);
- glusterd_svc_build_pidfile_path (server, priv->workdir, pidfile,
- sizeof (pidfile));
+ glusterd_svc_build_pidfile_path (server, priv->rundir,
+ pidfile, sizeof (pidfile));
if (strcmp(server, priv->shd_svc.name) == 0)
svc = &(priv->shd_svc);
@@ -8101,7 +8099,7 @@ glusterd_nfs_statedump (char *options, int option_cnt, char **op_errstr)
}
GLUSTERD_GET_NFS_DIR (path, conf);
- GLUSTERD_GET_NFS_PIDFILE (pidfile_path, path);
+ GLUSTERD_GET_NFS_PIDFILE (pidfile_path, path, conf);
pidfile = fopen (pidfile_path, "r");
if (!pidfile) {
@@ -8226,7 +8224,7 @@ glusterd_quotad_statedump (char *options, int option_cnt, char **op_errstr)
}
GLUSTERD_GET_QUOTAD_DIR (path, conf);
- GLUSTERD_GET_QUOTAD_PIDFILE (pidfile_path, path);
+ GLUSTERD_GET_QUOTAD_PIDFILE (pidfile_path, path, conf);
pidfile = fopen (pidfile_path, "r");
if (!pidfile) {