feat(mria_lb): add incompatibility reasons to custom compatibility check#181
feat(mria_lb): add incompatibility reasons to custom compatibility check#181SergeTupchiy wants to merge 1 commit intoemqx:mainfrom
Conversation
| @@ -190,6 +191,13 @@ do_update(State = #s{core_nodes = OldCoreNodes, node_info = OldNodeInfo}) -> | |||
| ping_new_nodes(NewCoreNodes, DiscoveredReplicants), | |||
There was a problem hiding this comment.
This makes a replicant a running member of the cluster, even though it has no compatible core node to connect to and, thus, is not fully initialized.
The node is returned from mria:running_nodes/0 and can be used in various RPCs at EMQX layer resulting in numerous levels.
Perhaps we should add some mria_membership status as connecting and don't include disconnected replicants to the running nodes list.
|
Sorry for late review, but it looks like mria protocol version should be bumped? |
|
I think this compatibility error can be checked and reported entirely in EMQX application code. No need to cross multiple API levels to report a warning. Since EMQX owns and implements the version check, there's nothing preventing it, architecture-wise, from making an RPC to check version of its peer. |
Fixes EMQX-12103