From 9e5a3ae3cd35ccbd7a9f48c555fb93d5beee57cb Mon Sep 17 00:00:00 2001 From: Feng Guo Date: Fri, 24 Jun 2016 09:26:16 +0800 Subject: [PATCH] RGW:add socket backlog setting for via ceph.conf http://tracker.ceph.com/issues/16406 Signed-off-by: Feng Guo (cherry picked from commit 3e4df832d34c782795a32b5a30f5c7414a1c3fa9) --- src/common/config_opts.h | 1 + src/rgw/rgw_fcgi_process.cc | 6 ++++-- src/rgw/rgw_process.h | 1 - 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/common/config_opts.h b/src/common/config_opts.h index 5d0ff42735a2f..586329e5b80c7 100644 --- a/src/common/config_opts.h +++ b/src/common/config_opts.h @@ -1336,6 +1336,7 @@ OPTION(rgw_enable_usage_log, OPT_BOOL, false) // enable logging bandwidth usage OPTION(rgw_ops_log_rados, OPT_BOOL, true) // whether ops log should go to rados OPTION(rgw_ops_log_socket_path, OPT_STR, "") // path to unix domain socket where ops log can go OPTION(rgw_ops_log_data_backlog, OPT_INT, 5 << 20) // max data backlog for ops log +OPTION(rgw_fcgi_socket_backlog, OPT_INT, 1024) // socket backlog for fcgi OPTION(rgw_usage_log_flush_threshold, OPT_INT, 1024) // threshold to flush pending log data OPTION(rgw_usage_log_tick_interval, OPT_INT, 30) // flush pending log data every X seconds OPTION(rgw_intent_log_object_name, OPT_STR, "%Y-%m-%d-%i-%n") // man date to see codes (a subset are supported) diff --git a/src/rgw/rgw_fcgi_process.cc b/src/rgw/rgw_fcgi_process.cc index fd6cae6b7a432..b9246aeb6474c 100644 --- a/src/rgw/rgw_fcgi_process.cc +++ b/src/rgw/rgw_fcgi_process.cc @@ -20,10 +20,12 @@ void RGWFCGXProcess::run() string socket_path; string socket_port; string socket_host; + int socket_backlog; conf->get_val("socket_path", "", &socket_path); conf->get_val("socket_port", g_conf->rgw_port, &socket_port); conf->get_val("socket_host", g_conf->rgw_host, &socket_host); + socket_backlog = g_conf->rgw_fcgi_socket_backlog; if (socket_path.empty() && socket_port.empty() && socket_host.empty()) { socket_path = g_conf->rgw_socket_path; @@ -54,7 +56,7 @@ void RGWFCGXProcess::run() } const char *path = path_str.c_str(); - sock_fd = FCGX_OpenSocket(path, SOCKET_BACKLOG); + sock_fd = FCGX_OpenSocket(path, socket_backlog); if (sock_fd < 0) { dout(0) << "ERROR: FCGX_OpenSocket (" << path << ") returned " << sock_fd << dendl; @@ -66,7 +68,7 @@ void RGWFCGXProcess::run() } } else if (!socket_port.empty()) { string bind = socket_host + ":" + socket_port; - sock_fd = FCGX_OpenSocket(bind.c_str(), SOCKET_BACKLOG); + sock_fd = FCGX_OpenSocket(bind.c_str(), socket_backlog); if (sock_fd < 0) { dout(0) << "ERROR: FCGX_OpenSocket (" << bind.c_str() << ") returned " << sock_fd << dendl; diff --git a/src/rgw/rgw_process.h b/src/rgw/rgw_process.h index faf942c6d9ddf..61e1870e16dd8 100644 --- a/src/rgw/rgw_process.h +++ b/src/rgw/rgw_process.h @@ -21,7 +21,6 @@ #define def_dout_subsys #endif -#define SOCKET_BACKLOG 1024 extern void signal_shutdown();