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");                          }                  }          }  | 
