fix dead lock in shm
This commit is contained in:
parent
5d835bc5b1
commit
8202301992
|
@ -48,7 +48,7 @@ bool tsPrintAuth = 0;
|
||||||
|
|
||||||
// multi process
|
// multi process
|
||||||
bool tsMultiProcess = false;
|
bool tsMultiProcess = false;
|
||||||
int32_t tsMnodeShmSize = TSDB_MAX_WAL_SIZE * 1;
|
int32_t tsMnodeShmSize = TSDB_MAX_WAL_SIZE * 2;
|
||||||
int32_t tsVnodeShmSize = TSDB_MAX_WAL_SIZE * 10;
|
int32_t tsVnodeShmSize = TSDB_MAX_WAL_SIZE * 10;
|
||||||
int32_t tsQnodeShmSize = TSDB_MAX_WAL_SIZE * 4;
|
int32_t tsQnodeShmSize = TSDB_MAX_WAL_SIZE * 4;
|
||||||
int32_t tsSnodeShmSize = TSDB_MAX_WAL_SIZE * 4;
|
int32_t tsSnodeShmSize = TSDB_MAX_WAL_SIZE * 4;
|
||||||
|
@ -485,7 +485,7 @@ static int32_t taosSetServerCfg(SConfig *pCfg) {
|
||||||
tsVnodeShmSize = cfgGetItem(pCfg, "vnodeShmSize")->i32;
|
tsVnodeShmSize = cfgGetItem(pCfg, "vnodeShmSize")->i32;
|
||||||
tsQnodeShmSize = cfgGetItem(pCfg, "qnodeShmSize")->i32;
|
tsQnodeShmSize = cfgGetItem(pCfg, "qnodeShmSize")->i32;
|
||||||
tsSnodeShmSize = cfgGetItem(pCfg, "snodeShmSize")->i32;
|
tsSnodeShmSize = cfgGetItem(pCfg, "snodeShmSize")->i32;
|
||||||
tsBnodeShmSize = cfgGetItem(pCfg, "bnodeShmSize")->i32;
|
// tsBnodeShmSize = cfgGetItem(pCfg, "bnodeShmSize")->i32;
|
||||||
|
|
||||||
tsEnableMonitor = cfgGetItem(pCfg, "monitor")->bval;
|
tsEnableMonitor = cfgGetItem(pCfg, "monitor")->bval;
|
||||||
tsMonitorInterval = cfgGetItem(pCfg, "monitorInterval")->i32;
|
tsMonitorInterval = cfgGetItem(pCfg, "monitorInterval")->i32;
|
||||||
|
|
|
@ -147,7 +147,20 @@ static int32_t dndRunInParentProcess(SDnode *pDnode) {
|
||||||
pWrapper->required = dndRequireNode(pWrapper);
|
pWrapper->required = dndRequireNode(pWrapper);
|
||||||
if (!pWrapper->required) continue;
|
if (!pWrapper->required) continue;
|
||||||
|
|
||||||
int32_t shmsize = 1024 * 1024 * 2; // size will be a configuration item
|
int32_t shmsize = tsMnodeShmSize;
|
||||||
|
if (n == VNODES) {
|
||||||
|
shmsize = tsVnodeShmSize;
|
||||||
|
} else if (n == QNODE) {
|
||||||
|
shmsize = tsQnodeShmSize;
|
||||||
|
} else if (n == SNODE) {
|
||||||
|
shmsize = tsSnodeShmSize;
|
||||||
|
} else if (n == MNODE) {
|
||||||
|
shmsize = tsMnodeShmSize;
|
||||||
|
} else if (n == BNODE) {
|
||||||
|
shmsize = tsBnodeShmSize;
|
||||||
|
} else {
|
||||||
|
}
|
||||||
|
|
||||||
if (taosCreateShm(&pWrapper->shm, n, shmsize) != 0) {
|
if (taosCreateShm(&pWrapper->shm, n, shmsize) != 0) {
|
||||||
terrno = TAOS_SYSTEM_ERROR(terrno);
|
terrno = TAOS_SYSTEM_ERROR(terrno);
|
||||||
dError("node:%s, failed to create shm size:%d since %s", pWrapper->name, shmsize, terrstr());
|
dError("node:%s, failed to create shm size:%d since %s", pWrapper->name, shmsize, terrstr());
|
||||||
|
|
|
@ -256,7 +256,7 @@ static int32_t taosProcQueuePop(SProcQueue *pQueue, void **ppHead, int16_t *pHea
|
||||||
rawBodyLen = *(int32_t *)(pQueue->pBuffer + 4);
|
rawBodyLen = *(int32_t *)(pQueue->pBuffer + 4);
|
||||||
}
|
}
|
||||||
int16_t headLen = CEIL8(rawHeadLen);
|
int16_t headLen = CEIL8(rawHeadLen);
|
||||||
int16_t bodyLen = CEIL8(rawBodyLen);
|
int32_t bodyLen = CEIL8(rawBodyLen);
|
||||||
|
|
||||||
void *pHead = (*mallocHeadFp)(headLen);
|
void *pHead = (*mallocHeadFp)(headLen);
|
||||||
void *pBody = (*mallocBodyFp)(bodyLen);
|
void *pBody = (*mallocBodyFp)(bodyLen);
|
||||||
|
|
Loading…
Reference in New Issue