fix(os): fix the link error in unit test cases.
This commit is contained in:
parent
9fb7589fb5
commit
a69e2a8045
|
@ -379,6 +379,8 @@ typedef struct STUidTagInfo {
|
||||||
#define UD_GROUPID_COLUMN_INDEX 1
|
#define UD_GROUPID_COLUMN_INDEX 1
|
||||||
#define UD_TAG_COLUMN_INDEX 2
|
#define UD_TAG_COLUMN_INDEX 2
|
||||||
|
|
||||||
|
int32_t taosGenCrashJsonMsg(int signum, char **pMsg, int64_t clusterId, int64_t startTime);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -102,7 +102,6 @@ bool taosAssertRelease(bool condition);
|
||||||
void taosLogCrashInfo(char *nodeType, char *pMsg, int64_t msgLen, int signum, void *sigInfo);
|
void taosLogCrashInfo(char *nodeType, char *pMsg, int64_t msgLen, int signum, void *sigInfo);
|
||||||
void taosReadCrashInfo(char *filepath, char **pMsg, int64_t *pMsgLen, TdFilePtr *pFd);
|
void taosReadCrashInfo(char *filepath, char **pMsg, int64_t *pMsgLen, TdFilePtr *pFd);
|
||||||
void taosReleaseCrashLogFile(TdFilePtr pFile, bool truncateFile);
|
void taosReleaseCrashLogFile(TdFilePtr pFile, bool truncateFile);
|
||||||
int32_t taosGenCrashJsonMsg(int signum, char **pMsg, int64_t clusterId, int64_t startTime);
|
|
||||||
|
|
||||||
// clang-format off
|
// clang-format off
|
||||||
#define uFatal(...) { if (uDebugFlag & DEBUG_FATAL) { taosPrintLog("UTL FATAL", DEBUG_FATAL, tsLogEmbedded ? 255 : uDebugFlag, __VA_ARGS__); }}
|
#define uFatal(...) { if (uDebugFlag & DEBUG_FATAL) { taosPrintLog("UTL FATAL", DEBUG_FATAL, tsLogEmbedded ? 255 : uDebugFlag, __VA_ARGS__); }}
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
|
|
||||||
#define _DEFAULT_SOURCE
|
#define _DEFAULT_SOURCE
|
||||||
#include "tmisce.h"
|
#include "tmisce.h"
|
||||||
|
#include "tjson.h"
|
||||||
#include "tglobal.h"
|
#include "tglobal.h"
|
||||||
#include "tlog.h"
|
#include "tlog.h"
|
||||||
#include "tname.h"
|
#include "tname.h"
|
||||||
|
@ -87,3 +88,63 @@ SEpSet getEpSet_s(SCorEpSet* pEpSet) {
|
||||||
|
|
||||||
return ep;
|
return ep;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int32_t taosGenCrashJsonMsg(int signum, char** pMsg, int64_t clusterId, int64_t startTime) {
|
||||||
|
SJson* pJson = tjsonCreateObject();
|
||||||
|
if (pJson == NULL) return -1;
|
||||||
|
char tmp[4096] = {0};
|
||||||
|
|
||||||
|
tjsonAddDoubleToObject(pJson, "reportVersion", 1);
|
||||||
|
|
||||||
|
tjsonAddIntegerToObject(pJson, "clusterId", clusterId);
|
||||||
|
tjsonAddIntegerToObject(pJson, "startTime", startTime);
|
||||||
|
|
||||||
|
// Do NOT invoke the taosGetFqdn here.
|
||||||
|
// this function may be invoked when memory exception occurs,so we should assume that it is running in a memory locked
|
||||||
|
// environment. The lock operation by taosGetFqdn may cause this program deadlock.
|
||||||
|
tjsonAddStringToObject(pJson, "fqdn", tsLocalFqdn);
|
||||||
|
|
||||||
|
tjsonAddIntegerToObject(pJson, "pid", taosGetPId());
|
||||||
|
|
||||||
|
taosGetAppName(tmp, NULL);
|
||||||
|
tjsonAddStringToObject(pJson, "appName", tmp);
|
||||||
|
|
||||||
|
if (taosGetOsReleaseName(tmp, sizeof(tmp)) == 0) {
|
||||||
|
tjsonAddStringToObject(pJson, "os", tmp);
|
||||||
|
}
|
||||||
|
|
||||||
|
float numOfCores = 0;
|
||||||
|
if (taosGetCpuInfo(tmp, sizeof(tmp), &numOfCores) == 0) {
|
||||||
|
tjsonAddStringToObject(pJson, "cpuModel", tmp);
|
||||||
|
tjsonAddDoubleToObject(pJson, "numOfCpu", numOfCores);
|
||||||
|
} else {
|
||||||
|
tjsonAddDoubleToObject(pJson, "numOfCpu", tsNumOfCores);
|
||||||
|
}
|
||||||
|
|
||||||
|
snprintf(tmp, sizeof(tmp), "%" PRId64 " kB", tsTotalMemoryKB);
|
||||||
|
tjsonAddStringToObject(pJson, "memory", tmp);
|
||||||
|
|
||||||
|
tjsonAddStringToObject(pJson, "version", version);
|
||||||
|
tjsonAddStringToObject(pJson, "buildInfo", buildinfo);
|
||||||
|
tjsonAddStringToObject(pJson, "gitInfo", gitinfo);
|
||||||
|
|
||||||
|
tjsonAddIntegerToObject(pJson, "crashSig", signum);
|
||||||
|
tjsonAddIntegerToObject(pJson, "crashTs", taosGetTimestampUs());
|
||||||
|
|
||||||
|
#ifdef _TD_DARWIN_64
|
||||||
|
taosLogTraceToBuf(tmp, sizeof(tmp), 4);
|
||||||
|
#elif !defined(WINDOWS)
|
||||||
|
taosLogTraceToBuf(tmp, sizeof(tmp), 3);
|
||||||
|
#else
|
||||||
|
taosLogTraceToBuf(tmp, sizeof(tmp), 8);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
tjsonAddStringToObject(pJson, "stackInfo", tmp);
|
||||||
|
|
||||||
|
char* pCont = tjsonToString(pJson);
|
||||||
|
tjsonDelete(pJson);
|
||||||
|
|
||||||
|
*pMsg = pCont;
|
||||||
|
|
||||||
|
return TSDB_CODE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
|
@ -17,7 +17,6 @@
|
||||||
#include "tlog.h"
|
#include "tlog.h"
|
||||||
#include "os.h"
|
#include "os.h"
|
||||||
#include "tconfig.h"
|
#include "tconfig.h"
|
||||||
#include "tutil.h"
|
|
||||||
#include "tjson.h"
|
#include "tjson.h"
|
||||||
#include "tglobal.h"
|
#include "tglobal.h"
|
||||||
|
|
||||||
|
@ -781,67 +780,6 @@ bool taosAssertDebug(bool condition, const char *file, int32_t line, const char
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t taosGenCrashJsonMsg(int signum, char** pMsg, int64_t clusterId, int64_t startTime) {
|
|
||||||
SJson* pJson = tjsonCreateObject();
|
|
||||||
if (pJson == NULL) return -1;
|
|
||||||
char tmp[4096] = {0};
|
|
||||||
|
|
||||||
tjsonAddDoubleToObject(pJson, "reportVersion", 1);
|
|
||||||
|
|
||||||
tjsonAddIntegerToObject(pJson, "clusterId", clusterId);
|
|
||||||
tjsonAddIntegerToObject(pJson, "startTime", startTime);
|
|
||||||
|
|
||||||
// Do NOT invoke the taosGetFqdn here.
|
|
||||||
// this function may be invoked when memory exception occurs,so we should assume that it is running in a memory locked
|
|
||||||
// environment. The lock operation by taosGetFqdn may cause this program deadlock.
|
|
||||||
tjsonAddStringToObject(pJson, "fqdn", tsLocalFqdn);
|
|
||||||
|
|
||||||
tjsonAddIntegerToObject(pJson, "pid", taosGetPId());
|
|
||||||
|
|
||||||
taosGetAppName(tmp, NULL);
|
|
||||||
tjsonAddStringToObject(pJson, "appName", tmp);
|
|
||||||
|
|
||||||
if (taosGetOsReleaseName(tmp, sizeof(tmp)) == 0) {
|
|
||||||
tjsonAddStringToObject(pJson, "os", tmp);
|
|
||||||
}
|
|
||||||
|
|
||||||
float numOfCores = 0;
|
|
||||||
if (taosGetCpuInfo(tmp, sizeof(tmp), &numOfCores) == 0) {
|
|
||||||
tjsonAddStringToObject(pJson, "cpuModel", tmp);
|
|
||||||
tjsonAddDoubleToObject(pJson, "numOfCpu", numOfCores);
|
|
||||||
} else {
|
|
||||||
tjsonAddDoubleToObject(pJson, "numOfCpu", tsNumOfCores);
|
|
||||||
}
|
|
||||||
|
|
||||||
snprintf(tmp, sizeof(tmp), "%" PRId64 " kB", tsTotalMemoryKB);
|
|
||||||
tjsonAddStringToObject(pJson, "memory", tmp);
|
|
||||||
|
|
||||||
tjsonAddStringToObject(pJson, "version", version);
|
|
||||||
tjsonAddStringToObject(pJson, "buildInfo", buildinfo);
|
|
||||||
tjsonAddStringToObject(pJson, "gitInfo", gitinfo);
|
|
||||||
|
|
||||||
tjsonAddIntegerToObject(pJson, "crashSig", signum);
|
|
||||||
tjsonAddIntegerToObject(pJson, "crashTs", taosGetTimestampUs());
|
|
||||||
|
|
||||||
#ifdef _TD_DARWIN_64
|
|
||||||
taosLogTraceToBuf(tmp, sizeof(tmp), 4);
|
|
||||||
#elif !defined(WINDOWS)
|
|
||||||
taosLogTraceToBuf(tmp, sizeof(tmp), 3);
|
|
||||||
#else
|
|
||||||
taosLogTraceToBuf(tmp, sizeof(tmp), 8);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
tjsonAddStringToObject(pJson, "stackInfo", tmp);
|
|
||||||
|
|
||||||
char* pCont = tjsonToString(pJson);
|
|
||||||
tjsonDelete(pJson);
|
|
||||||
|
|
||||||
*pMsg = pCont;
|
|
||||||
|
|
||||||
return TSDB_CODE_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void taosLogCrashInfo(char* nodeType, char* pMsg, int64_t msgLen, int signum, void *sigInfo) {
|
void taosLogCrashInfo(char* nodeType, char* pMsg, int64_t msgLen, int signum, void *sigInfo) {
|
||||||
const char *flags = "UTL FATAL ";
|
const char *flags = "UTL FATAL ";
|
||||||
ELogLevel level = DEBUG_FATAL;
|
ELogLevel level = DEBUG_FATAL;
|
||||||
|
|
Loading…
Reference in New Issue