e5.0.2-alpha.1
Compare base: e5.0.1
Enhancements
-
#10022 Start releasing Rocky Linux 9 (compatible with Enterprise Linux 9) and MacOS 12 packages
-
#9986 For helm charts, add MQTT ingress bridge; and removed stale
mgmt
references. -
#10083 Integrate
DynamoDB
intobridges
as a new backend. -
#9881 In this pull request, we have enhanced the error logs related to InfluxDB connectivity health checks.
Previously, if InfluxDB failed to pass the health checks using the specified parameters, the only message provided was "timed out waiting for it to become healthy".
With the updated implementation, the error message will be displayed in both the logs and the dashboard, enabling easier identification and resolution of the issue. -
#9998 Redact the HTTP request body in the authentication error logs for security reasons.
Bug Fixes
-
#10013 Fix return type structure for error case in API schema for
/gateways/:name/clients
. -
#10014 In dashboard API for
/monitor(_current)/nodes/:node
return404
instead of400
if node does not exist. -
#10027 Allow setting node name from
EMQX_NODE__NAME
when running in docker.
Prior to this fix, onlyEMQX_NODE_NAME
is allowed. -
#10050 Ensure Bridge API returns
404
status code consistently for resources that don't exist. -
#10052 Improve daemon mode startup failure logs.
Before this change, it was difficult for users to understand the reason for EMQX 'start' command failed to boot the node.
The only information they received was that the node did not start within the expected time frame,
and they were instructed to boot the node with 'console' command in the hope of obtaining some logs.
However, the node might actually be running, which could cause 'console' mode to fail for a different reason.With this new change, when daemon mode fails to boot, a diagnosis is issued. Here are the possible scenarios:
- If the node cannot be found from
ps -ef
, the user is instructed to find information in log fileserlang.log.*
. - If the node is found to be running but not responding to pings, the user is advised to check if the host name is resolvable and reachable.
- If the node is responding to pings, but the EMQX app is not running, it is likely a bug. In this case, the user is advised to report a Github issue.
- If the node cannot be found from
-
#10055 Fix
mqtt.max_awaiting_rel
change does not work. -
#10056
/bridges
API: return400
instead of403
in case of inconsistency in the application logic either because bridge is about to be deleted, but active rules still depend on it, or an operation (start|stop|restart) is called, but the bridge is not enabled. -
#10066 Return human readable error message for
/briges_probe
and[/node/:node]/bridges/:id/:operation
API calls and set HTTP status code to400
instead of500
. -
#10074 Check if type in
PUT /authorization/sources/:type
matchestype
given in body of request. -
#10079 Fix description of
shared_subscription_strategy
. -
#10085 Consistently return
404
for all requests on non existent source in/authorization/sources/:source[/*]
. -
#10098 A crash with an error in the log file that happened when the MongoDB authorization module queried the database has been fixed.
-
#10100 Fix channel crash for slow clients with enhanced authentication.
-
#10107 For operations on
bridges API
ifbridge-id
is unknown we now return404
instead of400
. Also a bug was fixed that caused a crash if that was a node
operation. Additionally we now also check if the given bridge is enabled when
doing the cluster operationstart
. Affected endpoints:- [cluster]
/bridges/:id/:operation
, - [node]
/nodes/:node/bridges/:id/:operation
, whereoperation
is one of
[start|stop|restart]
.
Moreover, for a node operation, EMQX checks if node name is in our cluster and
return404
instead of501
.
- [cluster]
-
#10118 Fix problems related to manual joining of EMQX replicant nodes to the cluster.
Previously, manually joining and then leaving the cluster rendered replicant node unable to start EMQX again and required a node restart. -
#10119 Fix crash when
statsd.server
is set to an empty string. -
#10124 The default heartbeat period for MongoDB has been increased to reduce the risk of too excessive logging to the MongoDB log file.
-
#10132 Fix
systemctl stop emqx
command not stopping jq, os_mon application properly, generating some error logs. -
#10095 Stop MySQL client from bombarding server repeatedly with unnecessary
PREPARE
queries on every batch, trashing the server and exhausting its internal limits. This was happening when the MySQL bridge was in the batch mode.Ensure safer and more careful escaping of strings and binaries in batch insert queries when the MySQL bridge is in the batch mode.