This is an automated email from the ASF dual-hosted git repository.
wangdan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-pegasus.git
The following commit(s) were added to refs/heads/master by this push:
new 9a6702ae2 feat(server): disable UDP service by default (#1132)
9a6702ae2 is described below
commit 9a6702ae2d3d384c6e03a66a0cc9cced323db976
Author: liguohao <[email protected]>
AuthorDate: Wed Dec 21 18:50:03 2022 +0800
feat(server): disable UDP service by default (#1132)
---
src/runtime/nativerun.cpp | 31 ++++++++++++++++++-------------
src/runtime/providers.common.cpp | 7 ++++++-
src/runtime/task/task_spec.cpp | 10 ++++++++++
3 files changed, 34 insertions(+), 14 deletions(-)
diff --git a/src/runtime/nativerun.cpp b/src/runtime/nativerun.cpp
index e398dd762..0506c05d2 100644
--- a/src/runtime/nativerun.cpp
+++ b/src/runtime/nativerun.cpp
@@ -34,10 +34,13 @@
*/
#include "runtime/nativerun.h"
+#include "utils/flags.h"
namespace dsn {
namespace tools {
+DSN_DECLARE_bool(enable_udp);
+
void nativerun::install(service_spec &spec)
{
if (spec.env_factory_name == "")
@@ -59,19 +62,21 @@ void nativerun::install(service_spec &spec)
cs2.message_buffer_block_size = 1024 * 64;
spec.network_default_server_cfs[cs2] = cs2;
}
- {
- network_client_config cs;
- cs.factory_name = "dsn::tools::asio_udp_provider";
- cs.message_buffer_block_size = 1024 * 64;
- spec.network_default_client_cfs[RPC_CHANNEL_UDP] = cs;
- }
- {
- network_server_config cs2;
- cs2.port = 0;
- cs2.channel = RPC_CHANNEL_UDP;
- cs2.factory_name = "dsn::tools::asio_udp_provider";
- cs2.message_buffer_block_size = 1024 * 64;
- spec.network_default_server_cfs[cs2] = cs2;
+ if (FLAGS_enable_udp) {
+ {
+ network_client_config client_conf;
+ client_conf.factory_name = "dsn::tools::asio_udp_provider";
+ client_conf.message_buffer_block_size = 1024 * 64;
+ spec.network_default_client_cfs[RPC_CHANNEL_UDP] = client_conf;
+ }
+ {
+ network_server_config server_conf;
+ server_conf.port = 0;
+ server_conf.channel = RPC_CHANNEL_UDP;
+ server_conf.factory_name = "dsn::tools::asio_udp_provider";
+ server_conf.message_buffer_block_size = 1024 * 64;
+ spec.network_default_server_cfs[server_conf] = server_conf;
+ }
}
if (spec.logging_factory_name == "")
diff --git a/src/runtime/providers.common.cpp b/src/runtime/providers.common.cpp
index db5017336..430b60890 100644
--- a/src/runtime/providers.common.cpp
+++ b/src/runtime/providers.common.cpp
@@ -39,6 +39,7 @@
#include "runtime/task/simple_task_queue.h"
#include "runtime/task/hpc_task_queue.h"
#include "runtime/rpc/network.sim.h"
+#include "utils/flags.h"
#include "utils/simple_logger.h"
#include "runtime/rpc/dsn_message_parser.h"
#include "runtime/rpc/thrift_message_parser.h"
@@ -47,6 +48,8 @@
namespace dsn {
namespace tools {
+DSN_DEFINE_bool("network", enable_udp, true, "whether to enable udp rpc
engine");
+
void register_std_lock_providers()
{
lock_provider::register_component<std_lock_provider>("dsn::tools::std_lock_provider");
@@ -64,8 +67,10 @@ void register_common_providers()
register_std_lock_providers();
+ if (FLAGS_enable_udp) {
+
register_component_provider<asio_udp_provider>("dsn::tools::asio_udp_provider");
+ }
register_component_provider<asio_network_provider>("dsn::tools::asio_network_provider");
-
register_component_provider<asio_udp_provider>("dsn::tools::asio_udp_provider");
register_component_provider<sim_network_provider>("dsn::tools::sim_network_provider");
register_component_provider<simple_task_queue>("dsn::tools::simple_task_queue");
register_component_provider<hpc_concurrent_task_queue>("dsn::tools::hpc_concurrent_task_queue");
diff --git a/src/runtime/task/task_spec.cpp b/src/runtime/task/task_spec.cpp
index 3a9d21818..9cc1762fc 100644
--- a/src/runtime/task/task_spec.cpp
+++ b/src/runtime/task/task_spec.cpp
@@ -29,12 +29,16 @@
#include <array>
#include "runtime/rpc/rpc_message.h"
+#include "utils/flags.h"
#include "utils/fmt_logging.h"
#include "utils/command_manager.h"
#include "utils/threadpool_spec.h"
#include "utils/smart_pointers.h"
namespace dsn {
+namespace tools {
+DSN_DECLARE_bool(enable_udp);
+}
constexpr int TASK_SPEC_STORE_CAPACITY = 512;
@@ -224,6 +228,12 @@ bool task_spec::init()
return false;
}
}
+
+ if (spec->rpc_call_channel == RPC_CHANNEL_UDP &&
!dsn::tools::FLAGS_enable_udp) {
+ LOG_ERROR("task rpc_call_channel RPC_CHANNEL_UCP need udp service,
make sure "
+ "[network].enable_udp");
+ return false;
+ }
}
return true;
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]