The plan here is to use the nodemaps retrieved by get_remote_nodes()
in update_local_flags(). This will improve efficiency, since
get_remote_nodes() fetches flags from nodes in parallel. It also
means that get_remote_nodes() can be used exactly once early on in
main_loop() to retrieve remote nodemaps. Retrieving nodemaps multiple
times is unnecessary and racy - a single monitoring iteration should
not fetch flags multiple times and compare them.
This introduces a temporary behaviour change but it will be of no
consequence when the above changes are made.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=14466
Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
(cherry picked from commit
762d1d8a9605f97973a2c1176de5d29fcc61d15a)
return -1;
}
- nodes = list_of_active_nodes(ctdb, rec->nodemap, mem_ctx, true);
+ nodes = list_of_connected_nodes(ctdb, rec->nodemap, mem_ctx, true);
state.remote_nodemaps = t;
state.rec = rec;
goto takeover_run_checks;
}
- /* get the nodemap for all active remote nodes
- */
+ /* Get the nodemaps for all connected remote nodes */
ret = get_remote_nodemaps(rec, mem_ctx, &remote_nodemaps);
if (ret != 0) {
DBG_ERR("Failed to read remote nodemaps\n");