[TD-444] fix alter native role error
This commit is contained in:
parent
6a7da09d7f
commit
8a12fc6ef7
|
@ -427,7 +427,7 @@ static void doInitGlobalConfig() {
|
|||
cfg.unitType = TAOS_CFG_UTYPE_NONE;
|
||||
taosInitConfigOption(cfg);
|
||||
|
||||
// 0-any; 1-mnode; 2-dnode
|
||||
// 0-any; 1-mnode; 2-vnode
|
||||
cfg.option = "alternativeRole";
|
||||
cfg.ptr = &tsAlternativeRole;
|
||||
cfg.valType = TAOS_CFG_VTYPE_INT32;
|
||||
|
|
|
@ -27,6 +27,12 @@ typedef enum {
|
|||
TAOS_DN_STATUS_READY
|
||||
} EDnodeStatus;
|
||||
|
||||
typedef enum {
|
||||
TAOS_DN_ALTERNATIVE_ROLE_ANY,
|
||||
TAOS_DN_ALTERNATIVE_ROLE_MNODE,
|
||||
TAOS_DN_ALTERNATIVE_ROLE_VNODE
|
||||
} EDnodeAlternativeRole;
|
||||
|
||||
int32_t mnodeInitDnodes();
|
||||
void mnodeCleanupDnodes();
|
||||
|
||||
|
|
|
@ -58,6 +58,7 @@ static int32_t mnodeGetVnodeMeta(STableMetaMsg *pMeta, SShowObj *pShow, void *pC
|
|||
static int32_t mnodeRetrieveVnodes(SShowObj *pShow, char *data, int32_t rows, void *pConn);
|
||||
static int32_t mnodeGetDnodeMeta(STableMetaMsg *pMeta, SShowObj *pShow, void *pConn);
|
||||
static int32_t mnodeRetrieveDnodes(SShowObj *pShow, char *data, int32_t rows, void *pConn);
|
||||
static char* mnodeGetDnodeAlternativeRoleStr(int32_t alternativeRole);
|
||||
|
||||
static int32_t mnodeDnodeActionDestroy(SSdbOper *pOper) {
|
||||
tfree(pOper->pObj);
|
||||
|
@ -521,6 +522,12 @@ static int32_t mnodeGetDnodeMeta(STableMetaMsg *pMeta, SShowObj *pShow, void *pC
|
|||
pSchema[cols].bytes = htons(pShow->bytes[cols]);
|
||||
cols++;
|
||||
|
||||
pShow->bytes[cols] = 6 + VARSTR_HEADER_SIZE;
|
||||
pSchema[cols].type = TSDB_DATA_TYPE_BINARY;
|
||||
strcpy(pSchema[cols].name, "alternativeRole");
|
||||
pSchema[cols].bytes = htons(pShow->bytes[cols]);
|
||||
cols++;
|
||||
|
||||
pShow->bytes[cols] = 8;
|
||||
pSchema[cols].type = TSDB_DATA_TYPE_TIMESTAMP;
|
||||
strcpy(pSchema[cols].name, "create_time");
|
||||
|
@ -573,11 +580,15 @@ static int32_t mnodeRetrieveDnodes(SShowObj *pShow, char *data, int32_t rows, vo
|
|||
cols++;
|
||||
|
||||
pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows;
|
||||
|
||||
char* status = mnodeGetDnodeStatusStr(pDnode->status);
|
||||
STR_TO_VARSTR(pWrite, status);
|
||||
cols++;
|
||||
|
||||
pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows;
|
||||
char* role = mnodeGetDnodeAlternativeRoleStr(pDnode->alternativeRole);
|
||||
STR_TO_VARSTR(pWrite, role);
|
||||
cols++;
|
||||
|
||||
pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows;
|
||||
*(int64_t *)pWrite = pDnode->createdTime;
|
||||
cols++;
|
||||
|
@ -895,3 +906,13 @@ char* mnodeGetDnodeStatusStr(int32_t dnodeStatus) {
|
|||
default: return "undefined";
|
||||
}
|
||||
}
|
||||
|
||||
static char* mnodeGetDnodeAlternativeRoleStr(int32_t alternativeRole) {
|
||||
switch (alternativeRole) {
|
||||
case TAOS_DN_ALTERNATIVE_ROLE_ANY: return "any";
|
||||
case TAOS_DN_ALTERNATIVE_ROLE_MNODE: return "mnode";
|
||||
case TAOS_DN_ALTERNATIVE_ROLE_VNODE: return "vnode";
|
||||
default:return "any";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -269,6 +269,7 @@ cd ../../../debug; make
|
|||
./test.sh -u -f unique/db/replica_reduce31.sim
|
||||
./test.sh -u -f unique/db/replica_part.sim
|
||||
|
||||
./test.sh -u -f unique/dnode/alternativeRole.sim
|
||||
./test.sh -u -f unique/dnode/balance1.sim
|
||||
./test.sh -u -f unique/dnode/balance2.sim
|
||||
./test.sh -u -f unique/dnode/balance3.sim
|
||||
|
|
|
@ -0,0 +1,91 @@
|
|||
system sh/stop_dnodes.sh
|
||||
|
||||
system sh/deploy.sh -n dnode1 -i 1
|
||||
system sh/deploy.sh -n dnode2 -i 2
|
||||
system sh/deploy.sh -n dnode3 -i 3
|
||||
|
||||
system sh/cfg.sh -n dnode1 -c alternativeRole -v 1
|
||||
system sh/cfg.sh -n dnode2 -c alternativeRole -v 2
|
||||
system sh/cfg.sh -n dnode3 -c alternativeRole -v 0
|
||||
|
||||
system sh/cfg.sh -n dnode1 -c wallevel -v 1
|
||||
system sh/cfg.sh -n dnode2 -c wallevel -v 1
|
||||
system sh/cfg.sh -n dnode3 -c wallevel -v 1
|
||||
|
||||
system sh/cfg.sh -n dnode1 -c numOfMpeers -v 3
|
||||
system sh/cfg.sh -n dnode2 -c numOfMpeers -v 3
|
||||
system sh/cfg.sh -n dnode3 -c numOfMpeers -v 3
|
||||
|
||||
print ========== step1
|
||||
system sh/exec_up.sh -n dnode1 -s start
|
||||
sql connect
|
||||
sql create dnode $hostname2
|
||||
system sh/exec_up.sh -n dnode2 -s start
|
||||
sleep 3000
|
||||
sql create dnode $hostname3
|
||||
system sh/exec_up.sh -n dnode3 -s start
|
||||
sleep 3000
|
||||
|
||||
sql show dnodes
|
||||
print dnode1 $data5_1
|
||||
print dnode1 $data5_2
|
||||
print dnode1 $data5_3
|
||||
|
||||
if $data5_1 != mnode then
|
||||
return -1
|
||||
endi
|
||||
if $data5_2 != vnode then
|
||||
return -1
|
||||
endi
|
||||
if $data5_3 != any then
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql show mnodes
|
||||
print dnode1 ==> $data2_1
|
||||
print dnode2 ==> $data2_2
|
||||
print dnode3 ==> $data2_3
|
||||
if $data2_1 != master then
|
||||
return -1
|
||||
endi
|
||||
if $data2_2 != null then
|
||||
return -1
|
||||
endi
|
||||
if $data2_3 != slave then
|
||||
return -1
|
||||
endi
|
||||
|
||||
print ========== step2
|
||||
sql create database d1 maxTables 4
|
||||
sql create table d1.t1 (ts timestamp, i int)
|
||||
sql create table d1.t2 (ts timestamp, i int)
|
||||
sql create table d1.t3 (ts timestamp, i int)
|
||||
sql create table d1.t4 (ts timestamp, i int)
|
||||
sql create table d1.t5 (ts timestamp, i int)
|
||||
sql create table d1.t6 (ts timestamp, i int)
|
||||
sql create table d1.t7 (ts timestamp, i int)
|
||||
sql create table d1.t8 (ts timestamp, i int)
|
||||
|
||||
sql show dnodes
|
||||
print dnode1 $data2_1
|
||||
print dnode2 $data2_2
|
||||
print dnode3 $data2_3
|
||||
|
||||
if $data2_1 != 0 then
|
||||
return -1
|
||||
endi
|
||||
if $data2_2 != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data2_3 != 1 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
system sh/exec_up.sh -n dnode1 -s stop -x SIGINT
|
||||
system sh/exec_up.sh -n dnode2 -s stop -x SIGINT
|
||||
system sh/exec_up.sh -n dnode3 -s stop -x SIGINT
|
||||
system sh/exec_up.sh -n dnode4 -s stop -x SIGINT
|
||||
system sh/exec_up.sh -n dnode5 -s stop -x SIGINT
|
||||
system sh/exec_up.sh -n dnode6 -s stop -x SIGINT
|
||||
system sh/exec_up.sh -n dnode7 -s stop -x SIGINT
|
||||
system sh/exec_up.sh -n dnode8 -s stop -x SIGINT
|
Loading…
Reference in New Issue