[TD-150] deadlock in balance

This commit is contained in:
slguan 2020-05-03 12:26:54 +08:00
parent 19895e9b50
commit cd6624214b
4 changed files with 53 additions and 55 deletions

View File

@ -26,6 +26,7 @@ struct SDnodeObj;
int32_t balanceInit(); int32_t balanceInit();
void balanceCleanUp(); void balanceCleanUp();
void balanceNotify(); void balanceNotify();
void balanceUpdateMgmt();
void balanceReset(); void balanceReset();
int32_t balanceAllocVnodes(struct SVgObj *pVgroup); int32_t balanceAllocVnodes(struct SVgObj *pVgroup);
int32_t balanceDropDnode(struct SDnodeObj *pDnode); int32_t balanceDropDnode(struct SDnodeObj *pDnode);

View File

@ -29,6 +29,7 @@
int32_t balanceInit() { return TSDB_CODE_SUCCESS; } int32_t balanceInit() { return TSDB_CODE_SUCCESS; }
void balanceCleanUp() {} void balanceCleanUp() {}
void balanceNotify() {} void balanceNotify() {}
void balanceUpdateMgmt() {}
void balanceReset() {} void balanceReset() {}
int32_t balanceAllocVnodes(SVgObj *pVgroup) { int32_t balanceAllocVnodes(SVgObj *pVgroup) {

View File

@ -322,6 +322,7 @@ void mgmtProcessDnodeStatusMsg(SRpcMsg *rpcMsg) {
if (pDnode->status == TAOS_DN_STATUS_OFFLINE) { if (pDnode->status == TAOS_DN_STATUS_OFFLINE) {
mTrace("dnode:%d, from offline to online", pDnode->dnodeId); mTrace("dnode:%d, from offline to online", pDnode->dnodeId);
pDnode->status = TAOS_DN_STATUS_READY; pDnode->status = TAOS_DN_STATUS_READY;
balanceUpdateMgmt();
balanceNotify(); balanceNotify();
} }

View File

@ -1,10 +1,5 @@
system sh/stop_dnodes.sh system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1 system sh/deploy.sh -n dnode1 -i 1
system sh/deploy.sh -n dnode2 -i 2 system sh/deploy.sh -n dnode2 -i 2
system sh/deploy.sh -n dnode3 -i 3 system sh/deploy.sh -n dnode3 -i 3
@ -49,8 +44,8 @@ sql insert into d1.t1 values(now+4s, 12)
sql insert into d1.t1 values(now+5s, 11) sql insert into d1.t1 values(now+5s, 11)
sql show dnodes sql show dnodes
print dnode1 openVnodes $data3_1 print dnode1 openVnodes $data2_1
if $data3_1 != 1 then if $data2_1 != 1 then
return -1 return -1
endi endi
@ -68,12 +63,12 @@ show2:
endi endi
sql show dnodes sql show dnodes
print dnode1 openVnodes $data3_1 print dnode1 openVnodes $data2_1
print dnode2 openVnodes $data3_2 print dnode2 openVnodes $data2_2
if $data3_1 != 0 then if $data2_1 != 0 then
goto show2 goto show2
endi endi
if $data3_2 != 1 then if $data2_2 != 1 then
goto show2 goto show2
endi endi
@ -87,12 +82,12 @@ sql insert into d2.t2 values(now+4s, 22)
sql insert into d2.t2 values(now+5s, 21) sql insert into d2.t2 values(now+5s, 21)
sql show dnodes sql show dnodes
print dnode1 openVnodes $data3_1 print dnode1 openVnodes $data2_1
print dnode2 openVnodes $data3_2 print dnode2 openVnodes $data2_2
if $data3_1 != 0 then if $data2_1 != 0 then
return -1 return -1
endi endi
if $data3_2 != 2 then if $data2_2 != 2 then
return -1 return -1
endi endi
@ -108,12 +103,12 @@ show4:
endi endi
sql show dnodes sql show dnodes
print dnode1 openVnodes $data3_1 print dnode1 openVnodes $data2_1
print dnode2 openVnodes $data3_2 print dnode2 openVnodes $data2_2
if $data3_1 != 2 then if $data2_1 != 2 then
goto show4 goto show4
endi endi
if $data3_2 != null then if $data2_2 != null then
goto show4 goto show4
endi endi
if $rows != 1 then if $rows != 1 then
@ -135,16 +130,16 @@ show5:
endi endi
sql show dnodes sql show dnodes
print dnode1 openVnodes $data3_1 print dnode1 openVnodes $data2_1
print dnode2 openVnodes $data3_2 print dnode2 openVnodes $data2_2
print dnode3 openVnodes $data3_3 print dnode3 openVnodes $data2_3
if $data3_1 != 0 then if $data2_1 != 0 then
goto show5 goto show5
endi endi
if $data3_2 != null then if $data2_2 != null then
goto show5 goto show5
endi endi
if $data3_3 != 2 then if $data2_3 != 2 then
goto show5 goto show5
endi endi
@ -158,17 +153,17 @@ sql insert into d3.t3 values(now+4s, 32)
sql insert into d3.t3 values(now+5s, 31) sql insert into d3.t3 values(now+5s, 31)
sql show dnodes sql show dnodes
print dnode1 openVnodes $data3_1 print dnode1 openVnodes $data2_1
print dnode2 openVnodes $data3_2 print dnode2 openVnodes $data2_2
print dnode3 openVnodes $data3_3 print dnode3 openVnodes $data2_3
if $data3_1 != 0 then if $data2_1 != 0 then
return -1 return -1
endi endi
if $data3_2 != null then if $data2_2 != null then
return -1 return -1
endi endi
if $data3_3 != 3 then if $data2_3 != 3 then
return -1 return -1
endi endi
@ -185,20 +180,20 @@ show7:
endi endi
sql show dnodes sql show dnodes
print dnode1 openVnodes $data3_1 print dnode1 openVnodes $data2_1
print dnode2 openVnodes $data3_2 print dnode2 openVnodes $data2_2
print dnode3 openVnodes $data3_3 print dnode3 openVnodes $data2_3
print dnode4 openVnodes $data3_4 print dnode4 openVnodes $data2_4
if $data3_1 != 0 then if $data2_1 != 0 then
goto show7 goto show7
endi endi
if $data3_2 != null then if $data2_2 != null then
goto show7 goto show7
endi endi
if $data3_3 != 2 then if $data2_3 != 2 then
goto show7 goto show7
endi endi
if $data3_4 != 1 then if $data2_4 != 1 then
goto show7 goto show7
endi endi
@ -212,21 +207,21 @@ sql insert into d4.t4 values(now+4s, 42)
sql insert into d4.t4 values(now+5s, 41) sql insert into d4.t4 values(now+5s, 41)
sql show dnodes sql show dnodes
print dnode1 openVnodes $data3_1 print dnode1 openVnodes $data2_1
print dnode2 openVnodes $data3_2 print dnode2 openVnodes $data2_2
print dnode3 openVnodes $data3_3 print dnode3 openVnodes $data2_3
print dnode4 openVnodes $data3_4 print dnode4 openVnodes $data2_4
if $data3_1 != 0 then if $data2_1 != 0 then
return -1 return -1
endi endi
if $data3_2 != null then if $data2_2 != null then
return -1 return -1
endi endi
if $data3_3 != 2 then if $data2_3 != 2 then
return -1 return -1
endi endi
if $data3_4 != 2 then if $data2_4 != 2 then
return -1 return -1
endi endi
@ -242,21 +237,21 @@ show9:
endi endi
sql show dnodes sql show dnodes
print dnode1 openVnodes $data3_1 print dnode1 openVnodes $data2_1
print dnode2 openVnodes $data3_2 print dnode2 openVnodes $data2_2
print dnode3 openVnodes $data3_3 print dnode3 openVnodes $data2_3
print dnode4 openVnodes $data3_4 print dnode4 openVnodes $data2_4
if $data3_1 != 0 then if $data2_1 != 0 then
goto show9 goto show9
endi endi
if $data3_2 != null then if $data2_2 != null then
goto show9 goto show9
endi endi
if $data3_3 != null then if $data2_3 != null then
goto show9 goto show9
endi endi
if $data3_4 != 4 then if $data2_4 != 4 then
goto show9 goto show9
endi endi