diff options
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-utils.c | 42 | 
1 files changed, 32 insertions, 10 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c index 3230ddc8ab0..a7125825072 100644 --- a/xlators/mgmt/glusterd/src/glusterd-utils.c +++ b/xlators/mgmt/glusterd/src/glusterd-utils.c @@ -2506,12 +2506,16 @@ glusterd_nodesvc_start (char *server, gf_boolean_t pmap_signin)          int32_t                 ret = -1;          xlator_t                *this = NULL;          glusterd_conf_t         *priv = NULL; +        runner_t                runner = {0,};          char                    pidfile[PATH_MAX] = {0,};          char                    logfile[PATH_MAX] = {0,};          char                    volfile[PATH_MAX] = {0,};          char                    rundir[PATH_MAX] = {0,};          char                    shd_sockfpath[PATH_MAX] = {0,};          char                    volfileid[256]   = {0}; +#ifdef DEBUG +        char                    valgrind_logfile[PATH_MAX] = {0}; +#endif          this = THIS;          GF_ASSERT(this); @@ -2550,22 +2554,40 @@ glusterd_nodesvc_start (char *server, gf_boolean_t pmap_signin)                                                    sizeof (shd_sockfpath));          } +        runinit (&runner);          //TODO: kp:change the assumption that shd is the one which signs in          // use runner_add_args? -        if (pmap_signin) { -                ret = runcmd (SBIN_DIR"/glusterfs", "-s", "localhost", -                              "--volfile-id", volfileid, -                              "-p", pidfile, "-l", logfile, -                              "-S", shd_sockfpath, NULL); -                if (!ret) -                        glusterd_shd_connect (shd_sockfpath); +#ifdef DEBUG +        if (priv->valgrind) { +                snprintf (valgrind_logfile, PATH_MAX, +                          "%s/valgrnd-%s.log", +                          DEFAULT_LOG_FILE_DIRECTORY, +                          server); +                runner_add_args (&runner, "valgrind", "--leak-check=full", +                                 "--trace-children=yes", NULL); +                runner_argprintf (&runner, "--log-file=%s", valgrind_logfile);          } -        else { -                ret = runcmd (SBIN_DIR"/glusterfs", "-f", volfile, -                              "-p", pidfile, "-l", logfile, NULL); +#endif + +        if (pmap_signin) { +                runner_add_args (&runner, SBIN_DIR"/glusterfs", "-s", +                                 "localhost", "--volfile-id", volfileid, +                                 "-p", pidfile, "-l", logfile, +                                 "-S", shd_sockfpath, NULL); +        } else { +                runner_add_args (&runner, SBIN_DIR"/glusterfs", "-f", volfile, +                                 "-p", pidfile, "-l", logfile, NULL);          } +        runner_log (&runner, "", GF_LOG_DEBUG, "Starting the nfs/glustershd " +                    "services"); + +        ret = runner_run (&runner); +        if (ret == 0) { +                if (pmap_signin) +                        glusterd_shd_connect (shd_sockfpath); +        }  out:          return ret;  }  | 
