chore: update changelog entry to include manual resolution steps

This commit is contained in:
Ivan Dyachkov 2024-03-25 12:00:06 +01:00
parent 0210f83f06
commit eb9e3aa9e6
1 changed files with 10 additions and 0 deletions

View File

@ -1,3 +1,13 @@
Fixed an issue which may occur when performing rolling upgrade, especially when upgrading from a version earlier than 5.4.0.
When the cluster is empty (more precisely, routing tables are empty), try to additionally ask the cluster nodes for the routing schema in use, to make more informed decision about routing storage schema upon startup. This should make routing storage schema less likely to diverge across cluster nodes, especially when the cluster is composed of different versions of EMQX.
In case you get the following message about broken routing during rolling upgrade: "There are records in the routing tables either related to both v1 and v2 storage schemas, or conflicting with storage schema assumed by the cluster. This probably means that some nodes in the cluster use v1 schema and some use v2, independently of each other. The routing is likely broken. Manual intervention and full cluster restart is required. This node will shut down.", please follow the steps below to resolve the issue.
1. Stop listeners on legacy nodes: `$ emqx eval 'emqx_listener:stop()'`
2. Wait until they are safe to restart.
This could take some time, depending on the number of clients and their subscriptions.
Those conditions should be true for both nodes in order to proceed:
* `$ emqx eval 'ets:info(emqx_subscriber, size)'` prints `0`.
* `$ emqx ctl topics list` prints `No topics.`
3. Upgrade the nodes to the latest version.
4. Restart the nodes.