fix/TS-5532-set-seperate-thread-update-status-fix-case

This commit is contained in:
dmchen 2024-10-18 07:23:25 +00:00
parent 9ee34a548a
commit 6fa8557e99
3 changed files with 13 additions and 2 deletions

View File

@ -22,7 +22,7 @@
extern SConfig *tsCfg; extern SConfig *tsCfg;
SMonVloadInfo vinfo = {0}; SMonVloadInfo tsVinfo = {0};
static void dmUpdateDnodeCfg(SDnodeMgmt *pMgmt, SDnodeCfg *pCfg) { static void dmUpdateDnodeCfg(SDnodeMgmt *pMgmt, SDnodeCfg *pCfg) {
int32_t code = 0; int32_t code = 0;
@ -165,7 +165,11 @@ void dmSendStatusReq(SDnodeMgmt *pMgmt) {
(void)taosThreadRwlockUnlock(&pMgmt->pData->lock); (void)taosThreadRwlockUnlock(&pMgmt->pData->lock);
dDebug("send status req to mnode, statusSeq:%d, begin to get vnode loads", pMgmt->statusSeq); 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); dDebug("send status req to mnode, statusSeq:%d, begin to get mnode loads", pMgmt->statusSeq);
SMonMloadInfo minfo = {0}; SMonMloadInfo minfo = {0};
@ -232,8 +236,13 @@ void dmSendStatusReq(SDnodeMgmt *pMgmt) {
} }
void dmUpdateStatusInfo(SDnodeMgmt *pMgmt) { void dmUpdateStatusInfo(SDnodeMgmt *pMgmt) {
SMonVloadInfo vinfo = {0};
dDebug("begin to get vnode loads"); dDebug("begin to get vnode loads");
(*pMgmt->getVnodeLoadsFp)(&vinfo); (*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) { void dmSendNotifyReq(SDnodeMgmt *pMgmt, SNotifyReq *pReq) {

View File

@ -214,6 +214,7 @@ int32_t dmInitVars(SDnode *pDnode) {
} }
(void)taosThreadRwlockInit(&pData->lock, NULL); (void)taosThreadRwlockInit(&pData->lock, NULL);
(void)taosThreadRwlockInit(&pData->statusInfolock, NULL);
(void)taosThreadMutexInit(&pDnode->mutex, NULL); (void)taosThreadMutexInit(&pDnode->mutex, NULL);
return 0; return 0;
} }

View File

@ -144,6 +144,7 @@ typedef struct {
char machineId[TSDB_MACHINE_ID_LEN + 1]; char machineId[TSDB_MACHINE_ID_LEN + 1];
EEncryptAlgor encryptAlgorigthm; EEncryptAlgor encryptAlgorigthm;
EEncryptScope encryptScope; EEncryptScope encryptScope;
TdThreadRwlock statusInfolock;
} SDnodeData; } SDnodeData;
typedef struct { typedef struct {