|
|
|
@ -0,0 +1,118 @@
|
|
|
|
|
# v5.0.26
|
|
|
|
|
|
|
|
|
|
## Enhancements
|
|
|
|
|
|
|
|
|
|
- [#10584](https://github.com/emqx/emqx/pull/10584) Add log level configuration to SSL communication
|
|
|
|
|
|
|
|
|
|
- [#10702](https://github.com/emqx/emqx/pull/10702) Introduce a more straightforward configuration option `keepalive_multiplier` and
|
|
|
|
|
deprecate the old `keepalive_backoff` configuration.
|
|
|
|
|
After this enhancement, EMQX checks the client's keepalive timeout status
|
|
|
|
|
period by multiplying the "Client Requested Keepalive Interval" with `keepalive_multiplier`.
|
|
|
|
|
|
|
|
|
|
- [#10713](https://github.com/emqx/emqx/pull/10713) We hide the request_timeout in resource_option of the webhook to keep it consistent with the http request_timeout of the webhook.
|
|
|
|
|
From now on, when configuring a webhook through API or configuration files,
|
|
|
|
|
it is no longer necessary to configure the request_timeout of the resource. Only configuring the http request_timeout is sufficient, and the request_timeout in the resource will automatically be consistent with the http request_timeout.
|
|
|
|
|
|
|
|
|
|
- [#10511](https://github.com/emqx/emqx/pull/10511) Improve the security and privacy of some resource logs by masking sensitive information in the data.
|
|
|
|
|
|
|
|
|
|
- [#10678](https://github.com/emqx/emqx/pull/10678) Optimized counter increment calls to avoid work if increment is zero.
|
|
|
|
|
|
|
|
|
|
- [#10690](https://github.com/emqx/emqx/pull/10690) Added a retry mechanism to webhook bridge that attempts to improve throughput.
|
|
|
|
|
|
|
|
|
|
This optimization retries request failures without blocking the buffering layer, which can improve throughput in situations of high messaging rate.
|
|
|
|
|
|
|
|
|
|
- [#10698](https://github.com/emqx/emqx/pull/10698) Optimize memory usage when accessing the configuration during runtime.
|
|
|
|
|
|
|
|
|
|
## Bug Fixes
|
|
|
|
|
|
|
|
|
|
- [#10340](https://github.com/emqx/emqx/pull/10340) Fixed the issue that could lead to crash logs being printed when stopping EMQX via systemd.
|
|
|
|
|
```
|
|
|
|
|
2023-03-29T16:43:25.915761+08:00 [error] Generic server memsup terminating. Reason: {port_died,normal}. Last message: {'EXIT',<0.2117.0>,{port_died,normal}}. State: [{data,[{"Timeout",60000}]},{items,{"Memory Usage",[{"Allocated",929959936},{"Total",3832242176}]}},{items,{"Worst Memory User",[{"Pid",<0.2031.0>},{"Memory",4720472}]}}].
|
|
|
|
|
2023-03-29T16:43:25.924764+08:00 [error] crasher: initial call: memsup:init/1, pid: <0.2116.0>, registered_name: memsup, exit: {{port_died,normal},[{gen_server,handle_common_reply,8,[{file,"gen_server.erl"},{line,811}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,226}]}]}, ancestors: [os_mon_sup,<0.2114.0>], message_queue_len: 0, messages: [], links: [<0.2115.0>], dictionary: [], trap_exit: true, status: running, heap_size: 4185, stack_size: 29, reductions: 187637; neighbours:
|
|
|
|
|
2023-03-29T16:43:25.924979+08:00 [error] Supervisor: {local,os_mon_sup}. Context: child_terminated. Reason: {port_died,normal}. Offender: id=memsup,pid=<0.2116.0>.
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
- [#10563](https://github.com/emqx/emqx/pull/10563) Corrected an issue where the no_local flag was not functioning correctly.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- [#10600](https://github.com/emqx/emqx/pull/10600) Deleted emqx_statsd application.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- [#10653](https://github.com/emqx/emqx/pull/10653) Store gateway authentication TLS certificates and keys in the data directory.
|
|
|
|
|
|
|
|
|
|
- [#10677](https://github.com/emqx/emqx/pull/10677) In Rule API, reapond with 404 HTTP error code when trying to delete a rule that does not exist.
|
|
|
|
|
|
|
|
|
|
- [#10682](https://github.com/emqx/emqx/pull/10682) Fix the timestamp for the will message is incorrectly assigned at the session creation time, now this timestamp is the disconnected time of the session.
|
|
|
|
|
|
|
|
|
|
- [#10701](https://github.com/emqx/emqx/pull/10701) RPM package for Amazon Linux 2 did not support TLS v1.3 as it was assembled with Erlang/OTP built with openssl 1.0.
|
|
|
|
|
|
|
|
|
|
- [#10715](https://github.com/emqx/emqx/pull/10715) Postpone trimming the connection information structure until after `client.connected` hooks have been executed. These hooks once again have access to the client's peer certificate.
|
|
|
|
|
|
|
|
|
|
- [#10717](https://github.com/emqx/emqx/pull/10717) Fixed an issue where the buffering layer processes could use a lot of CPU when inflight window is full.
|
|
|
|
|
|
|
|
|
|
- [#10724](https://github.com/emqx/emqx/pull/10724) A summary has been added for all endpoints in the HTTP API documentation (accessible at "http://emqx_host_name:18083/api-docs").
|
|
|
|
|
|
|
|
|
|
- [#10726](https://github.com/emqx/emqx/pull/10726) Validate Health Check Interval and Auto Restart Interval against the range from 1ms to 1 hour.
|
|
|
|
|
|
|
|
|
|
- [#10728](https://github.com/emqx/emqx/pull/10728) Fixed an issue where the rule engine was unable to access variables exported by `FOREACH` in the `DO` clause.
|
|
|
|
|
|
|
|
|
|
Given a payload: `{"date": "2023-05-06", "array": ["a"]}`, as well as the following SQL statement:
|
|
|
|
|
```
|
|
|
|
|
FOREACH payload.date as date, payload.array as elem
|
|
|
|
|
DO date, elem
|
|
|
|
|
FROM "t/#"
|
|
|
|
|
```
|
|
|
|
|
Prior to the fix, the `date` variable exported by `FOREACH` could not be accessed in the `DO` clause of the above SQL, resulting in the following output for the SQL statement:
|
|
|
|
|
`[{"elem": "a","date": "undefined"}]`.
|
|
|
|
|
After the fix, the output of the SQL statement is: `[{"elem": "a","date": "2023-05-06"}]`
|
|
|
|
|
|
|
|
|
|
- [#10737](https://github.com/emqx/emqx/pull/10737) Fix the issue where the HTTP API interface of Gateway cannot handle ClientIDs with
|
|
|
|
|
special characters, such as: `!@#$%^&*()_+{}:"<>?/`.
|
|
|
|
|
|
|
|
|
|
- [#10742](https://github.com/emqx/emqx/pull/10742) Check the correctness of the rules before saving the authorization file source.
|
|
|
|
|
Previously, Saving wrong rules could lead to restart failure.
|
|
|
|
|
|
|
|
|
|
- [#10743](https://github.com/emqx/emqx/pull/10743) Fixes an issue where trying to get a bridge info or metrics could result in a crash when a node is joining a cluster.
|
|
|
|
|
|
|
|
|
|
- [#10746](https://github.com/emqx/emqx/pull/10746) Add missing support of the event `$events/delivery_dropped` into the rule engine test API `rule_test`.
|
|
|
|
|
|
|
|
|
|
- [#10747](https://github.com/emqx/emqx/pull/10747) Refactor date and time functions, `format_date` and `date_to_unix_ts`, in the rule engine to fix the implementation problem.
|
|
|
|
|
|
|
|
|
|
- [#10755](https://github.com/emqx/emqx/pull/10755) Fixed data bridge resource update race condition.
|
|
|
|
|
|
|
|
|
|
In the 'delete + create' process for EMQX resource updates,
|
|
|
|
|
long bridge creation times could cause dashboard request timeouts.
|
|
|
|
|
If a bridge resource update was initiated before completion of its creation,
|
|
|
|
|
it led to an erroneous deletion from the runtime, despite being present in the config file.
|
|
|
|
|
|
|
|
|
|
This fix addresses the race condition in bridge resource updates,
|
|
|
|
|
ensuring the accurate identification and addition of new resources,
|
|
|
|
|
maintaining consistency between runtime and configuration file statuses.
|
|
|
|
|
|
|
|
|
|
- [#10760](https://github.com/emqx/emqx/pull/10760) Fix Internal Error 500 that occurred sometimes when bridge statistics page was updated while a node was (re)joining the cluster.
|
|
|
|
|
|
|
|
|
|
- [#10761](https://github.com/emqx/emqx/pull/10761) Fixing the issue where the default value of SSL certificate for Dashboard Listener was not correctly interpolated, which caused HTTPS to be inaccessible when verify_peer and cacertfile were using the default configuration.
|
|
|
|
|
|
|
|
|
|
- [#10785](https://github.com/emqx/emqx/pull/10785) Ensure `EMQX_LOG_DIR` is set by Windows boot script.
|
|
|
|
|
|
|
|
|
|
The environment variable `EMQX_LOG_DIR` was missing in v5.0.25, caused EMQX Windows package fail to boot unless set by sysadmin.
|
|
|
|
|
|
|
|
|
|
- [#10801](https://github.com/emqx/emqx/pull/10801) Avoid duplicated percent decode the topic name in API `/topics/{topic}` and `/topics`.
|
|
|
|
|
|
|
|
|
|
- [#10809](https://github.com/emqx/emqx/pull/10809) Address `** ERROR ** Mnesia post_commit hook failed: error:badarg` error messages happening during node shutdown or restart.
|
|
|
|
|
Mria pull request: https://github.com/emqx/mria/pull/142
|
|
|
|
|
|
|
|
|
|
- [#10817](https://github.com/emqx/emqx/pull/10817) Fix the error of not being able to configure `auto_restart_interval` as infinity
|
|
|
|
|
|
|
|
|
|
- [#10818](https://github.com/emqx/emqx/pull/10818) Fixing `emqx_ctl traces` command.
|
|
|
|
|
|
|
|
|
|
- [#10820](https://github.com/emqx/emqx/pull/10820) In case the cluster updated license before the new node join in. The new node will not apply the updated license.
|
|
|
|
|
After this change, the new joined node will use the cluster's license key.
|
|
|
|
|
|
|
|
|
|
Sometimes the new node must start with a outdated license.
|
|
|
|
|
e.g. use emqx-operator deployed and needed to scale up after license expired.
|
|
|
|
|
At the time the cluster's license key already updated by API/CLI, but the new node won't use it.
|
|
|
|
|
|
|
|
|
|
- [#10833](https://github.com/emqx/emqx/pull/10833) Only include enabled authenticators and authorizers in telemetry report, not all of them.
|
|
|
|
|
|
|
|
|
|
- [#10851](https://github.com/emqx/emqx/pull/10851) Obfuscated sensitive data in the bad API logging.
|