diff options
Diffstat (limited to 'xlators/protocol/server/src/server.c')
-rw-r--r-- | xlators/protocol/server/src/server.c | 137 |
1 files changed, 77 insertions, 60 deletions
diff --git a/xlators/protocol/server/src/server.c b/xlators/protocol/server/src/server.c index aea88b623cc..470c57dac41 100644 --- a/xlators/protocol/server/src/server.c +++ b/xlators/protocol/server/src/server.c @@ -26,6 +26,7 @@ #include "defaults.h" #include "authenticate.h" #include "event.h" +#include "server-messages.h" rpcsvc_cbk_program_t server_cbk_prog = { .progname = "Gluster Callback", @@ -48,13 +49,15 @@ grace_time_handler (void *data) GF_VALIDATE_OR_GOTO (THIS->name, this, out); - gf_log (this->name, GF_LOG_INFO, "grace timer expired for %s", - client->client_uid); + gf_msg (this->name, GF_LOG_INFO, 0, PS_MSG_GRACE_TIMER_EXPD, "grace " + "timer expired for %s", client->client_uid); serv_ctx = server_ctx_get (client, this); if (serv_ctx == NULL) { - gf_log (this->name, GF_LOG_INFO, "server_ctx_get() failed"); + gf_msg (this->name, GF_LOG_INFO, 0, + PS_MSG_SERVER_CTX_GET_FAILED, "server_ctx_get() " + "failed"); goto out; } @@ -173,7 +176,8 @@ server_submit_reply (call_frame_t *frame, rpcsvc_request_t *req, void *arg, iob = gfs_serialize_reply (req, arg, &rsp, xdrproc); if (!iob) { - gf_log ("", GF_LOG_ERROR, "Failed to serialize reply"); + gf_msg ("", GF_LOG_ERROR, 0, PS_MSG_SERIALIZE_REPLY_FAILED, + "Failed to serialize reply"); goto ret; } @@ -355,13 +359,14 @@ get_auth_types (dict_t *this, char *key, data_t *value, void *data) /* TODO: backward compatibility, remove when newer versions are available */ tmp = "addr"; - gf_log ("server", GF_LOG_WARNING, + gf_msg ("server", GF_LOG_WARNING, 0, + PS_MSG_AUTH_IP_ERROR, "assuming 'auth.ip' to be 'auth.addr'"); } ret = dict_set_dynptr (auth_dict, tmp, NULL, 0); if (ret < 0) { - gf_log ("server", GF_LOG_DEBUG, - "failed to dict_set_dynptr"); + gf_msg_debug ("server", 0, "failed to " + "dict_set_dynptr"); } } @@ -388,7 +393,7 @@ _check_for_auth_option (dict_t *d, char *k, data_t *v, goto out; if (strncmp(tail, "addr.", 5) != 0) { - gf_log (xl->name, GF_LOG_INFO, + gf_msg (xl->name, GF_LOG_INFO, 0, PS_MSG_SKIP_FORMAT_CHK, "skip format check for non-addr auth option %s", k); goto out; } @@ -423,7 +428,8 @@ _check_for_auth_option (dict_t *d, char *k, data_t *v, ret = 0; } else { ret = -1; - gf_log (xl->name, GF_LOG_ERROR, + gf_msg (xl->name, GF_LOG_ERROR, 0, + PS_MSG_INTERNET_ADDR_ERROR, "internet address '%s'" " does not conform to" " standards.", addr); @@ -456,10 +462,10 @@ validate_auth_options (xlator_t *this, dict_t *dict) trav->xlator); if (-1 == error) { - gf_log (this->name, GF_LOG_ERROR, - "volume '%s' defined as subvolume, but no " - "authentication defined for the same", - trav->xlator->name); + gf_msg (this->name, GF_LOG_ERROR, 0, + PS_MSG_AUTHENTICATE_ERROR, "volume '%s' " + "defined as subvolume, but no authentication " + "defined for the same", trav->xlator->name); break; } trav = trav->next; @@ -526,8 +532,9 @@ server_rpc_notify (rpcsvc_t *rpc, void *xl, rpcsvc_event_t event, if (!client) break; - gf_log (this->name, GF_LOG_INFO, "disconnecting connection " - "from %s", client->client_uid); + gf_msg (this->name, GF_LOG_INFO, 0, + PS_MSG_CLIENT_DISCONNECTING, "disconnecting connection" + " from %s", client->client_uid); /* If lock self heal is off, then destroy the conn object, else register a grace timer event */ @@ -546,7 +553,8 @@ server_rpc_notify (rpcsvc_t *rpc, void *xl, rpcsvc_event_t event, serv_ctx = server_ctx_get (client, this); if (serv_ctx == NULL) { - gf_log (this->name, GF_LOG_INFO, + gf_msg (this->name, GF_LOG_INFO, 0, + PS_MSG_SERVER_CTX_GET_FAILED, "server_ctx_get() failed"); goto out; } @@ -555,7 +563,8 @@ server_rpc_notify (rpcsvc_t *rpc, void *xl, rpcsvc_event_t event, { if (!serv_ctx->grace_timer) { - gf_log (this->name, GF_LOG_INFO, + gf_msg (this->name, GF_LOG_INFO, 0, + PS_MSG_GRACE_TIMER_START, "starting a grace timer for %s", client->client_uid); @@ -593,8 +602,8 @@ mem_acct_init (xlator_t *this) ret = xlator_mem_acct_init (this, gf_server_mt_end + 1); if (ret != 0) { - gf_log (this->name, GF_LOG_ERROR, "Memory accounting init" - "failed"); + gf_msg (this->name, GF_LOG_ERROR, ENOMEM, PS_MSG_NO_MEMORY, + "Memory accounting init failed"); return ret; } out: @@ -659,8 +668,8 @@ server_init_grace_timer (xlator_t *this, dict_t *options, if (!ret) gf_string2boolean (lk_heal, &conf->lk_heal); - gf_log (this->name, GF_LOG_DEBUG, "lk-heal = %s", - (conf->lk_heal) ? "on" : "off"); + gf_msg_debug (this->name, 0, "lk-heal = %s", + (conf->lk_heal) ? "on" : "off"); ret = dict_get_int32 (options, "grace-timeout", &grace_timeout); if (!ret) @@ -670,8 +679,8 @@ server_init_grace_timer (xlator_t *this, dict_t *options, gf_time_fmt (timestr, sizeof timestr, conf->grace_ts.tv_sec, gf_timefmt_s); - gf_log (this->name, GF_LOG_DEBUG, "Server grace timeout value = %s", - timestr); + gf_msg_debug (this->name, 0, "Server grace timeout value = %s", + timestr); conf->grace_ts.tv_nsec = 0; @@ -716,8 +725,8 @@ reconfigure (xlator_t *this, dict_t *options) if (dict_get_int32 ( options, "inode-lru-limit", &inode_lru_limit) == 0){ conf->inode_lru_limit = inode_lru_limit; - gf_log (this->name, GF_LOG_TRACE, "Reconfigured inode-lru-limit" - " to %d", conf->inode_lru_limit); + gf_msg_trace (this->name, 0, "Reconfigured inode-lru-limit to " + "%d", conf->inode_lru_limit); /* traverse through the xlator graph. For each xlator in the graph check whether it is a bound_xl or not (bound_xl means @@ -732,22 +741,23 @@ reconfigure (xlator_t *this, dict_t *options) if (data) { ret = gf_string2boolean (data->data, &trace); if (ret != 0) { - gf_log (this->name, GF_LOG_WARNING, - "'trace' takes on only boolean values. " - "Neglecting option"); + gf_msg (this->name, GF_LOG_WARNING, EINVAL, + PS_MSG_INVALID_ENTRY, "'trace' takes on only " + "boolean values. Neglecting option"); ret = -1; goto out; } conf->trace = trace; - gf_log (this->name, GF_LOG_TRACE, "Reconfigured trace" - " to %d", conf->trace); + gf_msg_trace (this->name, 0, "Reconfigured trace to %d", + conf->trace); } GF_OPTION_RECONF ("statedump-path", statedump_path, options, path, out); if (!statedump_path) { - gf_log (this->name, GF_LOG_ERROR, + gf_msg (this->name, GF_LOG_ERROR, 0, + PS_MSG_STATEDUMP_PATH_ERROR, "Error while reconfiguring statedump path"); ret = -1; goto out; @@ -780,14 +790,15 @@ reconfigure (xlator_t *this, dict_t *options) GF_OPTION_RECONF ("gid-timeout", conf->gid_cache_timeout, options, int32, out); if (gid_cache_reconf (&conf->gid_cache, conf->gid_cache_timeout) < 0) { - gf_log(this->name, GF_LOG_ERROR, "Failed to reconfigure group " - "cache."); + gf_msg (this->name, GF_LOG_ERROR, 0, PS_MSG_GRP_CACHE_ERROR, + "Failed to reconfigure group cache."); goto out; } rpc_conf = conf->rpc; if (!rpc_conf) { - gf_log (this->name, GF_LOG_ERROR, "No rpc_conf !!!!"); + gf_msg (this->name, GF_LOG_ERROR, 0, PS_MSG_RPC_CONF_ERROR, + "No rpc_conf !!!!"); goto out; } @@ -797,7 +808,7 @@ reconfigure (xlator_t *this, dict_t *options) ret = rpcsvc_set_outstanding_rpc_limit (rpc_conf, options, RPCSVC_DEFAULT_OUTSTANDING_RPC_LIMIT); if (ret < 0) { - gf_log (this->name, GF_LOG_ERROR, + gf_msg (this->name, GF_LOG_ERROR, 0, PS_MSG_RPC_CONF_ERROR, "Failed to reconfigure outstanding-rpc-limit"); goto out; } @@ -807,8 +818,9 @@ reconfigure (xlator_t *this, dict_t *options) if (listeners->trans->reconfigure ) listeners->trans->reconfigure (listeners->trans, options); else - gf_log (this->name, GF_LOG_ERROR, - "Reconfigure not found for transport" ); + gf_msg (this->name, GF_LOG_ERROR, 0, + PS_MSG_TRANSPORT_ERROR, "Reconfigure " + "not found for transport"); } } @@ -821,7 +833,7 @@ reconfigure (xlator_t *this, dict_t *options) ret = server_init_grace_timer (this, options, conf); out: - gf_log ("", GF_LOG_DEBUG, "returning %d", ret); + gf_msg_debug ("", 0, "returning %d", ret); return ret; } @@ -858,13 +870,13 @@ init (xlator_t *this) GF_VALIDATE_OR_GOTO ("init", this, out); if (this->children == NULL) { - gf_log (this->name, GF_LOG_ERROR, + gf_msg (this->name, GF_LOG_ERROR, 0, PS_MSG_SUBVOL_NULL, "protocol/server should have subvolume"); goto out; } if (this->parents != NULL) { - gf_log (this->name, GF_LOG_ERROR, + gf_msg (this->name, GF_LOG_ERROR, 0, PS_MSG_PARENT_VOL_ERROR, "protocol/server should not have parent volumes"); goto out; } @@ -906,7 +918,8 @@ init (xlator_t *this) gf_path_strip_trailing_slashes (statedump_path); this->ctx->statedump_path = gf_strdup (statedump_path); } else { - gf_log (this->name, GF_LOG_ERROR, + gf_msg (this->name, GF_LOG_ERROR, 0, + PS_MSG_STATEDUMP_PATH_ERROR, "Error setting statedump path"); ret = -1; goto out; @@ -937,16 +950,17 @@ init (xlator_t *this) GF_OPTION_INIT("gid-timeout", conf->gid_cache_timeout, int32, out); if (gid_cache_init (&conf->gid_cache, conf->gid_cache_timeout) < 0) { - gf_log(this->name, GF_LOG_ERROR, "Failed to initialize " - "group cache."); + gf_msg (this->name, GF_LOG_ERROR, 0, PS_MSG_GRP_CACHE_ERROR, + "Failed to initialize group cache."); goto out; } /* RPC related */ conf->rpc = rpcsvc_init (this, this->ctx, this->options, 0); if (conf->rpc == NULL) { - gf_log (this->name, GF_LOG_ERROR, - "creation of rpcsvc failed"); + gf_msg (this->name, GF_LOG_ERROR, 0, + PS_MSG_RPCSVC_CREATE_FAILED, "creation of rpcsvc " + "failed"); ret = -1; goto out; } @@ -954,7 +968,7 @@ init (xlator_t *this) ret = rpcsvc_set_outstanding_rpc_limit (conf->rpc, this->options, RPCSVC_DEFAULT_OUTSTANDING_RPC_LIMIT); if (ret < 0) { - gf_log (this->name, GF_LOG_ERROR, + gf_msg (this->name, GF_LOG_ERROR, 0, PS_MSG_RPC_CONF_ERROR, "Failed to configure outstanding-rpc-limit"); goto out; } @@ -967,14 +981,14 @@ init (xlator_t *this) ret = dict_get_str (this->options, "transport-type", &transport_type); if (ret) { - gf_log (this->name, GF_LOG_ERROR, + gf_msg (this->name, GF_LOG_ERROR, 0, PS_MSG_TRANSPORT_ERROR, "option transport-type not set"); ret = -1; goto out; } total_transport = rpc_transport_count (transport_type); if (total_transport <= 0) { - gf_log (this->name, GF_LOG_ERROR, + gf_msg (this->name, GF_LOG_ERROR, 0, PS_MSG_TRANSPORT_ERROR, "failed to get total number of available tranpsorts"); ret = -1; goto out; @@ -982,19 +996,21 @@ init (xlator_t *this) ret = rpcsvc_create_listeners (conf->rpc, this->options, this->name); if (ret < 1) { - gf_log (this->name, GF_LOG_WARNING, + gf_msg (this->name, GF_LOG_WARNING, 0, + PS_MSG_RPCSVC_LISTENER_CREATE_FAILED, "creation of listener failed"); ret = -1; goto out; } else if (ret < total_transport) { - gf_log (this->name, GF_LOG_ERROR, + gf_msg (this->name, GF_LOG_ERROR, 0, + PS_MSG_RPCSVC_LISTENER_CREATE_FAILED, "creation of %d listeners failed, continuing with " "succeeded transport", (total_transport - ret)); } ret = rpcsvc_register_notify (conf->rpc, server_rpc_notify, this); if (ret) { - gf_log (this->name, GF_LOG_WARNING, + gf_msg (this->name, GF_LOG_WARNING, 0, PS_MSG_RPCSVC_NOTIFY, "registration of notify with rpcsvc failed"); goto out; } @@ -1002,7 +1018,7 @@ init (xlator_t *this) glusterfs3_3_fop_prog.options = this->options; ret = rpcsvc_program_register (conf->rpc, &glusterfs3_3_fop_prog); if (ret) { - gf_log (this->name, GF_LOG_WARNING, + gf_msg (this->name, GF_LOG_WARNING, 0, PS_MSG_PGM_REG_FAILED, "registration of program (name:%s, prognum:%d, " "progver:%d) failed", glusterfs3_3_fop_prog.progname, glusterfs3_3_fop_prog.prognum, @@ -1013,7 +1029,7 @@ init (xlator_t *this) gluster_handshake_prog.options = this->options; ret = rpcsvc_program_register (conf->rpc, &gluster_handshake_prog); if (ret) { - gf_log (this->name, GF_LOG_WARNING, + gf_msg (this->name, GF_LOG_WARNING, 0, PS_MSG_PGM_REG_FAILED, "registration of program (name:%s, prognum:%d, " "progver:%d) failed", gluster_handshake_prog.progname, gluster_handshake_prog.prognum, @@ -1030,19 +1046,20 @@ init (xlator_t *this) lim.rlim_max = 1048576; if (setrlimit (RLIMIT_NOFILE, &lim) == -1) { - gf_log (this->name, GF_LOG_WARNING, - "WARNING: Failed to set 'ulimit -n 1M': %s", - strerror(errno)); + gf_msg (this->name, GF_LOG_WARNING, errno, + PS_MSG_ULIMIT_SET_FAILED, "WARNING: Failed to " + "set 'ulimit -n 1M': %s", strerror(errno)); lim.rlim_cur = 65536; lim.rlim_max = 65536; if (setrlimit (RLIMIT_NOFILE, &lim) == -1) { - gf_log (this->name, GF_LOG_WARNING, - "Failed to set max open fd to 64k: %s", + gf_msg (this->name, GF_LOG_WARNING, errno, + PS_MSG_FD_NOT_FOUND, "Failed to set " + "max open fd to 64k: %s", strerror(errno)); } else { - gf_log (this->name, GF_LOG_TRACE, - "max open fd set to 64k"); + gf_msg_trace (this->name, 0, "max open fd set " + "to 64k"); } } } |