Skip to content

Commit d2d7814

Browse files
authored
Merge pull request #2860 from emqx/5.8.6-release-notes
Release notes for v/e5.8.6
2 parents e1e3a2a + 1ac4f26 commit d2d7814

12 files changed

+333
-5
lines changed

en_US/changes/all-changes-ce.md

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ The release notes page for EMQX provides a comprehensive and detailed record of
44

55
## v5.8
66

7+
- [5.8.6](./changes-ce-v5.md#_5-8-6): 2025-03-25
78
- [5.8.5](./changes-ce-v5.md#_5-8-5): 2025-02-25
89
- [5.8.4](./changes-ce-v5.md#_5-8-4): 2024-12-26
910
- [5.8.3](./changes-ce-v5.md#_5-8-3): 2024-12-05

en_US/changes/all-changes-ee.md

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ The release notes page for EMQX Enterprise provides a comprehensive and detailed
44

55
## v5.8
66

7+
- [5.8.6](./changes-ee-v5.md#_5-8-6): 2025-03-25
78
- [5.8.5](./changes-ee-v5.md#_5-8-5): 2025-02-25
89
- [5.8.4](./changes-ee-v5.md#_5-8-4): 2024-12-26
910
- [5.8.3](./changes-ee-v5.md#_5-8-3): 2024-12-05

en_US/changes/breaking-changes-ce-5.8.md

+10
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
11
# Incompatible Changes in EMQX 5.8
22

3+
## v5.8.6
4+
5+
- [#14802](https://github.com/emqx/emqx/pull/14802) Starting from this version, plugin installation via the REST API or Dashboard requires explicit permission. Users must obtain this permission using the following CLI command before installing.
6+
7+
```bash
8+
emqx ctl plugins allow NAME-VSN
9+
```
10+
11+
This change enhances security by preventing unauthorized plugin installations. Users managing plugins via the API or Dashboard must adjust their workflows accordingly.
12+
313
## v5.8.5
414

515
- [#14703](https://github.com/emqx/emqx/pull/14703) Introduced a change to the maximum allowed value for `force_shutdown.max_heap_size`, which is now set to `128GB`. If the `max_heap_size` was previously set to a value exceeding 128GB, this could lead to issues after upgrading, such as during configuration reloading or updates.

en_US/changes/breaking-changes-ee-5.8.md

+10
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
11
# Incompatible Changes in EMQX 5.8
22

3+
## e5.8.6
4+
5+
- [#14802](https://github.com/emqx/emqx/pull/14802) Starting from this version, plugin installation via the REST API or Dashboard requires explicit permission. Users must obtain this permission using the following CLI command before installing.
6+
7+
```bash
8+
emqx ctl plugins allow NAME-VSN
9+
```
10+
11+
This change enhances security by preventing unauthorized plugin installations. Users managing plugins via the API or Dashboard must adjust their workflows accordingly.
12+
313
## e5.8.5
414

515
- [#14703](https://github.com/emqx/emqx/pull/14703) Introduced a change to the maximum allowed value for `force_shutdown.max_heap_size`, which is now set to `128GB`. If the `max_heap_size` was previously set to a value exceeding 128GB, this could lead to issues after upgrading, such as during configuration reloading or updates.

en_US/changes/changes-ce-v5.md

+62-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,67 @@
11
# EMQX Open Source Version 5
22

3+
## 5.8.6
4+
5+
*Release Date: 2025-03-25*
6+
7+
Make sure to check the breaking changes and known issues before upgrading to EMQX 5.8.6.
8+
9+
### Enhancement
10+
11+
- [#14869](https://github.com/emqx/emqx/pull/14869) Added the `connected_at` timestamp field to the `$events/client_disconnected` event payload. This enhancement enables tracking the original connection session time for disconnected clients, preventing outdated disconnect events from overriding newer connection states.
12+
13+
Previously, when clients frequently reconnected due to unstable networks, delayed disconnect events could lead to incorrect session tracking. With this update, the `connected_at` field is now included in the event payload, aligning its behavior with system topics and ensuring accurate session state management.
14+
15+
### Bug Fixes
16+
17+
#### Core MQTT Functionalities
18+
19+
- [#14815](https://github.com/emqx/emqx/pull/14815) Fixed packet ID release for QoS 2 messages. Previously, if a client failed to send a PUBREL for the maximum configured number of pending QoS 2 messages and then disconnected, the packet IDs remained occupied even after exceeding the configured Max Awaiting PUBREL Timeout.
20+
21+
#### Installation and Deployment
22+
23+
- [#14797](https://github.com/emqx/emqx/pull/14797) Fixed macOS release package startup issue due to OpenSSL dynamic linking (backport #14624).
24+
25+
Previously, the EMQX ZIP package on macOS could fail to start because the `quicer` application dynamically linked to the system-installed OpenSSL, which was not signed during the EMQX build process. Now we have disabled dynamic linking for OpenSSL, aligning with the OTP shipped on macOS. This ensures EMQX starts reliably on macOS 13 and later.
26+
27+
#### Authentication
28+
29+
- [#14847](https://github.com/emqx/emqx/pull/14847) Fixed JWKS authentication failure for wildcard HTTPS endpoints. Previously, JWKS authentication failed to retrieve keys from HTTPS endpoints that used wildcard hostnames, preventing successful authentication.
30+
- [#14786](https://github.com/emqx/emqx/pull/14786) Fixed JWT authentication settings update when using an external JWKS endpoint. Previously, when updating JWT authentication settings with JWKS (key server) enabled in both the old and new configurations, some settings were not correctly applied.
31+
32+
33+
#### REST API
34+
35+
- [#14834](https://github.com/emqx/emqx/pull/14834) Fixed incorrect `Content-Type` header when downloading data backup files. Previously, the response header for downloaded backup files incorrectly used `application/json` instead of `application/octet-stream`.
36+
37+
38+
#### Rule Engine
39+
40+
- [#14824](https://github.com/emqx/emqx/pull/14824) Fixed HTTP 500 error in SQL Rule Tester when handling `details` key in alarm events. Previously, when testing `alarm_activated` or `alarm_deactivated` events in the SQL Rule Tester, certain values in the `details` key could cause an HTTP 500 error due to improper handling of nested map keys.
41+
42+
43+
#### Observability
44+
45+
- [#14800](https://github.com/emqx/emqx/pull/14800) Throttled `warning` level log `dropped_qos0_msg`.
46+
47+
- [#14793](https://github.com/emqx/emqx/pull/14793) Added trace log for `protocol_error` in MQTT connections.
48+
49+
Previously, when a client sent invalid or unexpected MQTT packets causing a `protocol_error`, EMQX logs provided limited details, making it difficult to diagnose the issue.
50+
51+
For example, if a client sent a second `CONNECT` packet while already connected, EMQX would log `socket_force_closed` with `protocol_error`, but without indicating the exact cause.
52+
53+
With this update, EMQX now logs `unexpected_connect_packet` with `conn_state=connected` before `socket_force_closed`, providing clearer context for debugging protocol violations.
54+
55+
#### Plugin
56+
57+
- [#14802](https://github.com/emqx/emqx/pull/14802) Introduced a new CLI command for plugins:
58+
59+
```bash
60+
emqx ctl plugins allow NAME-VSN
61+
```
62+
63+
Before installing a plugin via the HTTP API or Dashboard, this command must be executed to explicitly allow the package, improving security and preventing unauthorized installations.
64+
365
## 5.8.5
466

567
*Release Date: 2025-02-25*
@@ -983,8 +1045,6 @@ Note: This is a breaking change. This option is enabled by default, so the defau
9831045

9841046
- [#13118](https://github.com/emqx/emqx/pull/13118) Fixed a performance issue in the rule engine template rendering.
9851047

986-
- [#12880](https://github.com/emqx/emqx/pull/12880) Fixed an issue in the InfluxDB action configuration where serialization failed when a tag set value contained a literal integer or float. Tag set values are now correctly treated as strings. For more details on tag sets, refer to the [Line Protocol - Tag Set](https://docs.influxdata.com/influxdb/v2/reference/syntax/line-protocol/#tag-set).
987-
9881048
#### Observability
9891049

9901050
- [#12765](https://github.com/emqx/emqx/pull/12765) Make sure stats `subscribers.count` `subscribers.max` contains shared-subscribers. It only contains non-shared subscribers previously.

en_US/changes/changes-ee-v5.md

+84
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,89 @@
11
# EMQX Enterprise Version 5
22

3+
## 5.8.6
4+
5+
*Release Date: 2025-03-25*
6+
7+
Make sure to check the breaking changes and known issues before upgrading to EMQX 5.8.6.
8+
9+
### Enhancements
10+
11+
- [#14869](https://github.com/emqx/emqx/pull/14869) Added the `connected_at` timestamp field to the `$events/client_disconnected` event payload. This enhancement enables tracking the original connection session time for disconnected clients, preventing outdated disconnect events from overriding newer connection states.
12+
13+
Previously, when clients frequently reconnected due to unstable networks, delayed disconnect events could lead to incorrect session tracking. With this update, the `connected_at` field is now included in the event payload, aligning its behavior with system topics and ensuring accurate session state management.
14+
15+
- [#14855](https://github.com/emqx/emqx/pull/14855) Added a new configuration option `ignore_unsupported_frames` to the JT/T 808 gateway. This option prevents devices from being disconnected when sending messages that the gateway cannot parse.
16+
17+
- [#14858](https://github.com/emqx/emqx/pull/14858) EMQX supports data integration with TDengine Cloud. The TDengine Cloud requires an additional token parameter for authentication, which is now supported in the TDengine connector.
18+
19+
### Bug Fixes
20+
21+
#### Core MQTT Functionalities
22+
23+
- [#14815](https://github.com/emqx/emqx/pull/14815) Fixed packet ID release for QoS 2 messages. Previously, if a client failed to send a PUBREL for the maximum configured number of pending QoS 2 messages and then disconnected, the packet IDs remained occupied even after exceeding the configured Max Awaiting PUBREL Timeout.
24+
25+
#### Installation and Deployment
26+
27+
- [#14797](https://github.com/emqx/emqx/pull/14797) Fixed macOS release package startup issue due to OpenSSL dynamic linking (backport #14624).
28+
29+
Previously, the EMQX ZIP package on macOS could fail to start because the `quicer` application dynamically linked to the system-installed OpenSSL, which was not signed during the EMQX build process. Now we have disabled dynamic linking for OpenSSL, aligning with the OTP shipped on macOS. This ensures EMQX starts reliably on macOS 13 and later.
30+
31+
#### Authentication
32+
33+
- [#14847](https://github.com/emqx/emqx/pull/14847) Fixed JWKS authentication failure for wildcard HTTPS endpoints. Previously, JWKS authentication failed to retrieve keys from HTTPS endpoints that used wildcard hostnames, preventing successful authentication.
34+
- [#14786](https://github.com/emqx/emqx/pull/14786) Fixed JWT authentication settings update when using an external JWKS endpoint. Previously, when updating JWT authentication settings with JWKS (key server) enabled in both the old and new configurations, some settings were not correctly applied.
35+
36+
37+
#### REST API
38+
39+
- [#14834](https://github.com/emqx/emqx/pull/14834) Fixed incorrect `Content-Type` header when downloading data backup files. Previously, the response header for downloaded backup files incorrectly used `application/json` instead of `application/octet-stream`.
40+
- [#14863](https://github.com/emqx/emqx/pull/14863) Fixed a problem with `cluster/:node/invite_async` REST API. Previously, this API could attempt to use a down node as the coordinator.
41+
42+
43+
#### Rule Engine
44+
45+
- [#14824](https://github.com/emqx/emqx/pull/14824) Fixed an HTTP 500 error in SQL Rule Tester when handling the `details` key in alarm events. Previously, when testing `alarm_activated` or `alarm_deactivated` events in the SQL Rule Tester, certain values in the `details` key could cause an HTTP 500 error due to improper handling of nested map keys.
46+
47+
#### Data Integration
48+
49+
- [#14796](https://github.com/emqx/emqx/pull/14796) Fixed Pulsar producer inflight state leak. Prior to this fix, the Pulsar client's inflight state could leak, preventing the connector’s inflight counter from returning to zero. This fix also included a performance improvement for Pulsar and Kafka producers on x86.
50+
51+
Also, implemented proper support for the `buffer.memory_overload_protection` parameter in Pulsar Action. Previously, this configuration had no effect, leading to uncontrolled memory usage.
52+
53+
- [#14902](https://github.com/emqx/emqx/pull/14902) Improved error handling in the SQL Server action for connection failures by treating `IMC0x` SQLSTATE errors as recoverable. This prevents message loss when the external MSSQL service is temporarily unavailable and ensures messages are properly cached for retry.
54+
Also enhances connection health checks to correctly detect broken connections and initiate connector reconnection attempts, improving the reliability of the SQL Server connector in unstable network environments.
55+
56+
57+
#### Observability
58+
59+
- [#14800](https://github.com/emqx/emqx/pull/14800) Throttled `warning` level log `dropped_qos0_msg`.
60+
61+
- [#14793](https://github.com/emqx/emqx/pull/14793) Added trace log for `protocol_error` in MQTT connections.
62+
63+
Previously, when a client sent invalid or unexpected MQTT packets causing a `protocol_error`, EMQX logs provided limited details, making it difficult to diagnose the issue.
64+
65+
For example, if a client sent a second `CONNECT` packet while already connected, EMQX would log `socket_force_closed` with `protocol_error`, but without indicating the exact cause.
66+
67+
With this update, EMQX now logs `unexpected_connect_packet` with `conn_state=connected` before `socket_force_closed`, providing clearer context for debugging protocol violations.
68+
69+
- [#14813](https://github.com/emqx/emqx/pull/14813) Fixed the issue that the outgoing messages sent to the WebSocket clients were not traced in end-to-end tracing.
70+
71+
- [#14880](https://github.com/emqx/emqx/pull/14880) Improved logging for SQL Server connector health-check failures. With this update, the logs now provide more precise failure reasons, such as `timeout errors` or `unexpected_SELECT_1_result`, along with detailed diagnostic information to aid in troubleshooting.
72+
73+
#### Plugin
74+
75+
- [#14802](https://github.com/emqx/emqx/pull/14802) Introduced a new CLI command for plugins:
76+
77+
```bash
78+
emqx ctl plugins allow NAME-VSN
79+
```
80+
81+
Before installing a plugin via the HTTP API or Dashboard, this command must be executed to explicitly allow the package, improving security and preventing unauthorized installations.
82+
83+
#### Gateway
84+
85+
- [#14756](https://github.com/emqx/emqx/pull/14756) Improved the JT/T 808 gateway so that when anonymous authentication is enabled, the registration response will carry the default authentication code `anonymous`. This is used to avoid the issue where some clients are unable to parse an empty authentication code.
86+
387
## 5.8.5
488

589
*Release Date: 2025-02-25*

zh_CN/changes/all-changes-ce.md

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ EMQX 版本发布页面全面详细地记录了 EMQX 每个版本中的更新、
44

55
## v5.8
66

7+
- [5.8.6](./changes-ce-v5.md#_5-8-6): 2025-03-25
78
- [5.8.5](./changes-ce-v5.md#_5-8-5): 2025-02-25
89
- [5.8.4](./changes-ce-v5.md#_5-8-4): 2024-12-26
910
- [5.8.3](./changes-ce-v5.md#_5-8-3): 2024-12-05

zh_CN/changes/all-changes-ee.md

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ EMQX 企业版版本发布页面全面详细地记录了 EMQX 企业版每个版
44

55
## v5.8
66

7+
- [5.8.6](./changes-ee-v5.md#_5-8-6): 2025-03-25
78
- [5.8.5](./changes-ee-v5.md#_5-8-5): 2025-02-25
89
- [5.8.4](./changes-ee-v5.md#_5-8-4): 2024-12-26
910
- [5.8.3](./changes-ee-v5.md#_5-8-3): 2024-12-05

zh_CN/changes/breaking-changes-ce-5.8.md

+11
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
# EMQX 5.8 中的不兼容更改
22

3+
## v5.8.6
4+
5+
- [#14802](https://github.com/emqx/emqx/pull/14802) 从此版本开始,通过 REST API 或 Dashboard 安装插件需要显式授权。
6+
用户必须在安装插件前,使用以下 CLI 命令获取权限:
7+
8+
```bash
9+
emqx ctl plugins allow NAME-VSN
10+
```
11+
12+
此更改提升了安全性,可防止未经授权的插件安装。使用 API 或 Dashboard 管理插件的用户需相应调整操作流程。
13+
314
## v5.8.5
415

516
- [#14703](https://github.com/emqx/emqx/pull/14703) 引入了 `force_shutdown.max_heap_size` 最大允许值的变更,现将其设置为 `128GB`。如果之前将 `max_heap_size` 设置为超过 128GB 的值,升级后可能会导致问题,例如在更新或重新加载配置时出现问题。

zh_CN/changes/breaking-changes-ee-5.8.md

+11
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
# EMQX 5.8 中的不兼容变更
22

3+
## e5.8.6
4+
5+
- [#14802](https://github.com/emqx/emqx/pull/14802) 从此版本开始,通过 REST API 或 Dashboard 安装插件需要显式授权。
6+
用户必须在安装插件前,使用以下 CLI 命令获取权限:
7+
8+
```bash
9+
emqx ctl plugins allow NAME-VSN
10+
```
11+
12+
此更改提升了安全性,可防止未经授权的插件安装。使用 API 或 Dashboard 管理插件的用户需相应调整操作流程。
13+
314
## e5.8.5
415

516
- [#14703](https://github.com/emqx/emqx/pull/14703) 引入了 `force_shutdown.max_heap_size` 最大允许值的变更,现将其设置为 `128GB`。如果之前将 `max_heap_size` 设置为超过 128GB 的值,升级后可能会导致问题,例如在更新或重新加载配置时出现问题。

0 commit comments

Comments
 (0)