fix/TS-5532-set-seperate-thread-update-status-fix-case
This commit is contained in:
parent
9ee34a548a
commit
6fa8557e99
|
@ -22,7 +22,7 @@
|
|||
|
||||
extern SConfig *tsCfg;
|
||||
|
||||
SMonVloadInfo vinfo = {0};
|
||||
SMonVloadInfo tsVinfo = {0};
|
||||
|
||||
static void dmUpdateDnodeCfg(SDnodeMgmt *pMgmt, SDnodeCfg *pCfg) {
|
||||
int32_t code = 0;
|
||||
|
@ -165,7 +165,11 @@ void dmSendStatusReq(SDnodeMgmt *pMgmt) {
|
|||
(void)taosThreadRwlockUnlock(&pMgmt->pData->lock);
|
||||
|
||||
dDebug("send status req to mnode, statusSeq:%d, begin to get vnode loads", pMgmt->statusSeq);
|
||||
req.pVloads = vinfo.pVloads;
|
||||
(void)taosThreadRwlockRdlock(&pMgmt->pData->statusInfolock);
|
||||
req.pVloads = taosArrayDup(tsVinfo.pVloads, NULL);
|
||||
taosArrayDestroy(tsVinfo.pVloads);
|
||||
tsVinfo.pVloads = NULL;
|
||||
(void)taosThreadRwlockUnlock(&pMgmt->pData->statusInfolock);
|
||||
|
||||
dDebug("send status req to mnode, statusSeq:%d, begin to get mnode loads", pMgmt->statusSeq);
|
||||
SMonMloadInfo minfo = {0};
|
||||
|
@ -232,8 +236,13 @@ void dmSendStatusReq(SDnodeMgmt *pMgmt) {
|
|||
}
|
||||
|
||||
void dmUpdateStatusInfo(SDnodeMgmt *pMgmt) {
|
||||
SMonVloadInfo vinfo = {0};
|
||||
dDebug("begin to get vnode loads");
|
||||
(*pMgmt->getVnodeLoadsFp)(&vinfo);
|
||||
(void)taosThreadRwlockWrlock(&pMgmt->pData->statusInfolock);
|
||||
if (tsVinfo.pVloads == NULL) tsVinfo.pVloads = taosArrayDup(vinfo.pVloads, NULL);
|
||||
taosArrayDestroy(vinfo.pVloads);
|
||||
(void)taosThreadRwlockWrlock(&pMgmt->pData->statusInfolock);
|
||||
}
|
||||
|
||||
void dmSendNotifyReq(SDnodeMgmt *pMgmt, SNotifyReq *pReq) {
|
||||
|
|
|
@ -214,6 +214,7 @@ int32_t dmInitVars(SDnode *pDnode) {
|
|||
}
|
||||
|
||||
(void)taosThreadRwlockInit(&pData->lock, NULL);
|
||||
(void)taosThreadRwlockInit(&pData->statusInfolock, NULL);
|
||||
(void)taosThreadMutexInit(&pDnode->mutex, NULL);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -144,6 +144,7 @@ typedef struct {
|
|||
char machineId[TSDB_MACHINE_ID_LEN + 1];
|
||||
EEncryptAlgor encryptAlgorigthm;
|
||||
EEncryptScope encryptScope;
|
||||
TdThreadRwlock statusInfolock;
|
||||
} SDnodeData;
|
||||
|
||||
typedef struct {
|
||||
|
|
Loading…
Reference in New Issue