From 9dc33c4e8279628f424c8d5fef43f19ee4014610 Mon Sep 17 00:00:00 2001 From: Roman Nozdrin Date: Fri, 30 Nov 2018 13:24:58 +0300 Subject: [PATCH] Another try to cope with warnings under gcc 8.2. --- dbcon/dmlpackage/dml-scan.sh | 4 +-- dbcon/execplan/treenode.h | 6 +++-- dbcon/joblist/pdictionaryscan.cpp | 9 ++++--- dbcon/mysql/ha_calpont_execplan.cpp | 2 +- dbcon/mysql/ha_calpont_impl.cpp | 4 +-- dbcon/mysql/is_columnstore_files.cpp | 9 ++++--- oam/oamcpp/liboamcpp.cpp | 14 +++------- oamapps/alarmmanager/alarmmanager.cpp | 6 ++--- oamapps/mcsadmin/mcsadmin.cpp | 1 - oamapps/postConfigure/postConfigure.cpp | 20 +++++++------- oamapps/serverMonitor/cpuMonitor.cpp | 3 ++- oamapps/serverMonitor/msgProcessor.cpp | 4 +-- primitives/blockcache/filebuffer.cpp | 5 +++- primitives/linux-port/column.cpp | 3 ++- primitives/linux-port/dictionary.cpp | 16 +++++++++--- .../primproc/batchprimitiveprocessor.cpp | 18 ++++++++----- procmgr/processmanager.cpp | 26 ++++++++++--------- procmon/processmonitor.cpp | 4 +-- tools/configMgt/autoInstaller.cpp | 4 +-- utils/cacheutils/cacheutils.cpp | 6 +++-- utils/dataconvert/dataconvert.cpp | 9 ++++--- utils/funcexp/func_insert.cpp | 2 ++ utils/funcexp/func_lpad.cpp | 2 -- utils/funcexp/func_md5.cpp | 4 ++- utils/funcexp/func_repeat.cpp | 2 +- utils/funcexp/func_substring_index.cpp | 2 +- utils/idbdatafile/PosixFileSystem.cpp | 2 +- utils/threadpool/threadpool.h | 4 +-- versioning/BRM/extentmap.cpp | 6 +++-- versioning/BRM/mastersegmenttable.cpp | 3 ++- writeengine/dictionary/we_dctnry.cpp | 10 ++++--- writeengine/server/we_ddlcommandproc.cpp | 6 +++-- writeengine/shared/we_fileop.cpp | 20 +++++++++----- writeengine/shared/we_index.h | 2 +- writeengine/shared/we_type.h | 2 +- writeengine/splitter/we_filereadthread.cpp | 2 +- writeengine/wrapper/we_colop.cpp | 3 ++- 37 files changed, 145 insertions(+), 100 deletions(-) diff --git a/dbcon/dmlpackage/dml-scan.sh b/dbcon/dmlpackage/dml-scan.sh index 33299e477..1daa312cf 100755 --- a/dbcon/dmlpackage/dml-scan.sh +++ b/dbcon/dmlpackage/dml-scan.sh @@ -5,10 +5,10 @@ set +e; \ if [ -f dml-scan.cpp ]; \ then diff -abBq dml-scan-temp.cpp dml-scan.cpp >/dev/null 2>&1; \ - if [ $$? -ne 0 ]; \ + if [ $? -ne 0 ]; \ then mv -f dml-scan-temp.cpp dml-scan.cpp; \ else touch dml-scan.cpp; \ fi; \ else mv -f dml-scan-temp.cpp dml-scan.cpp; \ fi - rm -f dml-scan-temp.cpp \ No newline at end of file + rm -f dml-scan-temp.cpp diff --git a/dbcon/execplan/treenode.h b/dbcon/execplan/treenode.h index 91ceb2a11..6a49fa16f 100644 --- a/dbcon/execplan/treenode.h +++ b/dbcon/execplan/treenode.h @@ -1139,7 +1139,9 @@ inline int64_t TreeNode::getDatetimeIntVal() dataconvert::Time tt; int day = 0; - memcpy(&tt, &fResult.intVal, 8); + void *ttp = static_cast(&tt); + + memcpy(ttp, &fResult.intVal, 8); // Note, this should probably be current date +/- time if ((tt.hour > 23) && (!tt.is_neg)) @@ -1169,7 +1171,7 @@ inline int64_t TreeNode::getTimeIntVal() { dataconvert::DateTime dt; - memcpy(&dt, &fResult.intVal, 8); + memcpy((int64_t*)(&dt), &fResult.intVal, 8); dataconvert::Time tt(0, dt.hour, dt.minute, dt.second, dt.msecond, false); memcpy(&fResult.intVal, &tt, 8); return fResult.intVal; diff --git a/dbcon/joblist/pdictionaryscan.cpp b/dbcon/joblist/pdictionaryscan.cpp index 6c1b7cecd..b8545b728 100644 --- a/dbcon/joblist/pdictionaryscan.cpp +++ b/dbcon/joblist/pdictionaryscan.cpp @@ -483,7 +483,8 @@ void pDictionaryScan::sendAPrimitiveMessage( ) { DictTokenByScanRequestHeader hdr; - memset(&hdr, 0, sizeof(hdr)); + void *hdrp = static_cast(&hdr); + memset(hdrp, 0, sizeof(hdr)); hdr.ism.Interleave = pm; hdr.ism.Flags = planFlagsToPrimFlags(fTraceFlags); @@ -913,7 +914,8 @@ void pDictionaryScan::serializeEqualityFilter() uint32_t i; vector empty; - memset(&ism, 0, sizeof(ISMPacketHeader)); + void *ismp = static_cast(&ism); + memset(ismp, 0, sizeof(ISMPacketHeader)); ism.Command = DICT_CREATE_EQUALITY_FILTER; msg.load((uint8_t*) &ism, sizeof(ISMPacketHeader)); msg << uniqueID; @@ -954,7 +956,8 @@ void pDictionaryScan::destroyEqualityFilter() ByteStream msg; ISMPacketHeader ism; - memset(&ism, 0, sizeof(ISMPacketHeader)); + void *ismp = static_cast(&ism); + memset(ismp, 0, sizeof(ISMPacketHeader)); ism.Command = DICT_DESTROY_EQUALITY_FILTER; msg.load((uint8_t*) &ism, sizeof(ISMPacketHeader)); msg << uniqueID; diff --git a/dbcon/mysql/ha_calpont_execplan.cpp b/dbcon/mysql/ha_calpont_execplan.cpp index 7b33f4318..65d0ac4a6 100644 --- a/dbcon/mysql/ha_calpont_execplan.cpp +++ b/dbcon/mysql/ha_calpont_execplan.cpp @@ -4684,7 +4684,7 @@ ReturnedColumn* buildAggregateColumn(Item* item, gp_walk_info& gwi) } } } - catch (std::logic_error e) + catch (std::logic_error &e) { gwi.fatalParseError = true; gwi.parseErrorText = "error building Aggregate Function: "; diff --git a/dbcon/mysql/ha_calpont_impl.cpp b/dbcon/mysql/ha_calpont_impl.cpp index 7dffcd36f..1d8f5b385 100644 --- a/dbcon/mysql/ha_calpont_impl.cpp +++ b/dbcon/mysql/ha_calpont_impl.cpp @@ -2856,7 +2856,7 @@ int ha_calpont_impl_rnd_init(TABLE* table) //check whether the system is ready to process statement. #ifndef _MSC_VER static DBRM dbrm(true); - bool bSystemQueryReady = dbrm.getSystemQueryReady(); + int bSystemQueryReady = dbrm.getSystemQueryReady(); if (bSystemQueryReady == 0) { @@ -5140,7 +5140,7 @@ int ha_calpont_impl_group_by_init(ha_calpont_group_by_handler* group_hand, TABLE //check whether the system is ready to process statement. #ifndef _MSC_VER static DBRM dbrm(true); - bool bSystemQueryReady = dbrm.getSystemQueryReady(); + int bSystemQueryReady = dbrm.getSystemQueryReady(); if (bSystemQueryReady == 0) { diff --git a/dbcon/mysql/is_columnstore_files.cpp b/dbcon/mysql/is_columnstore_files.cpp index 2ce7b1996..9bca1de21 100644 --- a/dbcon/mysql/is_columnstore_files.cpp +++ b/dbcon/mysql/is_columnstore_files.cpp @@ -100,6 +100,7 @@ static int generate_result(BRM::OID_t oid, BRM::DBRM* emp, TABLE* table, THD* th messageqcpp::MessageQueueClient* msgQueueClient; oam::Oam oam_instance; int pmId = 0; + int rc; emp->getExtents(oid, entries, false, false, true); @@ -121,7 +122,7 @@ static int generate_result(BRM::OID_t oid, BRM::DBRM* emp, TABLE* table, THD* th { oam_instance.getDbrootPmConfig(iter->dbRoot, pmId); } - catch (std::runtime_error) + catch (std::runtime_error&) { // MCOL-1116: If we are here a DBRoot is offline/missing iter++; @@ -137,14 +138,16 @@ static int generate_result(BRM::OID_t oid, BRM::DBRM* emp, TABLE* table, THD* th DbRootName << "DBRoot" << iter->dbRoot; std::string DbRootPath = config->getConfig("SystemConfig", DbRootName.str()); fileSize = compressedFileSize = 0; - snprintf(fullFileName, WriteEngine::FILE_NAME_SIZE, "%s/%s", DbRootPath.c_str(), oidDirName); + rc = snprintf(fullFileName, WriteEngine::FILE_NAME_SIZE, "%s/%s", DbRootPath.c_str(), oidDirName); std::ostringstream oss; oss << "pm" << pmId << "_WriteEngineServer"; std::string client = oss.str(); msgQueueClient = messageqcpp::MessageQueueClientPool::getInstance(oss.str()); - if (!get_file_sizes(msgQueueClient, fullFileName, &fileSize, &compressedFileSize)) + // snprintf output truncation check + if (rc == WriteEngine::FILE_NAME_SIZE || + !get_file_sizes(msgQueueClient, fullFileName, &fileSize, &compressedFileSize)) { messageqcpp::MessageQueueClientPool::releaseInstance(msgQueueClient); delete emp; diff --git a/oam/oamcpp/liboamcpp.cpp b/oam/oamcpp/liboamcpp.cpp index 3ce191a6e..927250cfc 100644 --- a/oam/oamcpp/liboamcpp.cpp +++ b/oam/oamcpp/liboamcpp.cpp @@ -159,7 +159,9 @@ Oam::Oam() userDir = USER; if ( USER != "root") + { userDir = "home/" + USER; + } tmpdir = startup::StartUp::tmpDir(); @@ -2901,8 +2903,6 @@ oamModuleInfo_t Oam::getModuleInfo() // Get Server Type Install ID serverTypeInstall = atoi(sysConfig->getConfig("Installation", "ServerTypeInstall").c_str()); - - sysConfig; } catch (...) {} @@ -8563,9 +8563,6 @@ std::string Oam::createEC2Volume(std::string size, std::string name) oldFile.close(); - if ( volumeName == "unknown" ) - return "failed"; - if ( volumeName == "unknown" ) return "failed"; @@ -10470,11 +10467,8 @@ void Oam::sendStatusUpdate(ByteStream obs, ByteStream::byte returnRequestType) if (ibs.length() > 0) { ibs >> returnRequestType; - if ( returnRequestType == returnRequestType ) - { - processor.shutdown(); - return; - } + processor.shutdown(); + return; } else { diff --git a/oamapps/alarmmanager/alarmmanager.cpp b/oamapps/alarmmanager/alarmmanager.cpp index c6f008859..2d057944c 100644 --- a/oamapps/alarmmanager/alarmmanager.cpp +++ b/oamapps/alarmmanager/alarmmanager.cpp @@ -484,10 +484,10 @@ void ALARMManager::sendAlarmReport (const char* componentID, int alarmID, int st else processName = repProcessName; - ByteStream msg1; +ByteStream msg1; - // setup message - msg1 << (ByteStream::byte) alarmID; +// setup message +msg1 << (ByteStream::byte) alarmID; msg1 << (std::string) componentID; msg1 << (ByteStream::byte) state; msg1 << (std::string) ModuleName; diff --git a/oamapps/mcsadmin/mcsadmin.cpp b/oamapps/mcsadmin/mcsadmin.cpp index d07c67ffb..02a77f56a 100644 --- a/oamapps/mcsadmin/mcsadmin.cpp +++ b/oamapps/mcsadmin/mcsadmin.cpp @@ -5904,7 +5904,6 @@ int processCommand(string* arguments) int moduleID = 1; inputNames::const_iterator listPT1 = inputnames.begin(); - umStorageNames::const_iterator listPT2 = umstoragenames.begin(); for ( int i = 0 ; i < moduleCount ; i++ ) { diff --git a/oamapps/postConfigure/postConfigure.cpp b/oamapps/postConfigure/postConfigure.cpp index fdfc1482c..0cacf4cd4 100644 --- a/oamapps/postConfigure/postConfigure.cpp +++ b/oamapps/postConfigure/postConfigure.cpp @@ -272,9 +272,7 @@ int main(int argc, char* argv[]) //check if root-user int user; - int usergroup; user = getuid(); - usergroup = getgid(); string SUDO = ""; if (user != 0) @@ -1412,7 +1410,7 @@ int main(int argc, char* argv[]) { string amazonLog = tmpDir + "/amazon.log"; string cmd = "aws --version > " + amazonLog + " 2>&1"; - int rtnCode = system(cmd.c_str()); + system(cmd.c_str()); ifstream in(amazonLog.c_str()); @@ -1973,7 +1971,7 @@ int main(int argc, char* argv[]) } } - unsigned int maxPMNicCount = 1; + int maxPMNicCount = 1; //configure module type bool parentOAMmoduleConfig = false; @@ -2110,7 +2108,7 @@ int main(int argc, char* argv[]) //clear any Equipped Module IP addresses that aren't in current ID range for ( int j = 0 ; j < listSize ; j++ ) { - for ( unsigned int k = 1 ; k < MaxNicID+1 ; k++) + for ( int k = 1 ; k < MaxNicID+1 ; k++) { string ModuleIPAddr = "ModuleIPAddr" + oam.itoa(j + 1) + "-" + oam.itoa(k) + "-" + oam.itoa(i + 1); @@ -2184,8 +2182,7 @@ int main(int argc, char* argv[]) } } } - - unsigned int nicID=1; + int nicID=1; for( ; nicID < MaxNicID +1 ; nicID++ ) { if ( !found ) @@ -3546,7 +3543,7 @@ int main(int argc, char* argv[]) for ( int pmsID = 1; pmsID < pmPorts + 1 ; ) { - for (unsigned int j = 1 ; j < maxPMNicCount + 1 ; j++) + for (int j = 1 ; j < maxPMNicCount + 1 ; j++) { PerformanceModuleList::iterator list1 = performancemodulelist.begin(); @@ -4007,9 +4004,11 @@ int main(int argc, char* argv[]) break; } - if ( pass1 == "exit") + if ( strncmp(pass1, "exit", 4) ) + { exit(0); - + } + string p1 = pass1; pass2 = getpass("Confirm password > "); string p2 = pass2; @@ -6417,7 +6416,6 @@ bool glusterSetup(string password, bool doNotResolveHostNames) Oam oam; int dataRedundancyCopies = 0; int dataRedundancyNetwork = 0; - int dataRedundancyStorage = 0; int numberDBRootsPerPM = DBRootCount / pmNumber; int numberBricksPM = 0; std::vector dbrootPms[DBRootCount]; diff --git a/oamapps/serverMonitor/cpuMonitor.cpp b/oamapps/serverMonitor/cpuMonitor.cpp index c9d458a4f..1f1d6b3b3 100644 --- a/oamapps/serverMonitor/cpuMonitor.cpp +++ b/oamapps/serverMonitor/cpuMonitor.cpp @@ -569,7 +569,8 @@ void ServerMonitor::getCPUdata() while (oldFile.getline(line, 400)) { string buf = line; - string::size_type pos = buf.find ('id,', 0); + // Questionable replacement + string::size_type pos = buf.find("id,", 0); if (pos == string::npos) { systemIdle = systemIdle + atol(buf.substr(0, pos - 1).c_str()); diff --git a/oamapps/serverMonitor/msgProcessor.cpp b/oamapps/serverMonitor/msgProcessor.cpp index 48bfaa2f0..1c7b928ee 100644 --- a/oamapps/serverMonitor/msgProcessor.cpp +++ b/oamapps/serverMonitor/msgProcessor.cpp @@ -100,8 +100,8 @@ void msgProcessor() Config* sysConfig = Config::makeConfig(); string port = sysConfig->getConfig(msgPort, "Port"); string cmd = "fuser -k " + port + "/tcp >/dev/null 2>&1"; - int user; - user = getuid(); + //int user; + //user = getuid(); system(cmd.c_str()); } diff --git a/primitives/blockcache/filebuffer.cpp b/primitives/blockcache/filebuffer.cpp index 5ac6ee466..aa598c008 100644 --- a/primitives/blockcache/filebuffer.cpp +++ b/primitives/blockcache/filebuffer.cpp @@ -40,7 +40,10 @@ FileBuffer::FileBuffer() : fDataLen(0), fLbid(-1), fVerid(0) FileBuffer::FileBuffer(const FileBuffer& rhs) { - if (this == NULL || this == &rhs) + // Removed the check for gcc 8.2. The latest gcc version we + // use ATM is 4.8.2 for centos 6 and it also doesn't need + // the check + if (this == &rhs) return; fLbid = rhs.fLbid; diff --git a/primitives/linux-port/column.cpp b/primitives/linux-port/column.cpp index 2b4450d2c..5722aef5d 100644 --- a/primitives/linux-port/column.cpp +++ b/primitives/linux-port/column.cpp @@ -1421,7 +1421,8 @@ namespace primitives void PrimitiveProcessor::p_Col(NewColRequestHeader* in, NewColResultHeader* out, unsigned outSize, unsigned* written) { - memcpy(out, in, sizeof(ISMPacketHeader) + sizeof(PrimitiveHeader)); + void *outp = static_cast(out); + memcpy(outp, in, sizeof(ISMPacketHeader) + sizeof(PrimitiveHeader)); out->NVALS = 0; out->LBID = in->LBID; out->ism.Command = COL_RESULTS; diff --git a/primitives/linux-port/dictionary.cpp b/primitives/linux-port/dictionary.cpp index 2860ab571..e5a334436 100644 --- a/primitives/linux-port/dictionary.cpp +++ b/primitives/linux-port/dictionary.cpp @@ -127,7 +127,11 @@ void PrimitiveProcessor::p_TokenByScan(const TokenByScanRequestHeader* h, retTokens = reinterpret_cast(&niceRet[rdvOffset]); retDataValues = reinterpret_cast(&niceRet[rdvOffset]); - memcpy(ret, h, sizeof(PrimitiveHeader) + sizeof(ISMPacketHeader)); + + { + void *retp = static_cast(ret); + memcpy(retp, h, sizeof(PrimitiveHeader) + sizeof(ISMPacketHeader)); + } ret->NVALS = 0; ret->NBYTES = sizeof(TokenByScanResultHeader); ret->ism.Command = DICT_SCAN_COMPARE_RESULTS; @@ -575,7 +579,10 @@ void PrimitiveProcessor::p_AggregateSignature(const AggregateSignatureRequestHea DataValue* min; DataValue* max; - memcpy(out, in, sizeof(ISMPacketHeader) + sizeof(PrimitiveHeader)); + { + void *outp = static_cast(out); + memcpy(outp, in, sizeof(ISMPacketHeader) + sizeof(PrimitiveHeader)); + } out->ism.Command = DICT_AGGREGATE_RESULTS; niceOutput = reinterpret_cast(out); @@ -824,7 +831,10 @@ void PrimitiveProcessor::p_Dictionary(const DictInput* in, vector* out, in8 = reinterpret_cast(in); - memcpy(&header, in, sizeof(ISMPacketHeader) + sizeof(PrimitiveHeader)); + { + void *hp = static_cast(&header); + memcpy(hp, in, sizeof(ISMPacketHeader) + sizeof(PrimitiveHeader)); + } header.ism.Command = DICT_RESULTS; header.NVALS = 0; header.LBID = in->LBID; diff --git a/primitives/primproc/batchprimitiveprocessor.cpp b/primitives/primproc/batchprimitiveprocessor.cpp index 752c94d9e..bf34e9cb4 100644 --- a/primitives/primproc/batchprimitiveprocessor.cpp +++ b/primitives/primproc/batchprimitiveprocessor.cpp @@ -1774,8 +1774,10 @@ void BatchPrimitiveProcessor::writeErrorMsg(const string& error, uint16_t errCod // we don't need every field of these headers. Init'ing them anyway // makes memory checkers happy. - memset(&ism, 0, sizeof(ISMPacketHeader)); - memset(&ph, 0, sizeof(PrimitiveHeader)); + void *ismp = static_cast(&ism); + void *php = static_cast(&ph); + memset(ismp, 0, sizeof(ISMPacketHeader)); + memset(php, 0, sizeof(PrimitiveHeader)); ph.SessionID = sessionID; ph.StepID = stepID; ph.UniqueID = uniqueID; @@ -1800,8 +1802,10 @@ void BatchPrimitiveProcessor::writeProjectionPreamble() // we don't need every field of these headers. Init'ing them anyway // makes memory checkers happy. - memset(&ism, 0, sizeof(ISMPacketHeader)); - memset(&ph, 0, sizeof(PrimitiveHeader)); + void *ismp = static_cast(&ism); + void *php = static_cast(&ph); + memset(ismp, 0, sizeof(ISMPacketHeader)); + memset(php, 0, sizeof(PrimitiveHeader)); ph.SessionID = sessionID; ph.StepID = stepID; ph.UniqueID = uniqueID; @@ -1899,8 +1903,10 @@ void BatchPrimitiveProcessor::makeResponse() // we don't need every field of these headers. Init'ing them anyway // makes memory checkers happy. - memset(&ism, 0, sizeof(ISMPacketHeader)); - memset(&ph, 0, sizeof(PrimitiveHeader)); + void *ismp = static_cast(&ism); + void *php = static_cast(&ph); + memset(ismp, 0, sizeof(ISMPacketHeader)); + memset(php, 0, sizeof(PrimitiveHeader)); ph.SessionID = sessionID; ph.StepID = stepID; ph.UniqueID = uniqueID; diff --git a/procmgr/processmanager.cpp b/procmgr/processmanager.cpp index 686243f87..f05a7dcbf 100644 --- a/procmgr/processmanager.cpp +++ b/procmgr/processmanager.cpp @@ -1377,7 +1377,7 @@ void processMSG(messageqcpp::IOSocket* cfIos) // all transactions to finish or rollback as commanded. This is only set if // there are, in fact, transactions active (or cpimport). - int retStatus = oam::API_SUCCESS; + //int retStatus = oam::API_SUCCESS; if (HDFS) { @@ -1458,7 +1458,7 @@ void processMSG(messageqcpp::IOSocket* cfIos) if (opState == oam::MAN_DISABLED || opState == oam::AUTO_DISABLED) continue; - retStatus = processManager.shutdownModule((*pt).DeviceName, graceful, manualFlag, 0); + processManager.shutdownModule((*pt).DeviceName, graceful, manualFlag, 0); } } } @@ -3735,8 +3735,9 @@ int ProcessManager::disableModule(string target, bool manualFlag) //Update DBRM section of Columnstore.xml if ( updateWorkerNodeconfig() != API_SUCCESS ) + { return API_FAILURE; - + } processManager.recycleProcess(target); //check for SIMPLEX Processes on mate might need to be started @@ -5144,7 +5145,7 @@ int ProcessManager::addModule(oam::DeviceNetworkList devicenetworklist, std::str string loginTmp = tmpLogDir + "/login_test.log"; string cmd = installDir + "/bin/remote_command.sh " + IPAddr + " " + password + " 'ls' 1 > " + loginTmp; - int rtnCode = system(cmd.c_str()); + system(cmd.c_str()); if (!oam.checkLogStatus(loginTmp, "README")) { //check for RSA KEY ISSUE and fix @@ -7728,7 +7729,8 @@ void startSystemThread(oam::DeviceNetworkList Devicenetworklist) sleep(2); } - if ( rtn = oam::ACTIVE ) + // This was logical error and possible source of many problems. + if ( rtn == oam::ACTIVE ) //set query system state not ready processManager.setQuerySystemState(true); @@ -7869,8 +7871,8 @@ void stopSystemThread(oam::DeviceNetworkList Devicenetworklist) SystemModuleTypeConfig systemmoduletypeconfig; ALARMManager aManager; int status = API_SUCCESS; - bool exitThread = false; - int exitThreadStatus = oam::API_SUCCESS; + //bool exitThread = false; + //int exitThreadStatus = oam::API_SUCCESS; pthread_t ThreadId; ThreadId = pthread_self(); @@ -7887,16 +7889,16 @@ void stopSystemThread(oam::DeviceNetworkList Devicenetworklist) log.writeLog(__LINE__, "EXCEPTION ERROR on getSystemConfig: " + error, LOG_TYPE_ERROR); stopsystemthreadStatus = oam::API_FAILURE; processManager.setSystemState(oam::FAILED); - exitThread = true; - exitThreadStatus = oam::API_FAILURE; + //exitThread = true; + //exitThreadStatus = oam::API_FAILURE; } catch (...) { log.writeLog(__LINE__, "EXCEPTION ERROR on getSystemConfig: Caught unknown exception!", LOG_TYPE_ERROR); stopsystemthreadStatus = oam::API_FAILURE; processManager.setSystemState(oam::FAILED); - exitThread = true; - exitThreadStatus = oam::API_FAILURE; + //exitThread = true; + //exitThreadStatus = oam::API_FAILURE; } if ( devicenetworklist.size() != 0 ) @@ -7920,7 +7922,7 @@ void stopSystemThread(oam::DeviceNetworkList Devicenetworklist) try { int opState; - bool degraded = oam::ACTIVE; + bool degraded; oam.getModuleStatus(moduleName, opState, degraded); if (opState == oam::MAN_DISABLED || opState == oam::AUTO_DISABLED) diff --git a/procmon/processmonitor.cpp b/procmon/processmonitor.cpp index 9a8f4b8cd..f22be1b87 100644 --- a/procmon/processmonitor.cpp +++ b/procmon/processmonitor.cpp @@ -1497,7 +1497,6 @@ void ProcessMonitor::processMessage(messageqcpp::ByteStream msg, messageqcpp::IO string configureModuleName; msg >> configureModuleName; - uint16_t rtnCode; int requestStatus = API_SUCCESS; configureModule(configureModuleName); @@ -2220,7 +2219,8 @@ pid_t ProcessMonitor::startProcess(string processModuleType, string processName, string RunType, string DepProcessName[MAXDEPENDANCY], string DepModuleName[MAXDEPENDANCY], string LogFile, uint16_t initType, uint16_t actIndicator) { - pid_t newProcessID; + // Compiler complains about non-initialiased variable here. + pid_t newProcessID = 0; char* argList[MAXARGUMENTS]; unsigned int i = 0; MonitorLog log; diff --git a/tools/configMgt/autoInstaller.cpp b/tools/configMgt/autoInstaller.cpp index 15ac98c33..31623b73f 100644 --- a/tools/configMgt/autoInstaller.cpp +++ b/tools/configMgt/autoInstaller.cpp @@ -636,7 +636,7 @@ int main(int argc, char* argv[]) // Columnstore.xml found //try to parse it - Config* sysConfigOld; + //Config* sysConfigOld; ofstream file("/dev/null"); @@ -648,7 +648,7 @@ int main(int argc, char* argv[]) // redirect cout to /dev/null cerr.rdbuf(file.rdbuf()); - sysConfigOld = Config::makeConfig( systemDir + "/Columnstore.xml"); + //sysConfigOld = Config::makeConfig( systemDir + "/Columnstore.xml"); // restore cout stream buffer cerr.rdbuf (strm_buffer); diff --git a/utils/cacheutils/cacheutils.cpp b/utils/cacheutils/cacheutils.cpp index 99944ec7f..ca56e2da0 100644 --- a/utils/cacheutils/cacheutils.cpp +++ b/utils/cacheutils/cacheutils.cpp @@ -258,7 +258,8 @@ int flushOIDsFromCache(const vector& oids) ISMPacketHeader ism; uint32_t i; - memset(&ism, 0, sizeof(ISMPacketHeader)); + void *ismp = static_cast(&ism); + memset(ismp, 0, sizeof(ISMPacketHeader)); ism.Command = CACHE_FLUSH_BY_OID; bs.load((uint8_t*) &ism, sizeof(ISMPacketHeader)); bs << (uint32_t) oids.size(); @@ -285,7 +286,8 @@ int flushPartition(const std::vector& oids, set(&ism); + memset(ismp, 0, sizeof(ISMPacketHeader)); ism.Command = CACHE_FLUSH_PARTITION; bs.load((uint8_t*) &ism, sizeof(ISMPacketHeader)); serializeSet(bs, partitionNums); diff --git a/utils/dataconvert/dataconvert.cpp b/utils/dataconvert/dataconvert.cpp index 343227430..a2e3aaa47 100644 --- a/utils/dataconvert/dataconvert.cpp +++ b/utils/dataconvert/dataconvert.cpp @@ -1744,7 +1744,8 @@ int32_t DataConvert::convertColumnDate( bool DataConvert::isColumnDateValid( int32_t date ) { Date d; - memcpy(&d, &date, sizeof(int32_t)); + void* dp = static_cast(&d); + memcpy(dp, &date, sizeof(int32_t)); return (isDateValid(d.day, d.month, d.year)); } @@ -2046,7 +2047,8 @@ int64_t DataConvert::convertColumnTime( bool DataConvert::isColumnDateTimeValid( int64_t dateTime ) { DateTime dt; - memcpy(&dt, &dateTime, sizeof(uint64_t)); + void* dtp = static_cast(&dt); + memcpy(dtp, &dateTime, sizeof(uint64_t)); if (isDateValid(dt.day, dt.month, dt.year)) return isDateTimeValid(dt.hour, dt.minute, dt.second, dt.msecond); @@ -2057,7 +2059,8 @@ bool DataConvert::isColumnDateTimeValid( int64_t dateTime ) bool DataConvert::isColumnTimeValid( int64_t time ) { Time dt; - memcpy(&dt, &time, sizeof(uint64_t)); + void* dtp = static_cast(&dt); + memcpy(dtp, &time, sizeof(uint64_t)); return isTimeValid(dt.hour, dt.minute, dt.second, dt.msecond); } diff --git a/utils/funcexp/func_insert.cpp b/utils/funcexp/func_insert.cpp index 5a54f0699..20109c27b 100644 --- a/utils/funcexp/func_insert.cpp +++ b/utils/funcexp/func_insert.cpp @@ -92,7 +92,9 @@ std::string Func_insert::getStrVal(rowgroup::Row& row, string tnewstr; stringValue(fp[0], row, isNull, tstr); if (isNull) + { return ""; + } stringValue(fp[3], row, isNull, tnewstr); if (isNull) diff --git a/utils/funcexp/func_lpad.cpp b/utils/funcexp/func_lpad.cpp index b5acfd362..fbb5ceca2 100644 --- a/utils/funcexp/func_lpad.cpp +++ b/utils/funcexp/func_lpad.cpp @@ -103,8 +103,6 @@ std::string Func_lpad::getStrVal(rowgroup::Row& row, value += 0.5; else if (value < 0) value -= 0.5; - else if (value < 0) - value -= 0.5; int64_t ret = (int64_t) value; diff --git a/utils/funcexp/func_md5.cpp b/utils/funcexp/func_md5.cpp index 8ab05b346..9780c389d 100644 --- a/utils/funcexp/func_md5.cpp +++ b/utils/funcexp/func_md5.cpp @@ -236,6 +236,7 @@ char* PrintMD5(uchar md5Digest[16]) char chBuffer[256]; char chEach[10]; int nCount; + size_t chEachSize = 0; memset(chBuffer, 0, 256); memset(chEach, 0, 10); @@ -243,7 +244,8 @@ char* PrintMD5(uchar md5Digest[16]) for (nCount = 0; nCount < 16; nCount++) { sprintf(chEach, "%02x", md5Digest[nCount]); - strncat(chBuffer, chEach, sizeof(chEach)); + chEachSize = sizeof(chEach); + strncat(chBuffer, chEach, chEachSize); } return strdup(chBuffer); diff --git a/utils/funcexp/func_repeat.cpp b/utils/funcexp/func_repeat.cpp index b99114c5a..d79d16de1 100644 --- a/utils/funcexp/func_repeat.cpp +++ b/utils/funcexp/func_repeat.cpp @@ -93,7 +93,7 @@ std::string Func_repeat::getStrVal(rowgroup::Row& row, for ( int i = 0 ; i < count ; i ++ ) { - if (strcat(result, str.c_str()) == NULL) + if (strcat(result, str.c_str()) == NULL) //questionable check return ""; } diff --git a/utils/funcexp/func_substring_index.cpp b/utils/funcexp/func_substring_index.cpp index 4c85f4182..04d4d9b12 100644 --- a/utils/funcexp/func_substring_index.cpp +++ b/utils/funcexp/func_substring_index.cpp @@ -76,7 +76,7 @@ std::string Func_substring_index::getStrVal(rowgroup::Row& row, if ( count > end ) return str; - if (( count < 0 ) && ((count * -1) > end)) + if (( count < 0 ) && ((count * -1) > (int64_t) end)) return str; string value = str; diff --git a/utils/idbdatafile/PosixFileSystem.cpp b/utils/idbdatafile/PosixFileSystem.cpp index 48413b62a..f52bdc56a 100644 --- a/utils/idbdatafile/PosixFileSystem.cpp +++ b/utils/idbdatafile/PosixFileSystem.cpp @@ -261,7 +261,7 @@ int PosixFileSystem::listDirectory(const char* pathname, std::list& contents.push_back( itr->path().filename().generic_string() ); } } - catch (std::exception) + catch (std::exception &) { ret = -1; } diff --git a/utils/threadpool/threadpool.h b/utils/threadpool/threadpool.h index e0129bb44..e7ee9de82 100644 --- a/utils/threadpool/threadpool.h +++ b/utils/threadpool/threadpool.h @@ -44,6 +44,8 @@ #include #include +#include + #if defined(_MSC_VER) && defined(xxxTHREADPOOL_DLLEXPORT) #define EXPORT __declspec(dllexport) #else @@ -76,8 +78,6 @@ public: { boost::lock_guard guard(m); std::unique_ptr new_thread(new boost::thread(threadfunc)); - // auto_ptr was deprecated - //std::auto_ptr new_thread(new boost::thread(threadfunc)); threads.push_back(new_thread.get()); return new_thread.release(); } diff --git a/versioning/BRM/extentmap.cpp b/versioning/BRM/extentmap.cpp index 6070ab1f2..2c0334030 100644 --- a/versioning/BRM/extentmap.cpp +++ b/versioning/BRM/extentmap.cpp @@ -1141,7 +1141,8 @@ void ExtentMap::loadVersion4(ifstream& in) in.read((char*) &flNumElements, sizeof(int)); idbassert(emNumElements > 0); - memset(fExtentMap, 0, fEMShminfo->allocdSize); + void *fExtentMapPtr = static_cast(fExtentMap); + memset(fExtentMapPtr, 0, fEMShminfo->allocdSize); fEMShminfo->currentSize = 0; // init the free list @@ -1226,7 +1227,8 @@ void ExtentMap::loadVersion4(IDBDataFile* in) throw runtime_error("ExtentMap::loadVersion4(): read failed. Check the error log."); } - memset(fExtentMap, 0, fEMShminfo->allocdSize); + void *fExtentMapPtr = static_cast(fExtentMap); + memset(fExtentMapPtr, 0, fEMShminfo->allocdSize); fEMShminfo->currentSize = 0; // init the free list diff --git a/versioning/BRM/mastersegmenttable.cpp b/versioning/BRM/mastersegmenttable.cpp index 047c647f8..54921b644 100644 --- a/versioning/BRM/mastersegmenttable.cpp +++ b/versioning/BRM/mastersegmenttable.cpp @@ -189,7 +189,8 @@ void MasterSegmentTable::makeMSTSegment() void MasterSegmentTable::initMSTData() { - memset(fShmDescriptors, 0, MSTshmsize); + void *dp = static_cast(&fShmDescriptors); + memset(dp, 0, MSTshmsize); } MSTEntry* MasterSegmentTable::getTable_read(int num, bool block) const diff --git a/writeengine/dictionary/we_dctnry.cpp b/writeengine/dictionary/we_dctnry.cpp index d477349ad..6200cc248 100644 --- a/writeengine/dictionary/we_dctnry.cpp +++ b/writeengine/dictionary/we_dctnry.cpp @@ -803,7 +803,8 @@ int Dctnry::insertDctnry(const char* buf, while (startPos < totalRow) { found = false; - memset(&curSig, 0, sizeof(curSig)); + void *curSigPtr = static_cast(&curSig); + memset(curSigPtr, 0, sizeof(curSig)); curSig.size = pos[startPos][col].offset; // Strip trailing null bytes '\0' (by adjusting curSig.size) if import- @@ -1317,7 +1318,8 @@ void Dctnry::preLoadStringCache( const DataBlock& fileBlock ) int op = 1; // ordinal position of the string within the block Signature aSig; - memset( &aSig, 0, sizeof(Signature)); + void *aSigPtr = static_cast(&aSig); + memset(aSigPtr, 0, sizeof(aSig)); while ((offBeg != DCTNRY_END_HEADER) && (op <= MAX_STRING_CACHE_SIZE)) @@ -1361,8 +1363,10 @@ void Dctnry::preLoadStringCache( const DataBlock& fileBlock ) ******************************************************************************/ void Dctnry::addToStringCache( const Signature& newSig ) { + // We better add constructors that sets everything to 0; Signature asig; - memset(&asig, 0, sizeof(Signature)); + void *aSigPtr = static_cast(&asig); + memset(aSigPtr, 0, sizeof(asig)); asig.signature = new unsigned char[newSig.size]; memcpy(asig.signature, newSig.signature, newSig.size ); asig.size = newSig.size; diff --git a/writeengine/server/we_ddlcommandproc.cpp b/writeengine/server/we_ddlcommandproc.cpp index 19475ccbe..f536c2430 100644 --- a/writeengine/server/we_ddlcommandproc.cpp +++ b/writeengine/server/we_ddlcommandproc.cpp @@ -2469,7 +2469,8 @@ uint8_t WE_DDLCommandProc::updateSyscolumnTablename(ByteStream& bs, std::string& //It's the same string for each column, so we just need one dictionary struct - memset(&dictTuple, 0, sizeof(dictTuple)); + void *dictTuplePtr = static_cast(&dictTuple); + memset(dictTuplePtr, 0, sizeof(dictTuple)); dictTuple.sigValue = (unsigned char*)newTablename.c_str(); dictTuple.sigSize = newTablename.length(); dictTuple.isNull = false; @@ -3292,7 +3293,8 @@ uint8_t WE_DDLCommandProc::updateSystablesTablename(ByteStream& bs, std::string& //It's the same string for each column, so we just need one dictionary struct - memset(&dictTuple, 0, sizeof(dictTuple)); + void *dictTuplePtr = static_cast(&dictTuple); + memset(dictTuplePtr, 0, sizeof(dictTuple)); dictTuple.sigValue = (unsigned char*)newTablename.c_str(); dictTuple.sigSize = newTablename.length(); dictTuple.isNull = false; diff --git a/writeengine/shared/we_fileop.cpp b/writeengine/shared/we_fileop.cpp index 7a2a2456b..b5970abbb 100644 --- a/writeengine/shared/we_fileop.cpp +++ b/writeengine/shared/we_fileop.cpp @@ -332,12 +332,15 @@ int FileOp::deleteFile( FID fid ) const std::vector dbRootPathList; Config::getDBRootPathList( dbRootPathList ); + int rc; + for (unsigned i = 0; i < dbRootPathList.size(); i++) { char rootOidDirName[FILE_NAME_SIZE]; - sprintf(rootOidDirName, "%s/%s", dbRootPathList[i].c_str(), oidDirName); + rc = snprintf(rootOidDirName, FILE_NAME_SIZE, "%s/%s", + dbRootPathList[i].c_str(), oidDirName); - if ( IDBPolicy::remove( rootOidDirName ) != 0 ) + if ( rc == FILE_NAME_SIZE || IDBPolicy::remove( rootOidDirName ) != 0 ) { ostringstream oss; oss << "Unable to remove " << rootOidDirName; @@ -365,6 +368,7 @@ int FileOp::deleteFiles( const std::vector& fids ) const char dbDir [MAX_DB_DIR_LEVEL][MAX_DB_DIR_NAME_SIZE]; std::vector dbRootPathList; Config::getDBRootPathList( dbRootPathList ); + int rc; for ( unsigned n = 0; n < fids.size(); n++ ) { @@ -378,10 +382,10 @@ int FileOp::deleteFiles( const std::vector& fids ) const for (unsigned i = 0; i < dbRootPathList.size(); i++) { char rootOidDirName[FILE_NAME_SIZE]; - sprintf(rootOidDirName, "%s/%s", dbRootPathList[i].c_str(), + rc = snprintf(rootOidDirName, FILE_NAME_SIZE, "%s/%s", dbRootPathList[i].c_str(), oidDirName); - if ( IDBPolicy::remove( rootOidDirName ) != 0 ) + if ( rc == FILE_NAME_SIZE || IDBPolicy::remove( rootOidDirName ) != 0 ) { ostringstream oss; oss << "Unable to remove " << rootOidDirName; @@ -412,6 +416,7 @@ int FileOp::deletePartitions( const std::vector& fids, char dbDir [MAX_DB_DIR_LEVEL][MAX_DB_DIR_NAME_SIZE]; char rootOidDirName[FILE_NAME_SIZE]; char partitionDirName[FILE_NAME_SIZE]; + int rcd, rcp; for (uint32_t i = 0; i < partitions.size(); i++) { @@ -422,12 +427,13 @@ int FileOp::deletePartitions( const std::vector& fids, dbDir[0], dbDir[1], dbDir[2], dbDir[3], dbDir[4]); // config expects dbroot starting from 0 std::string rt( Config::getDBRootByNum(partitions[i].lp.dbroot) ); - sprintf(rootOidDirName, "%s/%s", + rcd = snprintf(rootOidDirName, FILE_NAME_SIZE, "%s/%s", rt.c_str(), tempFileName); - sprintf(partitionDirName, "%s/%s", + rcp = snprintf(partitionDirName, FILE_NAME_SIZE, "%s/%s", rt.c_str(), oidDirName); - if ( IDBPolicy::remove( rootOidDirName ) != 0 ) + if ( rcd == FILE_NAME_SIZE || rcp == FILE_NAME_SIZE + || IDBPolicy::remove( rootOidDirName ) != 0 ) { ostringstream oss; oss << "Unable to remove " << rootOidDirName; diff --git a/writeengine/shared/we_index.h b/writeengine/shared/we_index.h index d5438453d..bcd88e5e9 100644 --- a/writeengine/shared/we_index.h +++ b/writeengine/shared/we_index.h @@ -393,7 +393,7 @@ struct IdxMultiColKey curMask.reset(); curLevel = maxLevel = 0; totalBit = 0; - memset( testbitArray, 0, IDX_MAX_MULTI_COL_IDX_LEVEL); + memset( testbitArray, 0, IDX_MAX_MULTI_COL_IDX_LEVEL * sizeof(testbitArray[0])); memset( keyBuf, 0, IDX_MAX_MULTI_COL_BIT / 8 ); curMask = 0x1F; curMask = curMask << (IDX_MAX_MULTI_COL_BIT - 5); diff --git a/writeengine/shared/we_type.h b/writeengine/shared/we_type.h index 06a367ecb..08df6f10e 100644 --- a/writeengine/shared/we_type.h +++ b/writeengine/shared/we_type.h @@ -487,7 +487,7 @@ struct CacheControl /** @brief Cache control structure */ int checkInterval; /** @brief A check point interval in seconds */ CacheControl() { - totalBlock = pctFree = checkInterval; /** @brief constructor */ + totalBlock = pctFree = checkInterval = 0; /** @brief constructor */ } }; diff --git a/writeengine/splitter/we_filereadthread.cpp b/writeengine/splitter/we_filereadthread.cpp index 6840d377d..e455ff518 100644 --- a/writeengine/splitter/we_filereadthread.cpp +++ b/writeengine/splitter/we_filereadthread.cpp @@ -356,7 +356,7 @@ unsigned int WEFileReadThread::readDataFile(messageqcpp::SBS& Sbs) //char aBuff[1024*1024]; // TODO May have to change it later //char*pStart = aBuff; unsigned int aIdx = 0; - unsigned int aLen = 0; + int aLen = 0; *Sbs << (ByteStream::byte)(WE_CLT_SRV_DATA); while ((!fInFile.eof()) && (aIdx < getBatchQty())) diff --git a/writeengine/wrapper/we_colop.cpp b/writeengine/wrapper/we_colop.cpp index 515e9f7b2..4e08bd742 100644 --- a/writeengine/wrapper/we_colop.cpp +++ b/writeengine/wrapper/we_colop.cpp @@ -238,7 +238,8 @@ int ColumnOp::allocRowId(const TxnID& txnid, bool useStartingExtent, for (i = 0; i < dbRootExtentTrackers.size(); i++) { - if (i != (int) column.colNo) + uint32_t colNo = column.colNo; + if (i != colNo) dbRootExtentTrackers[i]->nextSegFile(dbRoot, partition, segment, newHwm, startLbid); // Round up HWM to the end of the current extent