diff options
-rw-r--r-- | libglusterfs/src/common-utils.c | 29 | ||||
-rw-r--r-- | rpc/rpc-lib/src/protocol-common.h | 1 | ||||
-rw-r--r-- | xlators/protocol/client/src/client-handshake.c | 15 |
3 files changed, 18 insertions, 27 deletions
diff --git a/libglusterfs/src/common-utils.c b/libglusterfs/src/common-utils.c index 3da01a4d117..68d2e243f58 100644 --- a/libglusterfs/src/common-utils.c +++ b/libglusterfs/src/common-utils.c @@ -3082,32 +3082,13 @@ _gf_timestuff (gf_timefmts *fmt, const char ***fmts, const char ***zeros) char * generate_glusterfs_ctx_id (void) { - char tmp_str[1024] = {0,}; - char hostname[256] = {0,}; - struct timeval tv = {0,}; - char now_str[32]; + uuid_t ctxid; + char *tmp = NULL; - if (gettimeofday (&tv, NULL) == -1) { - gf_msg ("glusterfsd", GF_LOG_ERROR, errno, - LG_MSG_GETTIMEOFDAY_FAILED, "gettimeofday: " - "failed"); - } - - if (gethostname (hostname, 256) == -1) { - gf_msg ("glusterfsd", GF_LOG_ERROR, errno, - LG_MSG_GETHOSTNAME_FAILED, "gethostname: failed"); - } - - gf_time_fmt (now_str, sizeof now_str, tv.tv_sec, gf_timefmt_Ymd_T); - snprintf (tmp_str, sizeof tmp_str, "%s-%d-%s:%" -#ifdef GF_DARWIN_HOST_OS - PRId32, -#else - "ld", -#endif - hostname, getpid(), now_str, tv.tv_usec); + gf_uuid_generate (ctxid); + tmp = uuid_utoa (ctxid); - return gf_strdup (tmp_str); + return gf_strdup (tmp); } char * diff --git a/rpc/rpc-lib/src/protocol-common.h b/rpc/rpc-lib/src/protocol-common.h index d4b64e16796..ccb3c5002b4 100644 --- a/rpc/rpc-lib/src/protocol-common.h +++ b/rpc/rpc-lib/src/protocol-common.h @@ -360,4 +360,5 @@ typedef enum gf_get_snapshot_info_type gf_get_snapshot_info_type; #define GD_VOLUME_NAME_MAX 256 /* Maximum size of volume name */ +#define GLUSTER_PROCESS_UUID_FMT "CTX_ID:%s-GRAPH_ID:%d-PID:%d-HOST:%s-PC_NAME:%s-RECON_NO:%s" #endif /* !_PROTOCOL_COMMON_H */ diff --git a/xlators/protocol/client/src/client-handshake.c b/xlators/protocol/client/src/client-handshake.c index 587e256b51a..ca3d140d08e 100644 --- a/xlators/protocol/client/src/client-handshake.c +++ b/xlators/protocol/client/src/client-handshake.c @@ -1312,6 +1312,7 @@ client_setvolume (xlator_t *this, struct rpc_clnt *rpc) clnt_conf_t *conf = NULL; dict_t *options = NULL; char counter_str[32] = {0}; + char hostname[256] = {0,}; options = this->options; conf = this->private; @@ -1354,9 +1355,17 @@ client_setvolume (xlator_t *this, struct rpc_clnt *rpc) "-%"PRIu64, conf->setvol_count); conf->setvol_count++; } - ret = gf_asprintf (&process_uuid_xl, "%s-%s-%d%s", - this->ctx->process_uuid, this->name, - this->graph->id, counter_str); + + if (gethostname (hostname, 256) == -1) { + gf_msg (this->name, GF_LOG_ERROR, errno, + LG_MSG_GETHOSTNAME_FAILED, "gethostname: failed"); + + goto fail; + } + + ret = gf_asprintf (&process_uuid_xl, GLUSTER_PROCESS_UUID_FMT, + this->ctx->process_uuid, this->graph->id, getpid(), + hostname, this->name, counter_str); if (-1 == ret) { gf_msg (this->name, GF_LOG_ERROR, 0, PC_MSG_PROCESS_UUID_SET_FAIL, "asprintf failed while " |