1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-08-08 14:22:09 +03:00

Try not to create connection to WES if it was not enabled in the config

This commit is contained in:
Alexander Presnyakov
2025-04-07 00:08:53 +00:00
committed by Serguey Zefirov
parent 4f8418cea6
commit 1c324c42c5

View File

@@ -154,6 +154,22 @@ struct QueueShutdown
x.shutdown(); x.shutdown();
} }
}; };
/**
* This function checks if the WriteEngineServer (WES) is configured
* for the specified node in the configuration.
* @param config Pointer to the configuration object
* @param fOtherEnd The name of the node to check
* @return true if WES is configured, false otherwise
*/
bool isWESConfigured(config::Config* config, const std::string& fOtherEnd)
{
// Check if WES IP address record exists in the config (if not, this is a read-only node)
std::string otherEndDnOrIPStr = config->getConfig(fOtherEnd, "IPAddr");
return !(otherEndDnOrIPStr.empty() || otherEndDnOrIPStr == "unassigned");
}
} // namespace } // namespace
namespace WriteEngine namespace WriteEngine
@@ -224,6 +240,13 @@ void WEClients::Setup()
snprintf(buff, sizeof(buff), "pm%u_WriteEngineServer", moduleID); snprintf(buff, sizeof(buff), "pm%u_WriteEngineServer", moduleID);
string fServer(buff); string fServer(buff);
// Check if WES is configured for this module
if (!isWESConfigured(rm->getConfig(), fServer))
{
writeToLog(__FILE__, __LINE__, "Skipping WriteEngineServer client creation for " + fServer + " as the node is read-only", LOG_TYPE_INFO);
continue;
}
boost::shared_ptr<MessageQueueClient> cl(new MessageQueueClient(fServer, rm->getConfig())); boost::shared_ptr<MessageQueueClient> cl(new MessageQueueClient(fServer, rm->getConfig()));
boost::shared_ptr<boost::mutex> nl(new boost::mutex()); boost::shared_ptr<boost::mutex> nl(new boost::mutex());