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 "  | 
