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

clang format apply

This commit is contained in:
Leonid Fedorov
2022-01-21 16:43:49 +00:00
parent 6b6411229f
commit 04752ec546
1376 changed files with 393460 additions and 412662 deletions

View File

@@ -16,9 +16,9 @@
MA 02110-1301, USA. */
/*******************************************************************************
* $Id: we_server.cpp 4700 2013-07-08 16:43:49Z bpaul $
*
*******************************************************************************/
* $Id: we_server.cpp 4700 2013-07-08 16:43:49Z bpaul $
*
*******************************************************************************/
#include <unistd.h>
#include <iostream>
@@ -59,295 +59,280 @@ using namespace WriteEngine;
namespace
{
class Opt
{
public:
int m_debug;
bool m_fg;
Opt(int argc, char *argv[])
:m_debug(0),
m_fg(false)
public:
int m_debug;
bool m_fg;
Opt(int argc, char* argv[]) : m_debug(0), m_fg(false)
{
int c;
while ((c = getopt(argc, argv, "df")) != EOF)
{
int c;
while ((c = getopt(argc, argv, "df")) != EOF)
{
switch(c)
{
case 'd':
m_debug++;
break;
case 'f':
m_fg= true;
break;
case '?':
default:
break;
}
}
switch (c)
{
case 'd': m_debug++; break;
case 'f': m_fg = true; break;
case '?':
default: break;
}
}
}
};
class ServiceWriteEngine: public Service, public Opt
class ServiceWriteEngine : public Service, public Opt
{
void log(logging::LOG_TYPE type, const std::string &str)
{
logging::LoggingID logid(SUBSYSTEM_ID_WE_SRV);
logging::Message::Args args;
logging::Message msg(1);
args.add(str);
msg.format(args);
logging::Logger logger(logid.fSubsysID);
logger.logMessage(type, msg, logid);
}
int setupResources();
void setupChildSignalHandlers();
public:
ServiceWriteEngine(const Opt &opt)
:Service("WriteEngine"), Opt(opt)
{ }
void LogErrno() override
{
log(logging::LOG_TYPE_CRITICAL, strerror(errno));
}
void ParentLogChildMessage(const std::string &str) override
{
log(logging::LOG_TYPE_INFO, str);
}
int Child() override;
int Run() { return m_fg ? Child() : RunForking(); }
};
void log(logging::LOG_TYPE type, const std::string& str)
{
logging::LoggingID logid(SUBSYSTEM_ID_WE_SRV);
logging::Message::Args args;
logging::Message msg(1);
args.add(str);
msg.format(args);
logging::Logger logger(logid.fSubsysID);
logger.logMessage(type, msg, logid);
}
int setupResources();
void setupChildSignalHandlers();
public:
ServiceWriteEngine(const Opt& opt) : Service("WriteEngine"), Opt(opt)
{
}
void LogErrno() override
{
log(logging::LOG_TYPE_CRITICAL, strerror(errno));
}
void ParentLogChildMessage(const std::string& str) override
{
log(logging::LOG_TYPE_INFO, str);
}
int Child() override;
int Run()
{
return m_fg ? Child() : RunForking();
}
};
void added_a_pm(int)
{
logging::LoggingID logid(21, 0, 0);
logging::Message::Args args1;
logging::Message msg(1);
args1.add("we_server caught SIGHUP. Resetting connections");
msg.format( args1 );
logging::Logger logger(logid.fSubsysID);
logger.logMessage(logging::LOG_TYPE_DEBUG, msg, logid);
joblist::DistributedEngineComm::reset();
}
logging::LoggingID logid(21, 0, 0);
logging::Message::Args args1;
logging::Message msg(1);
args1.add("we_server caught SIGHUP. Resetting connections");
msg.format(args1);
logging::Logger logger(logid.fSubsysID);
logger.logMessage(logging::LOG_TYPE_DEBUG, msg, logid);
joblist::DistributedEngineComm::reset();
}
} // namespace
int ServiceWriteEngine::setupResources()
{
#ifndef _MSC_VER
struct rlimit rlim;
struct rlimit rlim;
if (getrlimit(RLIMIT_NOFILE, &rlim) != 0)
{
return -1;
}
if (getrlimit(RLIMIT_NOFILE, &rlim) != 0)
{
return -1;
}
rlim.rlim_cur = rlim.rlim_max = 65536;
rlim.rlim_cur = rlim.rlim_max = 65536;
if (setrlimit(RLIMIT_NOFILE, &rlim) != 0)
{
return -2;
}
if (setrlimit(RLIMIT_NOFILE, &rlim) != 0)
{
return -2;
}
if (getrlimit(RLIMIT_NOFILE, &rlim) != 0)
{
return -3;
}
if (getrlimit(RLIMIT_NOFILE, &rlim) != 0)
{
return -3;
}
if (rlim.rlim_cur != 65536)
{
return -4;
}
if (rlim.rlim_cur != 65536)
{
return -4;
}
#endif
return 0;
return 0;
}
void ServiceWriteEngine::setupChildSignalHandlers()
{
#ifndef _MSC_VER
struct sigaction sa;
memset(&sa, 0, sizeof(sa));
sa.sa_handler = added_a_pm;
sigaction(SIGHUP, &sa, 0);
sa.sa_handler = SIG_IGN;
sigaction(SIGPIPE, &sa, 0);
struct sigaction sa;
memset(&sa, 0, sizeof(sa));
sa.sa_handler = added_a_pm;
sigaction(SIGHUP, &sa, 0);
sa.sa_handler = SIG_IGN;
sigaction(SIGPIPE, &sa, 0);
memset(&sa, 0, sizeof(sa));
sa.sa_handler = fatalHandler;
sigaction(SIGSEGV, &sa, 0);
sigaction(SIGABRT, &sa, 0);
sigaction(SIGFPE, &sa, 0);
memset(&sa, 0, sizeof(sa));
sa.sa_handler = fatalHandler;
sigaction(SIGSEGV, &sa, 0);
sigaction(SIGABRT, &sa, 0);
sigaction(SIGFPE, &sa, 0);
#endif
}
int ServiceWriteEngine::Child()
{
setupChildSignalHandlers();
setupChildSignalHandlers();
// Init WriteEngine Wrapper (including Config Columnstore.xml cache)
WriteEngine::WriteEngineWrapper::init( WriteEngine::SUBSYSTEM_ID_WE_SRV );
// Init WriteEngine Wrapper (including Config Columnstore.xml cache)
WriteEngine::WriteEngineWrapper::init(WriteEngine::SUBSYSTEM_ID_WE_SRV);
#ifdef _MSC_VER
// In windows, initializing the wrapper (A dll) does not set the static variables
// in the main program
idbdatafile::IDBPolicy::configIDBPolicy();
// In windows, initializing the wrapper (A dll) does not set the static variables
// in the main program
idbdatafile::IDBPolicy::configIDBPolicy();
#endif
Config weConfig;
Config weConfig;
ostringstream serverParms;
serverParms << "pm" << weConfig.getLocalModuleID() << "_WriteEngineServer";
ostringstream serverParms;
serverParms << "pm" << weConfig.getLocalModuleID() << "_WriteEngineServer";
// Create MessageQueueServer, with one retry in case the call to bind the
// known port fails with "Address already in use".
boost::scoped_ptr<MessageQueueServer> mqs;
bool tellUser = true;
// Create MessageQueueServer, with one retry in case the call to bind the
// known port fails with "Address already in use".
boost::scoped_ptr<MessageQueueServer> mqs;
bool tellUser = true;
for (;;)
for (;;)
{
try
{
try
{
mqs.reset(new MessageQueueServer(serverParms.str()));
break;
}
// @bug4393 Error Handling for MessageQueueServer constructor exception
catch (runtime_error& re)
{
string what = re.what();
if (what.find("Address already in use") != string::npos)
{
if (tellUser)
{
cerr << "Address already in use, retrying..." << endl;
tellUser = false;
}
sleep(5);
}
else
{
// If/when a common logging class or function is added to the
// WriteEngineServer, we should use that. In the mean time,
// I will log this errmsg with inline calls to the logging.
logging::Message::Args args;
logging::Message message;
string errMsg("WriteEngineServer failed to initiate: ");
errMsg += what;
args.add( errMsg );
message.format(args);
logging::LoggingID lid(SUBSYSTEM_ID_WE_SRV);
logging::MessageLog ml(lid);
ml.logCriticalMessage( message );
NotifyServiceInitializationFailed();
return 2;
}
}
mqs.reset(new MessageQueueServer(serverParms.str()));
break;
}
int err = 0;
if (!m_debug)
err = setupResources();
string errMsg;
switch (err)
// @bug4393 Error Handling for MessageQueueServer constructor exception
catch (runtime_error& re)
{
case -1:
case -3:
errMsg = "Error getting file limits, please see non-root install documentation";
break;
string what = re.what();
case -2:
errMsg = "Error setting file limits, please see non-root install documentation";
break;
if (what.find("Address already in use") != string::npos)
{
if (tellUser)
{
cerr << "Address already in use, retrying..." << endl;
tellUser = false;
}
case -4:
errMsg = "Could not install file limits to required value, please see non-root install documentation";
break;
default:
break;
}
if (err < 0)
{
Oam oam;
sleep(5);
}
else
{
// If/when a common logging class or function is added to the
// WriteEngineServer, we should use that. In the mean time,
// I will log this errmsg with inline calls to the logging.
logging::Message::Args args;
logging::Message message;
args.add( errMsg );
string errMsg("WriteEngineServer failed to initiate: ");
errMsg += what;
args.add(errMsg);
message.format(args);
logging::LoggingID lid(SUBSYSTEM_ID_WE_SRV);
logging::MessageLog ml(lid);
ml.logCriticalMessage( message );
cerr << errMsg << endl;
ml.logCriticalMessage(message);
NotifyServiceInitializationFailed();
return 2;
}
}
}
int err = 0;
if (!m_debug)
err = setupResources();
string errMsg;
IOSocket ios;
size_t mt = 20;
size_t qs = mt * 100;
ThreadPool tp(mt, qs);
switch (err)
{
case -1:
case -3: errMsg = "Error getting file limits, please see non-root install documentation"; break;
cout << "WriteEngineServer is ready" << endl;
NotifyServiceStarted();
case -2: errMsg = "Error setting file limits, please see non-root install documentation"; break;
BRM::DBRM dbrm;
case -4:
errMsg = "Could not install file limits to required value, please see non-root install documentation";
break;
for (;;)
default: break;
}
if (err < 0)
{
Oam oam;
logging::Message::Args args;
logging::Message message;
args.add(errMsg);
message.format(args);
logging::LoggingID lid(SUBSYSTEM_ID_WE_SRV);
logging::MessageLog ml(lid);
ml.logCriticalMessage(message);
cerr << errMsg << endl;
NotifyServiceInitializationFailed();
return 2;
}
IOSocket ios;
size_t mt = 20;
size_t qs = mt * 100;
ThreadPool tp(mt, qs);
cout << "WriteEngineServer is ready" << endl;
NotifyServiceStarted();
BRM::DBRM dbrm;
for (;;)
{
try // BUG 4834 -
{
try // BUG 4834 -
{
ios = mqs->accept();
//tp.invoke(ReadThread(ios));
ReadThreadFactory::CreateReadThread(tp, ios, dbrm);
{
/* logging::Message::Args args;
logging::Message message;
string aMsg("WriteEngineServer : New incoming connection");
args.add(aMsg);
message.format(args);
logging::LoggingID lid(SUBSYSTEM_ID_WE_SRV);
logging::MessageLog ml(lid);
ml.logInfoMessage( message ); */
}
}
catch (std::exception& ex) // BUG 4834 - log the exception
{
logging::Message::Args args;
logging::Message message;
string errMsg("WriteEngineServer : Exception caught on accept(): ");
errMsg += ex.what();
args.add( errMsg );
message.format(args);
logging::LoggingID lid(SUBSYSTEM_ID_WE_SRV);
logging::MessageLog ml(lid);
ml.logCriticalMessage( message );
break;
}
ios = mqs->accept();
// tp.invoke(ReadThread(ios));
ReadThreadFactory::CreateReadThread(tp, ios, dbrm);
{
/* logging::Message::Args args;
logging::Message message;
string aMsg("WriteEngineServer : New incoming connection");
args.add(aMsg);
message.format(args);
logging::LoggingID lid(SUBSYSTEM_ID_WE_SRV);
logging::MessageLog ml(lid);
ml.logInfoMessage( message ); */
}
}
catch (std::exception& ex) // BUG 4834 - log the exception
{
logging::Message::Args args;
logging::Message message;
string errMsg("WriteEngineServer : Exception caught on accept(): ");
errMsg += ex.what();
args.add(errMsg);
message.format(args);
logging::LoggingID lid(SUBSYSTEM_ID_WE_SRV);
logging::MessageLog ml(lid);
ml.logCriticalMessage(message);
break;
}
}
//It is an error to reach here...
return 1;
// It is an error to reach here...
return 1;
}
int main(int argc, char** argv)
{
Opt opt(argc, argv);
Opt opt(argc, argv);
// Set locale language
setlocale(LC_ALL, "");
setlocale(LC_NUMERIC, "C");
// This is unset due to the way we start it
program_invocation_short_name = const_cast<char*>("WriteEngineServ");
// Initialize the charset library
MY_INIT(argv[0]);
// Set locale language
setlocale(LC_ALL, "");
setlocale(LC_NUMERIC, "C");
// This is unset due to the way we start it
program_invocation_short_name = const_cast<char*>("WriteEngineServ");
// Initialize the charset library
MY_INIT(argv[0]);
return ServiceWriteEngine(opt).Run();
return ServiceWriteEngine(opt).Run();
}