fix: deadlock of mnode if its state changed
This commit is contained in:
parent
b311b873a1
commit
c47e387d13
|
@ -170,12 +170,20 @@ static void mndBecomeFollower(struct SSyncFSM *pFsm) {
|
||||||
SMnode *pMnode = pFsm->data;
|
SMnode *pMnode = pFsm->data;
|
||||||
mDebug("vgId:1, become follower");
|
mDebug("vgId:1, become follower");
|
||||||
|
|
||||||
// clear old leader resource
|
if (pMnode->syncMgmt.transId != 0) {
|
||||||
|
pMnode->syncMgmt.transId = 0;
|
||||||
|
tsem_post(&pMnode->syncMgmt.syncSem);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mndBecomeLeader(struct SSyncFSM *pFsm) {
|
static void mndBecomeLeader(struct SSyncFSM *pFsm) {
|
||||||
SMnode *pMnode = pFsm->data;
|
|
||||||
mDebug("vgId:1, become leader");
|
mDebug("vgId:1, become leader");
|
||||||
|
SMnode *pMnode = pFsm->data;
|
||||||
|
|
||||||
|
if (pMnode->syncMgmt.transId != 0) {
|
||||||
|
pMnode->syncMgmt.transId = 0;
|
||||||
|
tsem_post(&pMnode->syncMgmt.syncSem);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SSyncFSM *mndSyncMakeFsm(SMnode *pMnode) {
|
SSyncFSM *mndSyncMakeFsm(SMnode *pMnode) {
|
||||||
|
|
|
@ -210,6 +210,8 @@ if $rows != 3 then
|
||||||
return -1
|
return -1
|
||||||
endi
|
endi
|
||||||
|
|
||||||
|
sql_error select * from performance_schema.PERF_OFFSETS;
|
||||||
|
|
||||||
sql show create stable stb;
|
sql show create stable stb;
|
||||||
if $rows != 1 then
|
if $rows != 1 then
|
||||||
return -1
|
return -1
|
||||||
|
|
Loading…
Reference in New Issue