v5.8.3
版本发布时间: 2024-12-05 23:56:16
emqx/emqx最新发布版本:v5.8.4(2024-12-27 14:15:44)
v5.8.3
Make sure to check the breaking changes and known issues before upgrading to EMQX 5.8.3.
Enhancements
Core MQTT Functionalities
-
#14219 Enhanced Connection Rate Limiter for Improved System Resilience.
-
Improved system stability and responsiveness under high connection rates: Previously, when the connection rate limit was exceeded, listener acceptors would ignore new connection attempts, potentially resulting in an unrecoverable state if a large number of clients connected or reconnected frequently within a short period. Listeners now accept pending connections but immediately close them if the rate limit is reached. This reduces resource strain and improves system resilience during peak loads.
-
New listener option
nolinger
introduced: When set totrue
, a TCP-RST is sent immediately upon socket closure, helping to mitigate SYN flood attacks and further enhancing connection-handling efficiency. -
max_connection
configuration for MQTT listeners now capped by system limits: Themax_connection
value for MQTT listeners is now constrained by the system's limits (e.g.,ulimit
from the OS andnode.process_limit
). If configured toinfinity
or a value greater than the system limit, it will automatically be adjusted to match the system's maximum limit. -
SSL listeners'
ssl_options
now validated before changes: Previously, invalid SSL options (such as unsupported TLS versions) could be accepted, causing client connection failures after a listener reconfiguration. With this update:- The node will fail to boot if a listener is configured with invalid SSL options.
- Requests to apply invalid SSL options via the Dashboard or config API will now fail with a
400
status code.
-
Configuration
-
#14195 Added support for client ID override.
EMQX now provides greater flexibility by allowing custom client ID overrides using the
mqtt.clientid_override={Expression}
configuration. This introduces a more dynamic approach to client ID management. As part of this update, theuse_userid_as_clientid
andpeer_cert_as_clientid
options are deprecated, though they will remain available for compatibility until version 6.0.
MQTT over QUIC
-
#14283 Improved QUIC transport, upgrade
quicer
to 0.1.9.- Early release of remote stream resources in the abnormal scenarios.
- Added more troubleshooting APIs. For more details, see: https://github.com/emqx/quic/compare/0.1.6...0.1.9.
Bug Fixes
Core MQTT Functionalities
-
#14201 Prevent
check_gc
warning from appearing when a WebSocket connection encounters a rate limit. - #14215 Fixed an issue where calls to the retainer (via REST or CLI) would throw an exception if it was disabled.
-
#14223 Ensured the WebSocket close reason is returned as an atom to avoid crashes, specifically preventing the error:
error: {{case_clause,#{invalid_property_code => 51}},[{cowboy_websocket...}}
. - #14260 Resolved a rare race condition that could cause the connection process to crash if the CONNECT packet was not fully received before the idle timeout (default 15 seconds) expired.
- #14268 Fixed another rare race condition that could cause the WebSocket connection process to crash when the CONNECT packet was not fully received before the idle timeout expired.
-
#14266 Updated
emqtt
from version 1.13.0 to 1.13.5. For more details, please refer to the emqtt changelog.
Durable Sessions
-
#14160 Ensured that topic matching rules for durable session subscriptions are properly applied to topics starting with the
$
symbol, in accordance with the MQTT specification.
REST API
-
#14117 Fixed an issue in the REST API documentation where the
Users
endpoint was incorrectly listed as supportingBasic
Authentication.
Data Integration
-
#14172 Resolved a potential race condition where testing a connector using the HTTP API could leave lingering resources if the HTTP request timed out.
-
#14178 Fixed an issue where configuration synchronization could become stuck on a particular node due to simultaneous deletion of rules across different nodes in the cluster.
-
#14226 Mitigated a scenario where, under high load, a node could lose track of resource metrics (e.g., action/source) and fail to recover without a restart. Now, when restarting a resource or resetting its metrics, the system attempts to recreate the lost metrics.
Additionally, warning logs related to metric failures, such as those for "hot-path" metrics like
matched
, are now throttled to prevent excessive log flooding. Example of throttled log:2024-11-14T13:56:44.134289+00:00 [warning] tag: RESOURCE, clientid: clientid, msg: handle_resource_metrics_failed, peername: 172.100.239.1:33896, reason: {badkey,matched}, stacktrace: [{erlang,map_get,[matched,#{}],[{error_info,#{module => erl_erts_errors}}]},{emqx_metrics_worker,idx_metric,4,[{file,"src/emqx_metrics_worker.erl"},{line,560}]},... 2024-11-14T13:57:12.490503+00:00 [warning] msg: log_events_throttled_during_last_period, period: 1 minutes, 0 seconds, dropped: #{handle_resource_metrics_failed => 2294}
-
#14265 Fixed an issue where a
badkey
error would occur when stopping a connector if the MQTT Source action failed to subscribe successfully. -
#14296 Prevented
ecpool_sup
from being blocked by a slow-startingecpool_worker
.
Configuration
-
#14180 Fixed an issue with variform expressions returning
'undefined'
when a variable is bound to the valueundefined
ornull
. Now, an empty string is returned instead. -
#14289 Resolved a log file path issue when importing configurations from a different environment. The
EMQX_LOG_DIR
environment variable is set to/opt/emqx/log
in Docker but/var/log/emqx/
when installed via RPM/DEB packages. Prior to this fix, log file paths (default file handler and audit handler) are environment-variable interpolated when being exported. This could cause crashes when importing configs into a different environment where the directory didn’t exist.With this fix, log file paths are no longer environment-variable interpolated during export. Additionally, absolute log directory paths from older versions are now converted back to environment variables if the path doesn’t exist in the new environment.
Extension
-
#14243 Fixed an issue where the
client.connect
hook was not being triggered for some gateways.
MQTT over QUIC
-
#14258 Reduced the QUIC connection shutdown timeout. Previously, QUIC connections had a 5-second timeout for graceful shutdown. If the client was unresponsive, EMQX would log warnings like:
[warning] msg: session_stepdown_request_timeout, action: discard,
or potentially cause a timeout on the Dashboard when attempting to disconnect the client. The timeout has now been reduced to 1 second for "kick" actions and 3 seconds for other scenarios.
Breaking Changes
- #14305 Removed support of md4, md5 and ripemd160 in authentication as they are not compliant with NIST Secure Hash Standard.
1、 emqx-5.8.3-amzn2-amd64.rpm 41.48MB
2、 emqx-5.8.3-amzn2-amd64.rpm.sha256 64B
3、 emqx-5.8.3-amzn2-amd64.tar.gz 64.12MB
4、 emqx-5.8.3-amzn2-amd64.tar.gz.sha256 64B
5、 emqx-5.8.3-amzn2-arm64.rpm 41.12MB
6、 emqx-5.8.3-amzn2-arm64.rpm.sha256 64B
7、 emqx-5.8.3-amzn2-arm64.tar.gz 62.15MB
8、 emqx-5.8.3-amzn2-arm64.tar.gz.sha256 64B
9、 emqx-5.8.3-amzn2023-amd64.rpm 39.66MB
10、 emqx-5.8.3-amzn2023-amd64.rpm.sha256 64B
11、 emqx-5.8.3-amzn2023-amd64.tar.gz 66.37MB
12、 emqx-5.8.3-amzn2023-amd64.tar.gz.sha256 64B
13、 emqx-5.8.3-amzn2023-arm64.rpm 39.41MB
14、 emqx-5.8.3-amzn2023-arm64.rpm.sha256 64B
15、 emqx-5.8.3-amzn2023-arm64.tar.gz 64.04MB
16、 emqx-5.8.3-amzn2023-arm64.tar.gz.sha256 64B
17、 emqx-5.8.3-debian10-amd64.deb 37.69MB
18、 emqx-5.8.3-debian10-amd64.deb.sha256 64B
19、 emqx-5.8.3-debian10-amd64.tar.gz 67.78MB
20、 emqx-5.8.3-debian10-amd64.tar.gz.sha256 64B
21、 emqx-5.8.3-debian10-arm64.deb 37.07MB
22、 emqx-5.8.3-debian10-arm64.deb.sha256 64B
23、 emqx-5.8.3-debian10-arm64.tar.gz 65.34MB
24、 emqx-5.8.3-debian10-arm64.tar.gz.sha256 64B
25、 emqx-5.8.3-debian11-amd64.deb 37.81MB
26、 emqx-5.8.3-debian11-amd64.deb.sha256 64B
27、 emqx-5.8.3-debian11-amd64.tar.gz 66.23MB
28、 emqx-5.8.3-debian11-amd64.tar.gz.sha256 64B
29、 emqx-5.8.3-debian11-arm64.deb 37.14MB
30、 emqx-5.8.3-debian11-arm64.deb.sha256 64B
31、 emqx-5.8.3-debian11-arm64.tar.gz 63.83MB
32、 emqx-5.8.3-debian11-arm64.tar.gz.sha256 64B
33、 emqx-5.8.3-debian12-amd64.deb 37.85MB
34、 emqx-5.8.3-debian12-amd64.deb.sha256 64B
35、 emqx-5.8.3-debian12-amd64.tar.gz 66.49MB
36、 emqx-5.8.3-debian12-amd64.tar.gz.sha256 64B
37、 emqx-5.8.3-debian12-arm64.deb 37.27MB
38、 emqx-5.8.3-debian12-arm64.deb.sha256 64B
39、 emqx-5.8.3-debian12-arm64.tar.gz 63.99MB
40、 emqx-5.8.3-debian12-arm64.tar.gz.sha256 64B
41、 emqx-5.8.3-docker-amd64.tar.gz 97.38MB
42、 emqx-5.8.3-docker-arm64.tar.gz 191.91MB
43、 emqx-5.8.3-el7-amd64.rpm 53.29MB
44、 emqx-5.8.3-el7-amd64.rpm.sha256 64B
45、 emqx-5.8.3-el7-amd64.tar.gz 72.17MB
46、 emqx-5.8.3-el7-amd64.tar.gz.sha256 64B
47、 emqx-5.8.3-el7-arm64.rpm 52.05MB
48、 emqx-5.8.3-el7-arm64.rpm.sha256 64B
49、 emqx-5.8.3-el7-arm64.tar.gz 70.68MB
50、 emqx-5.8.3-el7-arm64.tar.gz.sha256 64B
51、 emqx-5.8.3-el8-amd64.rpm 39.83MB
52、 emqx-5.8.3-el8-amd64.rpm.sha256 64B
53、 emqx-5.8.3-el8-amd64.tar.gz 67.87MB
54、 emqx-5.8.3-el8-amd64.tar.gz.sha256 64B
55、 emqx-5.8.3-el8-arm64.rpm 39.29MB
56、 emqx-5.8.3-el8-arm64.rpm.sha256 64B
57、 emqx-5.8.3-el8-arm64.tar.gz 65.42MB
58、 emqx-5.8.3-el8-arm64.tar.gz.sha256 64B
59、 emqx-5.8.3-el9-amd64.rpm 39.67MB
60、 emqx-5.8.3-el9-amd64.rpm.sha256 64B
61、 emqx-5.8.3-el9-amd64.tar.gz 66.34MB
62、 emqx-5.8.3-el9-amd64.tar.gz.sha256 64B
63、 emqx-5.8.3-el9-arm64.rpm 39.41MB
64、 emqx-5.8.3-el9-arm64.rpm.sha256 64B
65、 emqx-5.8.3-el9-arm64.tar.gz 64.02MB
66、 emqx-5.8.3-el9-arm64.tar.gz.sha256 64B
67、 emqx-5.8.3-elixir-ubuntu22.04-amd64.tar.gz 78.86MB
68、 emqx-5.8.3-elixir-ubuntu22.04-amd64.tar.gz.sha256 64B
69、 emqx-5.8.3-macos13-amd64.zip 49.2MB
70、 emqx-5.8.3-macos13-amd64.zip.sha256 65B
71、 emqx-5.8.3-macos14-arm64.zip 48.36MB
72、 emqx-5.8.3-macos14-arm64.zip.sha256 65B
73、 emqx-5.8.3-ubuntu20.04-amd64.deb 37.87MB
74、 emqx-5.8.3-ubuntu20.04-amd64.deb.sha256 64B
75、 emqx-5.8.3-ubuntu20.04-amd64.tar.gz 68.68MB
76、 emqx-5.8.3-ubuntu20.04-amd64.tar.gz.sha256 64B
77、 emqx-5.8.3-ubuntu20.04-arm64.deb 37.22MB
78、 emqx-5.8.3-ubuntu20.04-arm64.deb.sha256 64B
79、 emqx-5.8.3-ubuntu20.04-arm64.tar.gz 66.11MB
80、 emqx-5.8.3-ubuntu20.04-arm64.tar.gz.sha256 64B
81、 emqx-5.8.3-ubuntu22.04-amd64.deb 39.25MB
82、 emqx-5.8.3-ubuntu22.04-amd64.deb.sha256 64B
83、 emqx-5.8.3-ubuntu22.04-amd64.tar.gz 66.69MB
84、 emqx-5.8.3-ubuntu22.04-amd64.tar.gz.sha256 64B
85、 emqx-5.8.3-ubuntu22.04-arm64.deb 39MB
86、 emqx-5.8.3-ubuntu22.04-arm64.deb.sha256 64B
87、 emqx-5.8.3-ubuntu22.04-arm64.tar.gz 64.26MB
88、 emqx-5.8.3-ubuntu22.04-arm64.tar.gz.sha256 64B
89、 emqx-5.8.3-ubuntu24.04-amd64.deb 39.11MB
90、 emqx-5.8.3-ubuntu24.04-amd64.deb.sha256 64B
91、 emqx-5.8.3-ubuntu24.04-amd64.tar.gz 66.68MB
92、 emqx-5.8.3-ubuntu24.04-amd64.tar.gz.sha256 64B
93、 emqx-5.8.3-ubuntu24.04-arm64.deb 38.85MB
94、 emqx-5.8.3-ubuntu24.04-arm64.deb.sha256 64B
95、 emqx-5.8.3-ubuntu24.04-arm64.tar.gz 64.31MB
96、 emqx-5.8.3-ubuntu24.04-arm64.tar.gz.sha256 64B
97、 emqx-docker-5.8.3.tar.gz 97.38MB
98、 emqx-elixir-5.8.3-docker-amd64.tar.gz 109.58MB
99、 emqx-elixir-5.8.3-docker-arm64.tar.gz 216.25MB
100、 emqx-elixir-docker-5.8.3.tar.gz 109.57MB
101、 emqx-enterprise.zip 212.39MB
102、 env.sh 482B