From 289415b5aac36b1229b5fa3feccec90d2cf54e8e Mon Sep 17 00:00:00 2001 From: JimMoen Date: Wed, 24 Nov 2021 19:08:43 +0800 Subject: [PATCH] fix(conf): change `max_topic_levels` default configuration --- etc/emqx.conf | 11 +++++++---- priv/emqx.schema | 2 +- test/emqx_channel_SUITE.erl | 3 +-- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/etc/emqx.conf b/etc/emqx.conf index 152f28215..ae5c33508 100644 --- a/etc/emqx.conf +++ b/etc/emqx.conf @@ -663,9 +663,11 @@ mqtt.max_packet_size = 1MB mqtt.max_clientid_len = 65535 ## Maximum topic levels allowed. 0 means no limit. +## Depth so big may lead to subscribing performance issues. ## -## Value: Number -mqtt.max_topic_levels = 0 +## Value: Number [0-65535] +## Default: 128 +mqtt.max_topic_levels = 128 ## Maximum QoS allowed. ## @@ -769,8 +771,9 @@ zone.external.force_gc_policy = 16000|16MB ## Maximum topic levels allowed. 0 means no limit. ## -## Value: Number -## zone.external.max_topic_levels = 7 +## Value: Number [0-65535] +## Default: 7 +zone.external.max_topic_levels = 7 ## Maximum QoS allowed. ## diff --git a/priv/emqx.schema b/priv/emqx.schema index 86a2a2892..5f21c36d4 100644 --- a/priv/emqx.schema +++ b/priv/emqx.schema @@ -800,7 +800,7 @@ end}. %% @doc Set the Maximum topic levels. {mapping, "mqtt.max_topic_levels", "emqx.max_topic_levels", [ - {default, 0}, + {default, 128}, {datatype, integer} ]}. diff --git a/test/emqx_channel_SUITE.erl b/test/emqx_channel_SUITE.erl index 9558dfd28..3249eb991 100644 --- a/test/emqx_channel_SUITE.erl +++ b/test/emqx_channel_SUITE.erl @@ -83,7 +83,7 @@ t_chan_caps(_) -> #{max_clientid_len := 65535, max_qos_allowed := 2, max_topic_alias := 65535, - max_topic_levels := 0, + max_topic_levels := 128, retain_available := true, shared_subscription := true, subscription_identifiers := true, @@ -835,4 +835,3 @@ session(InitFields) when is_map(InitFields) -> quota() -> emqx_limiter:init(zone, [{conn_messages_routing, {5, 1}}, {overall_messages_routing, {10, 1}}]). -