From 364fd8d4f39122335efc78abe98cf489bfcdba26 Mon Sep 17 00:00:00 2001 From: "Zaiming (Stone) Shi" Date: Wed, 28 Dec 2022 14:36:56 +0100 Subject: [PATCH] docs: sync some changes from ee to ce --- changes/v4.4.12-en.md | 11 +++++++++++ changes/v4.4.12-zh.md | 8 ++++++++ 2 files changed, 19 insertions(+) diff --git a/changes/v4.4.12-en.md b/changes/v4.4.12-en.md index 3df067609..0c1e02ce2 100644 --- a/changes/v4.4.12-en.md +++ b/changes/v4.4.12-en.md @@ -25,3 +25,14 @@ - Fixed EMQX Helm Chart can not set JSON type value for EMQX Broker configuration items [#9504](https://github.com/emqx/emqx/pull/9504). - When resource creation is too slow, there may be some temporary probing connections left [#9539](https://github.com/emqx/emqx/pull/9539). + +- After a reconnect, the unacknowledged QoS1/QoS2 messages in non-clean session were not retransmitted periodically as before the reconnect [#9627](https://github.com/emqx/emqx/pull/9627). + The configuration `zone..retry_interval` specifies the retransmission interval of + unacknowledged QoS1/QoS2 messages (defaults to 30s). + Prior to this fix, unacknowledged messages buffered in the session are re-sent only once after session take-over, but not retried at configured interval. + +- The expired 'awaiting_rel' queue is not cleared after persistent session MQTT client disconnected [#9627](https://github.com/emqx/emqx/pull/9627). + Before this change, if the 'awaiting_rel' queue is full when the MQTT client reconnect + to the broker and publish a QoS2 message, the client will get disconnected by the broker + with reason code RC_RECEIVE_MAXIMUM_EXCEEDED(0x93), even if the packet IDs in the 'awaiting_rel' + queue have already expired. diff --git a/changes/v4.4.12-zh.md b/changes/v4.4.12-zh.md index d986aca93..89463faef 100644 --- a/changes/v4.4.12-zh.md +++ b/changes/v4.4.12-zh.md @@ -26,3 +26,11 @@ - 修复 EMQX Helm Chart 无法配置 value 为 JSON 类型的 EMQX Broker 配置项 [#9504](https://github.com/emqx/emqx/pull/9504)。 - 当创建资源过慢的情况下,有可能会残留一些用来探活的临时的连接 [#9539](https://github.com/emqx/emqx/pull/9539)。 + +- 持久会话的 MQTT 客户端重新连接 emqx 之后,未被确认过的 QoS1/QoS2 消息不再周期性重发 [#9627](https://github.com/emqx/emqx/pull/9627)。 + `zone..retry_interval` 配置指定了没有被确认过的 QoS1/QoS2 消息的重发间隔,(默认为 30s)。在这个修复之前, + 当持久会话的 MQTT 客户端重新连接 emqx 之后,emqx 会将队列中缓存的未被确认过的消息重发一次,但是不会按配置的时间间隔重试。 + +- 持久会话的 MQTT 客户端断连之后,已经过期的 'awaiting_rel' 队列没有清除 [#9627](https://github.com/emqx/emqx/pull/9627)。 + 在这个改动之前,在客户端重连并且发布 QoS2 消息的时候,如果 'awaiting_rel' 队列已满,此客户端会被服务器以 + RC_RECEIVE_MAXIMUM_EXCEEDED(0x93) 错误码断开连接,即使这时候 'awaiting_rel' 队列里面的报文 ID 已经过期了。