![]() |
MySQL 26.10.0
Source Code Documentation
|
#include "plugin/group_replication/libmysqlgcs/src/bindings/xcom/gcs_xcom_control_interface.h"#include "plugin/group_replication/libmysqlgcs/include/mysql/gcs/gcs_logging_system.h"#include "plugin/group_replication/libmysqlgcs/src/bindings/xcom/gcs_xcom_communication_interface.h"#include "plugin/group_replication/libmysqlgcs/src/bindings/xcom/gcs_xcom_group_member_information.h"#include "plugin/group_replication/libmysqlgcs/src/bindings/xcom/gcs_xcom_interface.h"#include "plugin/group_replication/libmysqlgcs/src/bindings/xcom/gcs_xcom_notification.h"#include "plugin/group_replication/libmysqlgcs/src/bindings/xcom/gcs_xcom_utils.h"#include "plugin/group_replication/libmysqlgcs/src/bindings/xcom/gcs_xcom_view_identifier.h"#include "plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/node_no.h"#include "plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/sock_probe.h"#include "plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/synode_no.h"#include "plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/xcom_cfg.h"#include "plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/xcom_scope_guard.h"#include <algorithm>#include <cassert>#include <iostream>#include <iterator>#include <list>Classes | |
| struct | Gcs_member_identifier_pointer_comparator |
Functions | |
| static void | set_terminate_suspicion_thread (bool val) |
| static bool | is_terminate_suspicion_thread () |
| static void * | suspicions_processing_thread (void *ptr) |
| static void * | xcom_taskmain_startup (void *ptr) |
| void | do_function_join (Gcs_control_interface *control_if) |
| static bool | skip_own_peer_address (std::string const &peer_address, int peer_port) |
| Check whether a peer endpoint should be skipped because it identifies this node itself. More... | |
| static bool | has_configured_xcom_identity () |
| Check whether an explicit XCom identity is currently configured. More... | |
| static bool | get_self_addresses (Gcs_sock_probe_interface &sock_probe_interface, int local_port, std::set< std::string > &self_addresses) |
| Prepare this node's cached self-addresses once for the join path. More... | |
| static bool | skip_own_peer_address (std::set< std::string > const &self_addresses, int local_port, std::string const &peer_address, int peer_port) |
| Check whether a peer endpoint should be skipped during join. More... | |
| static constexpr const char * | get_signaling_error () |
| static std::string | get_connection_test_error (const std::string &address, int port) |
| void | do_function_leave (Gcs_control_interface *control_if) |
Variables | |
| static const uint64_t | NON_MEMBER_EXPEL_TIMEOUT = 60 * 10000000 |
| static const unsigned int | SUSPICION_PROCESSING_THREAD_PERIOD = 15 |
| static bool | terminate_suspicion_thread = false |
| void do_function_join | ( | Gcs_control_interface * | control_if | ) |
| void do_function_leave | ( | Gcs_control_interface * | control_if | ) |
|
static |
|
static |
Prepare this node's cached self-addresses once for the join path.
This helper follows the configured-identity branch used by the patch:
The work is performed after switching to the configured network namespace, if any.
When the configured identity cannot be parsed, or its configured port does not match local_port, the helper returns with self_addresses still empty. When parsing succeeds but hostname resolution fails, the helper keeps the configured textual host/IP in self_addresses and simply omits any additional resolved aliases.
| [in] | sock_probe_interface | Interface used to enumerate local addresses when no XCom identity is configured. |
| [in] | local_port | Local XCom port for this join attempt. |
| [out] | self_addresses | Cached textual self-addresses for join-time own-peer filtering. |
| false | Self-address preparation completed. |
| true | Local-interface enumeration failed in the no-identity branch. |
|
staticconstexpr |
|
inlinestatic |
Check whether an explicit XCom identity is currently configured.
| true | XCom identity is configured and contains an address. |
| false | XCom identity is not configured or does not contain an address. |
|
static |
|
static |
|
static |
Check whether a peer endpoint should be skipped during join.
This preserves the pre-patch join behavior:
| [in] | self_addresses | Cached textual self-addresses for the current join attempt. |
| [in] | local_port | Local XCom port for this join attempt. |
| [in] | peer_address | Peer host/IP text to classify. |
| [in] | peer_port | Peer XCom port to classify. |
| true | The peer should be skipped either because it could not be resolved or because it matches this node itself. |
| false | The peer should not be skipped. |
|
static |
Check whether a peer endpoint should be skipped because it identifies this node itself.
This helper delegates the self-classification decision to xcom_mynode_match() using the peer host/IP and port.
| [in] | peer_address | The peer host or IP address to classify. |
| [in] | peer_port | The peer XCom port to classify. |
| true | The peer endpoint was classified as this node itself and should be skipped. |
| false | The peer endpoint was not classified as this node itself and should not be skipped. |
|
static |
|
static |
|
static |
|
static |
|
static |