fix(sync): fix hb-timer memory leak
This commit is contained in:
parent
7bcd13e82a
commit
81592dfb09
|
@ -56,13 +56,12 @@ typedef struct SRaftId {
|
||||||
SyncGroupId vgId;
|
SyncGroupId vgId;
|
||||||
} SRaftId;
|
} SRaftId;
|
||||||
|
|
||||||
typedef struct SSyncHbTimerParam {
|
typedef struct SSyncHbTimerData {
|
||||||
SSyncNode* pSyncNode;
|
SSyncNode* pSyncNode;
|
||||||
SSyncTimer* pTimer;
|
SSyncTimer* pTimer;
|
||||||
SRaftId destId;
|
SRaftId destId;
|
||||||
uint64_t logicClock;
|
uint64_t logicClock;
|
||||||
int64_t executeTime;
|
} SSyncHbTimerData;
|
||||||
} SSyncHbTimerParam;
|
|
||||||
|
|
||||||
typedef struct SSyncTimer {
|
typedef struct SSyncTimer {
|
||||||
void* pTimer;
|
void* pTimer;
|
||||||
|
@ -71,7 +70,7 @@ typedef struct SSyncTimer {
|
||||||
uint64_t counter;
|
uint64_t counter;
|
||||||
int32_t timerMS;
|
int32_t timerMS;
|
||||||
SRaftId destId;
|
SRaftId destId;
|
||||||
void* pData;
|
SSyncHbTimerData hbData;
|
||||||
} SSyncTimer;
|
} SSyncTimer;
|
||||||
|
|
||||||
typedef struct SElectTimerParam {
|
typedef struct SElectTimerParam {
|
||||||
|
@ -164,7 +163,6 @@ typedef struct SSyncNode {
|
||||||
uint64_t heartbeatTimerLogicClockUser;
|
uint64_t heartbeatTimerLogicClockUser;
|
||||||
TAOS_TMR_CALLBACK FpHeartbeatTimerCB; // Timer Fp
|
TAOS_TMR_CALLBACK FpHeartbeatTimerCB; // Timer Fp
|
||||||
uint64_t heartbeatTimerCounter;
|
uint64_t heartbeatTimerCounter;
|
||||||
SSyncHbTimerParam hbTimerParam;
|
|
||||||
|
|
||||||
// peer heartbeat timer
|
// peer heartbeat timer
|
||||||
SSyncTimer peerHeartbeatTimerArr[TSDB_MAX_REPLICA];
|
SSyncTimer peerHeartbeatTimerArr[TSDB_MAX_REPLICA];
|
||||||
|
|
|
@ -665,13 +665,12 @@ static int32_t syncHbTimerInit(SSyncNode* pSyncNode, SSyncTimer* pSyncTimer, SRa
|
||||||
static int32_t syncHbTimerStart(SSyncNode* pSyncNode, SSyncTimer* pSyncTimer) {
|
static int32_t syncHbTimerStart(SSyncNode* pSyncNode, SSyncTimer* pSyncTimer) {
|
||||||
int32_t ret = 0;
|
int32_t ret = 0;
|
||||||
if (syncIsInit()) {
|
if (syncIsInit()) {
|
||||||
SSyncHbTimerParam* pData = taosMemoryMalloc(sizeof(SSyncHbTimerParam));
|
SSyncHbTimerData* pData = &pSyncTimer->hbData;
|
||||||
pData->pSyncNode = pSyncNode;
|
pData->pSyncNode = pSyncNode;
|
||||||
pData->pTimer = pSyncTimer;
|
pData->pTimer = pSyncTimer;
|
||||||
pData->destId = pSyncTimer->destId;
|
pData->destId = pSyncTimer->destId;
|
||||||
pData->logicClock = pSyncTimer->logicClock;
|
pData->logicClock = pSyncTimer->logicClock;
|
||||||
|
|
||||||
pSyncTimer->pData = pData;
|
|
||||||
taosTmrReset(pSyncTimer->timerCb, pSyncTimer->timerMS, pData, syncEnv()->pTimerManager, &pSyncTimer->pTimer);
|
taosTmrReset(pSyncTimer->timerCb, pSyncTimer->timerMS, pData, syncEnv()->pTimerManager, &pSyncTimer->pTimer);
|
||||||
} else {
|
} else {
|
||||||
sError("vgId:%d, start ctrl hb timer error, sync env is stop", pSyncNode->vgId);
|
sError("vgId:%d, start ctrl hb timer error, sync env is stop", pSyncNode->vgId);
|
||||||
|
@ -1930,9 +1929,9 @@ static void syncNodeEqHeartbeatTimer(void* param, void* tmrId) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void syncNodeEqPeerHeartbeatTimer(void* param, void* tmrId) {
|
static void syncNodeEqPeerHeartbeatTimer(void* param, void* tmrId) {
|
||||||
SSyncHbTimerParam* pData = (SSyncHbTimerParam*)param;
|
SSyncHbTimerData* pData = (SSyncHbTimerData*)param;
|
||||||
SSyncNode* pSyncNode = pData->pSyncNode;
|
SSyncNode* pSyncNode = pData->pSyncNode;
|
||||||
SSyncTimer* pSyncTimer = pData->pTimer;
|
SSyncTimer* pSyncTimer = pData->pTimer;
|
||||||
|
|
||||||
if (pSyncNode == NULL) {
|
if (pSyncNode == NULL) {
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in New Issue