chore: Generate changelog for e5.0.1 and v5.0.20

This commit is contained in:
Zaiming (Stone) Shi 2023-03-09 16:49:51 +01:00
parent 5bdb85b04f
commit f231042e76
8 changed files with 282 additions and 4 deletions

View File

@ -1 +1 @@
舵手图中添加吊舱干扰预算
Helm chart 中添加干扰预算 (disruption budget)

102
changes/e5.0.1.en.md Normal file
View File

@ -0,0 +1,102 @@
# e5.0.1
## Enhancements
- [#10019](https://github.com/emqx/emqx/pull/10019) Add low level tuning settings for QUIC listeners.
- [#10059](https://github.com/emqx/emqx/pull/10059) Errors returned by rule engine API are formatted in a more human readable way rather than dumping the raw error including the stacktrace.
- [#9213](https://github.com/emqx/emqx/pull/9213) Add pod disruption budget to helm chart
- [#9949](https://github.com/emqx/emqx/pull/9949) QUIC transport Multistreams support and QUIC TLS cacert support.
- [#9932](https://github.com/emqx/emqx/pull/9932) Integrate `TDengine` into `bridges` as a new backend.
- [#9967](https://github.com/emqx/emqx/pull/9967) New common TLS option 'hibernate_after' to reduce memory footprint per idle connecion, default: 5s.
## Bug Fixes
- [#10009](https://github.com/emqx/emqx/pull/10009) Validate `bytes` param to `GET /trace/:name/log` to not exceed signed 32bit integer.
- [#10015](https://github.com/emqx/emqx/pull/10015) To prevent errors caused by an incorrect EMQX node cookie provided from an environment variable,
we have implemented a fail-fast mechanism.
Previously, when an incorrect cookie was provided, the command would still attempt to ping the node,
leading to the error message 'Node xxx not responding to pings'.
With the new implementation, if a mismatched cookie is detected,
a message will be logged to indicate that the cookie is incorrect,
and the command will terminate with an error code of 1 without trying to ping the node.
- [#10020](https://github.com/emqx/emqx/pull/10020) Fix bridge metrics when running in async mode with batching enabled (`batch_size` > 1).
- [#10021](https://github.com/emqx/emqx/pull/10021) Fix error message when the target node of `emqx_ctl cluster join` command is not running.
- [#10032](https://github.com/emqx/emqx/pull/10032) When resources on some nodes in the cluster are still in the 'initializing/connecting' state, the `bridges/` API will crash due to missing Metrics information for those resources. This fix will ignore resources that do not have Metrics information.
- [#10037](https://github.com/emqx/emqx/pull/10037) Fix Swagger API doc rendering crash.
In version 5.0.18, a bug was introduced that resulted in duplicated field names in the configuration schema. This, in turn, caused the Swagger schema generated to become invalid.
- [#10041](https://github.com/emqx/emqx/pull/10041) For influxdb bridge, added integer value placeholder annotation hint to `write_syntax` documentation.
Also supported setting a constant value for the `timestamp` field.
- [#10042](https://github.com/emqx/emqx/pull/10042) Improve behavior of the `replicant` nodes when the `core` cluster becomes partitioned (for example when a core node leaves the cluster).
Previously, the replicant nodes were unable to rebalance connections to the core nodes, until the core cluster became whole again.
This was indicated by the error messages: `[error] line: 182, mfa: mria_lb:list_core_nodes/1, msg: mria_lb_core_discovery divergent cluster`.
[Mria PR](https://github.com/emqx/mria/pull/123/files)
- [#10043](https://github.com/emqx/emqx/pull/10043) Fixed two bugs introduced in v5.0.18.
* The environment varialbe `SSL_DIST_OPTFILE` was not set correctly for non-boot commands.
* When cookie is overridden from environment variable, EMQX node is unable to start.
- [#10044](https://github.com/emqx/emqx/pull/10044) Fix node information formatter for stopped nodes in the cluster. The bug was introduced by v5.0.18.
- [#10054](https://github.com/emqx/emqx/pull/10054) Fix the problem that the obfuscated password is used when using the `/bridges_probe` API to test the connection in Data-Bridge.
- [#10058](https://github.com/emqx/emqx/pull/10058) Deprecate unused QUIC TLS options.
Only following TLS options are kept for the QUIC listeners:
- cacertfile
- certfile
- keyfile
- verify
- [#10076](https://github.com/emqx/emqx/pull/10076) Fix webhook bridge error handling: connection timeout should be a retriable error.
Prior to this fix, connection timeout was classified as unrecoverable error and led to request being dropped.
- [#10078](https://github.com/emqx/emqx/pull/10078) Fix an issue that invalid QUIC listener setting could casue segfault.
- [#10084](https://github.com/emqx/emqx/pull/10084) Fix problem when joining core nodes running different EMQX versions into a cluster.
[Mria PR](https://github.com/emqx/mria/pull/127)
- [#10086](https://github.com/emqx/emqx/pull/10086) Upgrade HTTP client ehttpc to `0.4.7`.
Prior to this upgrade, HTTP clients for authentication, authorization and webhook may crash
if `body` is empty but content-type HTTP header is set.
For more details see [ehttpc PR#44](https://github.com/emqx/ehttpc/pull/44).
- [#9939](https://github.com/emqx/emqx/pull/9939) Allow 'emqx ctl cluster' command to be issued before Mnesia starts.
Prior to this change, EMQX `replicant` could not use `manual` discovery strategy.
Now it's possible to join cluster using 'manual' strategy.
- [#9958](https://github.com/emqx/emqx/pull/9958) Fix bad http response format when client ID is not found in `clients` APIs
- [#9961](https://github.com/emqx/emqx/pull/9961) Avoid parsing config files for node name and cookie when executing non-boot commands in bin/emqx.
- [#9974](https://github.com/emqx/emqx/pull/9974) Report memory usage to statsd and prometheus using the same data source as dashboard.
Prior to this fix, the memory usage data source was collected from an outdated source which did not work well in containers.
- [#9978](https://github.com/emqx/emqx/pull/9978) Fixed configuration issue when choosing to use SSL for a Postgres connection (`authn`, `authz` and bridge).
The connection could fail to complete with a previously working configuration after an upgrade from 5.0.13 to newer EMQX versions.
- [#9997](https://github.com/emqx/emqx/pull/9997) Fix Swagger API schema generation. `deprecated` metadata field is now always boolean, as [Swagger specification](https://swagger.io/specification/) suggests.
- [#10007](https://github.com/emqx/emqx/pull/10007) Change Kafka bridge's config `memory_overload_protection` default value from `true` to `false`.
EMQX logs cases when messages get dropped due to overload protection, and this is also reflected in counters.
However, since there is by default no alerting based on the logs and counters,
setting it to `true` may cause messages being dropped without noticing.
At the time being, the better option is to let sysadmin set it explicitly so they are fully aware of the benefits and risks.
- [#10087](https://github.com/emqx/emqx/pull/10087) Use default template `${timestamp}` if the `timestamp` config is empty (undefined) when inserting data in InfluxDB.
Prior to this change, InfluxDB bridge inserted a wrong timestamp when template is not provided.

96
changes/e5.0.1.zh.md Normal file
View File

@ -0,0 +1,96 @@
# e5.0.1
## 增强
- [#10019](https://github.com/emqx/emqx/pull/10019) 为 QUIC 监听器添加更多底层调优选项。
- [#10059](https://github.com/emqx/emqx/pull/10059) 规则引擎 API 返回用户可读的错误信息而不是原始的栈追踪信息。
- [#9213](https://github.com/emqx/emqx/pull/9213) 在 Helm chart 中添加干扰预算 (disruption budget)。
- [#9949](https://github.com/emqx/emqx/pull/9949) QUIC 传输多流支持和 QUIC TLS cacert 支持。
- [#9932](https://github.com/emqx/emqx/pull/9932) 在 `桥接` 中集成 `TDengine`
- [#9967](https://github.com/emqx/emqx/pull/9967) 新的通用 TLS 选项 'hibernate_after' 以减少空闲连接的内存占用,默认: 5s 。
## 修复
- [#10009](https://github.com/emqx/emqx/pull/10009) 验证 `GET /trace/:name/log``bytes` 参数使其不超过有符号的32位整数。
- [#10015](https://github.com/emqx/emqx/pull/10015) 在 cookie 给错时,快速失败。
在此修复前,即使 cookie 配置错误emqx 命令仍然会尝试去 ping EMQX 节点,
并得到一个 "Node xxx not responding to pings" 的错误。
修复后,如果发现 cookie 不一致,立即打印不一致的错误信息并退出。
- [#10020](https://github.com/emqx/emqx/pull/10020) 修复使用异步和批量配置的桥接计数不准确的问题。
- [#10021](https://github.com/emqx/emqx/pull/10021) 修正当`emqx_ctl cluster join`命令的目标节点未运行时的错误信息。
- [#10032](https://github.com/emqx/emqx/pull/10032) 当集群中某些节点上的资源仍处于 '初始化/连接中' 状态时,`bridges/` API 将由于缺少这些资源的 Metrics 信息而崩溃。此修复后将忽略没有 Metrics 信息的资源。
- [#10037](https://github.com/emqx/emqx/pull/10037) 修复 Swagger API 文档渲染崩溃。
在版本 5.0.18 中,引入了一个错误,导致配置 schema 中出现了重复的配置名称,进而导致生成了无效的 Swagger spec。
- [#10041](https://github.com/emqx/emqx/pull/10041) 为 influxdb 桥接的配置项 `write_syntax` 描述文档增加了类型标识符的提醒。
另外在配置中支持 `timestamp` 使用一个常量。
- [#10042](https://github.com/emqx/emqx/pull/10042) 改进 `core` 集群被分割时 `replicant`节点的行为。
修复前,如果 `core` 集群分裂成两个小集群(例如一个节点离开集群)时,`replicant` 节点无法重新平衡与核心节点的连接,直到核心集群再次变得完整。
这种个问题会导致 replicant 节点出现如下日志:
`[error] line: 182, mfa: mria_lb:list_core_nodes/1, msg: mria_lb_core_discovery divergent cluster`
[Mria PR](https://github.com/emqx/mria/pull/123/files)
- [#10043](https://github.com/emqx/emqx/pull/10043) 修复 v5.0.18 引入的 2 个bug。
* 环境变量 `SSL_DIST_OPTFILE` 的值设置错误导致节点无法为 Erlang distribution 启用 SSL。
* 当节点的 cookie 从环境变量重载 (而不是设置在配置文件中时),节点无法启动的问题。
- [#10044](https://github.com/emqx/emqx/pull/10044) 修复集群中已停止节点的信息序列化问题,该错误由 v5.0.18 引入。
- [#10054](https://github.com/emqx/emqx/pull/10054) 修复数据桥接中使用 `/bridges_probe` API 进行测试连接时密码被混淆的问题。
- [#10058](https://github.com/emqx/emqx/pull/10058) 废弃未使用的 QUIC TLS 选项。
QUIC 监听器只保留以下 TLS 选项:
- cacertfile
- certfile
- keyfile
- verify
- [#10076](https://github.com/emqx/emqx/pull/10076) 修复 HTTP 桥接的一个异常处理:连接超时错误发生后,发生错误的请求可以被重试。
在此修复前,连接超时后,被当作不可重试类型的错误处理,导致请求被丢弃。
- [#10078](https://github.com/emqx/emqx/pull/10078) 修复了无效的 QUIC 监听器设置可能导致 segfault 的问题。
- [#10084](https://github.com/emqx/emqx/pull/10084) 修正将运行不同 EMQX 版本的核心节点加入集群的问题。
[Mria PR](https://github.com/emqx/mria/pull/127)
- [#10086](https://github.com/emqx/emqx/pull/10086) HTTP 客户端库 `ehttpc` 升级到 0.4.7。
在升级前,如果 HTTP 客户端,例如 认证授权webhook 等配置中使用了content-type HTTP 头,但是没有配置 body则可能会发生异常。
详情见 [ehttpc PR#44](https://github.com/emqx/ehttpc/pull/44)。
- [#9939](https://github.com/emqx/emqx/pull/9939) 允许 'emqx ctl cluster join' 命令在 Mnesia 启动前就可以调用。
在此修复前, EMQX 的 `replicant` 类型节点无法使用 `manual` 集群发现策略。
- [#9958](https://github.com/emqx/emqx/pull/9958) 修复 `clients` API 在 Client ID 不存在时返回的错误的 HTTP 应答格式。
- [#9961](https://github.com/emqx/emqx/pull/9961) 在 bin/emqx 脚本中,避免在运行非启动命令时解析 emqx.conf 来获取节点名称和 cookie。
- [#9974](https://github.com/emqx/emqx/pull/9974) Statsd 和 prometheus 使用跟 Dashboard 相同的内存用量数据源。
在此修复前,内存的总量和用量统计使用了过时的(在容器环境中不准确)的数据源。
- [#9978](https://github.com/emqx/emqx/pull/9978) 修正了在Postgres连接中选择使用SSL时的配置问题`authn`, `authz` 和 bridge
从5.0.13升级到较新的EMQX版本后连接可能无法完成之前的配置。
- [#9997](https://github.com/emqx/emqx/pull/9997) 修复 Swagger API 生成时,`deprecated` 元数据字段未按照[标准](https://swagger.io/specification/)建议的那样始终为布尔值的问题。
- [#10007](https://github.com/emqx/emqx/pull/10007) Kafka 桥接的配置参数 `memory_overload_protection` 默认值从 `true` 改成了 `false`
尽管内存过载后消息被丢弃会产生日志和计数,如果没有基于这些日志或计数的告警,系统管理员可能无法及时发现消息被丢弃。
当前更好的选择是:让管理员显式的配置该项,迫使他们理解这个配置的好处以及风险。
- [#10087](https://github.com/emqx/emqx/pull/10087) 在 InfluxDB 中插入数据时,如果时间戳为空(未定义),则使用默认的占位符 `${timestamp}`
在此修复前如果时间戳字段没有设置InfluxDB 桥接使用了一个错误的时间戳。

View File

@ -1 +0,0 @@
Add pod disruption budget to helm chart

View File

@ -1 +0,0 @@
在舵手图中添加吊舱干扰预算。

38
changes/v5.0.20.en.md Normal file
View File

@ -0,0 +1,38 @@
# v5.0.20
## Enhancements
- [#10059](https://github.com/emqx/emqx/pull/10059) Errors returned by rule engine API are formatted in a more human readable way rather than dumping the raw error including the stacktrace.
## Bug Fixes
- [#10032](https://github.com/emqx/emqx/pull/10032) When resources on some nodes in the cluster are still in the 'initializing/connecting' state, the `bridges/` API will crash due to missing Metrics information for those resources. This fix will ignore resources that do not have Metrics information.
- [#10044](https://github.com/emqx/emqx/pull/10044) Fix node information formatter for stopped nodes in the cluster. The bug was introduced by v5.0.18.
- [#10054](https://github.com/emqx/emqx/pull/10054) Fix the problem that the obfuscated password is used when using the `/bridges_probe` API to test the connection in Data-Bridge.
- [#10058](https://github.com/emqx/emqx/pull/10058) Deprecate unused QUIC TLS options.
Only following TLS options are kept for the QUIC listeners:
- cacertfile
- certfile
- keyfile
- verify
- [#10076](https://github.com/emqx/emqx/pull/10076) Fix webhook bridge error handling: connection timeout should be a retriable error.
Prior to this fix, connection timeout was classified as unrecoverable error and led to request being dropped.
- [#10078](https://github.com/emqx/emqx/pull/10078) Fix an issue that invalid QUIC listener setting could casue segfault.
- [#10084](https://github.com/emqx/emqx/pull/10084) Fix problem when joining core nodes running different EMQX versions into a cluster.
[Mria PR](https://github.com/emqx/mria/pull/127)
- [#10086](https://github.com/emqx/emqx/pull/10086) Upgrade HTTP client ehttpc to `0.4.7`.
Prior to this upgrade, HTTP clients for authentication, authorization and webhook may crash
if `body` is empty but content-type HTTP header is set.
For more details see [ehttpc PR#44](https://github.com/emqx/ehttpc/pull/44).

40
changes/v5.0.20.zh.md Normal file
View File

@ -0,0 +1,40 @@
# v5.0.20
## 增强
- [#10059](https://github.com/emqx/emqx/pull/10059) 规则引擎 API 返回用户可读的错误信息而不是原始的栈追踪信息。
- [#9213](https://github.com/emqx/emqx/pull/9213) 在 Helm chart 中添加干扰预算 (disruption budget)。
## 修复
- [#10032](https://github.com/emqx/emqx/pull/10032) 当集群中某些节点上的资源仍处于 '初始化/连接中' 状态时,`bridges/` API 将由于缺少这些资源的 Metrics 信息而崩溃。此修复后将忽略没有 Metrics 信息的资源。
- [#10044](https://github.com/emqx/emqx/pull/10044) 修复集群中已停止节点的信息序列化问题,该错误由 v5.0.18 引入。
- [#10054](https://github.com/emqx/emqx/pull/10054) 修复数据桥接中使用 `/bridges_probe` API 进行测试连接时密码被混淆的问题。
- [#10058](https://github.com/emqx/emqx/pull/10058) 废弃未使用的 QUIC TLS 选项。
QUIC 监听器只保留以下 TLS 选项:
- cacertfile
- certfile
- keyfile
- verify
- [#10076](https://github.com/emqx/emqx/pull/10076) 修复 HTTP 桥接的一个异常处理:连接超时错误发生后,发生错误的请求可以被重试。
在此修复前,连接超时后,被当作不可重试类型的错误处理,导致请求被丢弃。
- [#10078](https://github.com/emqx/emqx/pull/10078) 修复了无效的 QUIC 监听器设置可能导致 segfault 的问题。
- [#10084](https://github.com/emqx/emqx/pull/10084) 修正将运行不同 EMQX 版本的核心节点加入集群的问题。
[Mria PR](https://github.com/emqx/mria/pull/127)
- [#10086](https://github.com/emqx/emqx/pull/10086) HTTP 客户端库 `ehttpc` 升级到 0.4.7。
在升级前,如果 HTTP 客户端,例如 认证授权webhook 等配置中使用了content-type HTTP 头,但是没有配置 body则可能会发生异常。
详情见 [ehttpc PR#44](https://github.com/emqx/ehttpc/pull/44)。

View File

@ -91,7 +91,11 @@ format_one_pr() {
fi
indent="- [#${pr_num}](https://github.com/emqx/emqx/pull/${pr_num}) "
while read -r line; do
echo "${indent}${line}"
if [ "${line}" != '' ]; then
echo "${indent}${line}"
else
echo ''
fi
indent=" "
done < "${filename}"
echo