From b23d329608163ee2aa1aa89b907a5a6e50291464 Mon Sep 17 00:00:00 2001 From: Rajesh Amaravathi Date: Mon, 12 Sep 2011 17:29:47 +0530 Subject: glusterd: provide a option to start processes with valgrind By enabling the brick-with-valgrind option in glusterd, one can automatically start all bricks with valgrind monitoring them. Change-Id: Ib0a97a83c4461c0878454e96bc84462f6cad6bc8 BUG: 3461 Reviewed-on: http://review.gluster.com/311 Tested-by: Gluster Build System Reviewed-by: Vijay Bellur --- xlators/mgmt/glusterd/src/glusterd.c | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) (limited to 'xlators/mgmt/glusterd/src/glusterd.c') diff --git a/xlators/mgmt/glusterd/src/glusterd.c b/xlators/mgmt/glusterd/src/glusterd.c index b9e09254ba8..40dc2616d7e 100644 --- a/xlators/mgmt/glusterd/src/glusterd.c +++ b/xlators/mgmt/glusterd/src/glusterd.c @@ -762,6 +762,9 @@ init (xlator_t *this) int first_time = 0; char *mountbroker_root = NULL; +#ifdef DEBUG + char *valgrind_str = NULL; +#endif dir_data = dict_get (this->options, "working-directory"); if (!dir_data) { @@ -943,8 +946,23 @@ init (xlator_t *this) if (ret) goto out; + /* Set option to run bricks on valgrind if enabled in glusterd.vol */ +#ifdef DEBUG + conf->valgrind = _gf_false; + ret = dict_get_str (this->options, "brick-with-valgrind", &valgrind_str); + if (ret < 0) { + gf_log (THIS->name, GF_LOG_ERROR, + "cannot get brick-with-valgrind value"); + } + if (valgrind_str) { + if (gf_string2boolean (valgrind_str, &(conf->valgrind))) { + gf_log (THIS->name, GF_LOG_WARNING, + "brick-with-valgrind value not a boolean string"); + } + } +#endif this->private = conf; - //this->ctx->top = this; + /* this->ctx->top = this;*/ ret = glusterd_uuid_init (first_time); if (ret < 0) @@ -1090,11 +1108,9 @@ struct volume_options options[] = { { .key = {"downgrade"}, .type = GF_OPTION_TYPE_BOOL, }, - { .key = {"bind-insecure"}, .type = GF_OPTION_TYPE_BOOL, }, - { .key = {"mountbroker-root"}, .type = GF_OPTION_TYPE_PATH, }, @@ -1110,5 +1126,8 @@ struct volume_options options[] = { { .key = {GEOREP"-log-group"}, .type = GF_OPTION_TYPE_ANY, }, + { .key = {"brick-with-valgrind"}, + .type = GF_OPTION_TYPE_BOOL, + }, { .key = {NULL} }, }; -- cgit