1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-08-01 06:46:55 +03:00

MCOL-537 Preprocessor if blocks with pragmas now have else branch.

DMLProc exits on setupCwd failure.
This commit is contained in:
Roman Nozdrin
2019-05-09 20:25:21 +03:00
parent b2436502cb
commit 3c89a4bba4
9 changed files with 75 additions and 24 deletions

View File

@ -492,17 +492,19 @@ void rollbackAll(DBRM* dbrm)
dbrm->setSystemReady(true);
}
void setupCwd()
int8_t setupCwd()
{
string workdir = startup::StartUp::tmpDir();
if (workdir.length() == 0)
workdir = ".";
(void)chdir(workdir.c_str());
int8_t rc = chdir(workdir.c_str());
if (access(".", W_OK) != 0)
(void)chdir("/tmp");
if (rc < 0 || access(".", W_OK) != 0)
rc = chdir("/tmp");
return rc;
}
} // Namewspace
@ -521,7 +523,18 @@ int main(int argc, char* argv[])
Config* cf = Config::makeConfig();
setupCwd();
if ( setupCwd() )
{
LoggingID logid(21, 0, 0);
logging::Message::Args args1;
logging::Message msg(1);
args1.add("DMLProc couldn't cwd.");
msg.format( args1 );
logging::Logger logger(logid.fSubsysID);
logger.logMessage(LOG_TYPE_CRITICAL, msg, logid);
return 1;
}
WriteEngine::WriteEngineWrapper::init( WriteEngine::SUBSYSTEM_ID_DMLPROC );
#ifdef _MSC_VER
@ -610,9 +623,20 @@ int main(int argc, char* argv[])
try
{
string port = cf->getConfig(DMLProc, "Port");
string cmd = "fuser -k " + port + "/tcp >/dev/null 2>&1";
string cmd = "fuser -k " + port + "/tcp >/dev/null 2>&1";
// Couldn't check the return code b/c
// fuser returns 1 for unused port.
#if defined(__GNUC__) && __GNUC__ >= 5
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-result"
(void)::system(cmd.c_str());
#pragma GCC diagnostic pop
#else
(void)::system(cmd.c_str());
#endif
}
catch (...)
{