fix(container): update image public.ecr.aws/emqx/emqx ( 5.8.2 → 5.8.4 ) #357
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
5.8.2
->5.8.4
Release Notes
emqx/emqx (public.ecr.aws/emqx/emqx)
v5.8.4
: EMQX v5.8.4Compare Source
5.8.4
Make sure to check the breaking changes and known issues before upgrading to EMQX 5.8.4.
Enhancements
Core MQTT Functionalities
#13739 Added support for clearing monitor (statistics) data for the whole cluster. You can now send a
DELETE
request to theapi/v5/monitor
endpoint to clear all collected monitoring metrics.#14247 Log the client attribute
tns
if it exists in the client metadata.If the
client_attrs.tns
attribute is present, it will now be included in the log metadata. However, if the client ID is already prefixed with thetns
value, it will not be logged again to avoid duplication.#14353 Improved robustness of session rebalance and evacuation process. Previously, the session evacuation process could enter a dead loop under certain clustering errors.
Rule Engine
is_empty
: Returntrue
if the map or array is empty.map_size
: Return the size of a map.Configuration Files
#14269 Added
etc/base.hocon
config file. In this release, we introduced a new configuration file,etc/base.hocon
, to enhance configuration management and clarity.Previously,
emqx.conf
was the only place for manually configured settings. However, because it was the top-most layer of the configuration override hierarchy, it caused some confusion. While mutable (not read-only) configurations set inemqx.conf
could be changed through the UI, API, or CLI and take effect immediately, those changes would not persist after a node restart, leading to inconsistent behavior.To address this, we added
etc/base.hocon
as a foundational configuration layer. The updated configuration precedence order, from top to bottom, is now as follows:etc/emqx.conf
data/configs/cluster.hocon
etc/base.hocon
The
etc/base.hocon
file serves as the base layer for configurations. While configurations in this file can still be modified after the node starts, it ensures consistent behavior and proper configuration overriding.Observability
#14360 Added listener shutdown counts labeled by shutdown reason to Prometheus metrics, under the
emqx_client_disconnected_reason
counters. Example output:Currently, this feature is limited to TCP and TLS listeners only.
Bug Fixes
Core MQTT Functionalities
auto_subscribe
configuration loaded via the CLI showed a success message but failed to take effect.unexpected_info
warnings.REST API
Data Integration
#14318 Fixed an issue with the initialization of the HTTP connector state. This fix resolves crashes related to the
function_clause
error that could occur when an HTTP action processed incoming traffic while its underlying connector was being restarted. Before this fix, the logs would show cryptic error messages like:#14319 Refactored the internal state machine for resource management, eliminating several race condition bugs. One example is the HTTP action, which, when handling incoming traffic and experiencing health check flapping, could previously result in errors like the following:
#14362 Refactored the resource manager state machine to prevent race conditions that could lead to inconsistent states.
#14429 Fixed the handling of rule action metrics when the underlying connector is disabled. Previously, the failed counter would increment twice for each message—once under the
unknown
category and once underout_of_service
. With this fix, only theout_of_service
counter is incremented, providing more accurate metrics.Command Line Interface
bin/emqx help
command. This fix ensures that the help command now displays the correct usage information. Now, the help command displays the proper details, making it easier for users to understand how to use the command.Configuration File
undefined
ornull
as the literal strings"undefined"
or"null"
. Now, these values are correctly displayed as empty strings, providing cleaner and more intuitive outputs when variables are not set or have no value"${EMQX_LOG_DIR}"
, ensuring smoother operation without errors.Observability
#14267 Modified the logging behavior to avoid redacting secrets in logs and HTTP responses when the secret string is a file path (e.g.,
file:///path/to/the/secret
).Resolve the
function_clause
error that occurs when retrieving theemqx_license_expiry_at
Prometheus value for a perpetual license.Breaking Changes
client
top-level key will now always be an array of JSON objects, rather than a single JSON object. This change may affect how your monitoring tools process the data.v5.8.3
: EMQX v5.8.3Compare Source
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: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
quicer
to 0.1.9.Bug Fixes
Core MQTT Functionalities
check_gc
warning from appearing when a WebSocket connection encounters a rate limit.error: {{case_clause,#{invalid_property_code => 51}},[{cowboy_websocket...}}
.emqtt
from version 1.13.0 to 1.13.5. For more details, please refer to the emqtt changelog.Durable Sessions
$
symbol, in accordance with the MQTT specification.REST API
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:#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
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:
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
Configuration
📅 Schedule: Branch creation - "on friday and saturday" in timezone Europe/Prague, Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR was generated by Mend Renovate. View the repository job log.