drop_dnode_force.sim 8.4 KB
Newer Older
S
Shengliang Guan 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
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/deploy.sh -n dnode4 -i 4
system sh/deploy.sh -n dnode5 -i 5
system sh/cfg.sh -n dnode1 -c supportVnodes -v 0
system sh/exec.sh -n dnode1 -s start
system sh/exec.sh -n dnode2 -s start
system sh/exec.sh -n dnode3 -s start
system sh/exec.sh -n dnode4 -s start
sql connect

print =============== step1 create dnode2 dnode3 dnode4 dnode 5
sql create dnode $hostname port 7200
sql create dnode $hostname port 7300
sql create dnode $hostname port 7400
sql create dnode $hostname port 7500

$x = 0
step1:
	$ = $x + 1
	sleep 1000
	if $x == 10 then
	  print ====> dnode not online!
		return -1
	endi
sql select * from information_schema.ins_dnodes
print ===> $data00 $data01 $data02 $data03 $data04 $data05
print ===> $data10 $data11 $data12 $data13 $data14 $data15
if $rows != 5 then
  return -1
endi
if $data(1)[4] != ready then
  goto step1
endi
if $data(2)[4] != ready then
  goto step1
endi
if $data(3)[4] != ready then
  goto step1
endi
if $data(4)[4] != ready then
  goto step1
endi
if $data(5)[4] != offline then
  goto step1
endi

print =============== step2 create database
sql create database d1 vgroups 1 replica 3
sql use d1
S
Shengliang Guan 已提交
53 54 55 56 57 58 59 60 61 62 63
sql create table d1.st0 (ts timestamp, i int) tags (j int)
sql create table d1.c0 using st0 tags(0)
sql create table d1.c1 using st0 tags(1)
sql create table d1.c2 using st0 tags(2)
sql create table d1.c3 using st0 tags(3)
sql create table d1.c4 using st0 tags(4)
sql create table d1.c5 using st0 tags(5)
sql create table d1.c6 using st0 tags(6)
sql create table d1.c7 using st0 tags(7)
sql create table d1.c8 using st0 tags(8)
sql create table d1.c9 using st0 tags(9)
S
Shengliang Guan 已提交
64 65 66 67
sql show d1.tables
if $rows != 10 then
  return -1
endi
S
Shengliang Guan 已提交
68 69 70 71 72
print d1.rows ===> $rows
sql select * from information_schema.ins_tables where stable_name = 'st0' and db_name = 'd1'
if $rows != 10 then
  return -1
endi
S
Shengliang Guan 已提交
73 74 75 76 77 78 79 80 81 82 83 84 85 86

sql create database d2 vgroups 3 replica 1
sql use d2
sql create table d2.st1 (ts timestamp, i int) tags (j int)
sql create table d2.c10 using st1 tags(0)
sql create table d2.c11 using st1 tags(1)
sql create table d2.c12 using st1 tags(2)
sql create table d2.c13 using st1 tags(3)
sql create table d2.c14 using st1 tags(4)
sql create table d2.c15 using st1 tags(5)
sql create table d2.c16 using st1 tags(6)
sql create table d2.c17 using st1 tags(7)
sql create table d2.c18 using st1 tags(8)
sql create table d2.c19 using st1 tags(9)
S
Shengliang Guan 已提交
87
sql create table d2.c190 using st1 tags(9)
S
Shengliang Guan 已提交
88
sql show d2.tables
S
Shengliang Guan 已提交
89 90 91 92 93 94 95
if $rows != 11 then
  return -1
endi
sql reset query cache
sql select * from information_schema.ins_tables where stable_name = 'st1' and db_name = 'd2'
print d2.st1.tables ===> $rows
if $rows != 11 then
S
Shengliang Guan 已提交
96 97
  return -1
endi
S
Shengliang Guan 已提交
98

S
Shengliang Guan 已提交
99 100 101 102 103 104 105 106 107 108 109
sql create table d2.st2 (ts timestamp, i int) tags (j int)
sql create table d2.c20 using st2 tags(0)
sql create table d2.c21 using st2 tags(1)
sql create table d2.c22 using st2 tags(2)
sql create table d2.c23 using st2 tags(3)
sql create table d2.c24 using st2 tags(4)
sql create table d2.c25 using st2 tags(5)
sql create table d2.c26 using st2 tags(6)
sql create table d2.c27 using st2 tags(7)
sql create table d2.c28 using st2 tags(8)
sql create table d2.c29 using st2 tags(9)
S
Shengliang Guan 已提交
110 111
sql create table d2.c290 using st2 tags(9)
sql create table d2.c291 using st2 tags(9)
S
Shengliang Guan 已提交
112
sql show d2.tables
S
Shengliang Guan 已提交
113 114 115 116 117 118 119
if $rows != 23 then
  return -1
endi
sql reset query cache
sql select * from information_schema.ins_tables where stable_name = 'st2' and db_name = 'd2'
print d2.st2.tables ===> $rows
if $rows != 12 then
S
Shengliang Guan 已提交
120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194
  return -1
endi

print =============== step3: create qnode snode on dnode 2
sql create qnode on dnode 2
sql create snode on dnode 2
sql select * from information_schema.ins_qnodes
if $rows != 1 then
  return -1
endi
sql show snodes
if $rows != 1 then
  return -1
endi

print =============== step4: create mnode on dnode 2
sql create mnode on dnode 3
sql create mnode on dnode 2
$x = 0
step4: 
	$x = $x + 1
	sleep 1000
	if $x == 10 then
		return -1
	endi
sql select * from information_schema.ins_mnodes -x step4
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] 
print $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] 
print $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[1][4] 
#if $data(1)[2] != leader then
#  goto step4
#endi
if $data(2)[2] != follower then
  goto step4
endi
#if $data(3)[2] != follower then
#  goto step4
#endi

print =============== step5: create dnode 5
system sh/exec.sh -n dnode2 -s stop -x SIGINT
system sh/exec.sh -n dnode5 -s start
$x = 0
step5:
	$ = $x + 1
	sleep 1000
	if $x == 10 then
	  print ====> dnode not online!
		return -1
	endi
sql select * from information_schema.ins_dnodes
print ===> $data00 $data01 $data02 $data03 $data04 $data05
print ===> $data10 $data11 $data12 $data13 $data14 $data15
print ===> $data20 $data21 $data22 $data23 $data24 $data25
print ===> $data30 $data31 $data32 $data33 $data34 $data35
print ===> $data40 $data41 $data42 $data43 $data44 $data45
if $rows != 5 then
  return -1
endi
if $data(1)[4] != ready then
  goto step5
endi
if $data(2)[4] != offline then
  goto step5
endi
if $data(3)[4] != ready then
  goto step5
endi
if $data(4)[4] != ready then
  goto step5
endi
if $data(5)[4] != ready then
  goto step5
endi

195
print =============== step5a: drop dnode 2
S
Shengliang Guan 已提交
196 197 198 199 200 201 202 203 204 205 206
sql_error drop dnode 2
sql drop dnode 2 force

print select * from information_schema.ins_dnodes; 
sql select * from information_schema.ins_dnodes;
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] 
print $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] 
if $rows != 4 then 
  return -1
endi

207 208 209 210 211 212 213 214
$x = 0
step5a:
	$ = $x + 1
	sleep 1000
	if $x == 10 then
	  print ====> dnode not online!
		return -1
	endi
S
Shengliang Guan 已提交
215 216 217 218 219
print select * from information_schema.ins_mnodes; 
sql select * from information_schema.ins_mnodes
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] 
print $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] 
if $rows != 2 then
220
  goto step5a
S
Shengliang Guan 已提交
221 222
endi
if $data(1)[2] != leader then
223
  goto step5a
S
Shengliang Guan 已提交
224 225 226 227 228 229 230 231 232 233 234 235
endi

sql select * from information_schema.ins_qnodes
if $rows != 0 then
  return -1
endi
sql show snodes
if $rows != 0 then
  return -1
endi

print =============== step6: check d1
S
Shengliang Guan 已提交
236
sql reset query cache
S
Shengliang Guan 已提交
237 238 239 240 241 242 243
sql show d1.tables
if $rows != 10 then
  return -1
endi

print =============== step7: check d2
sql show d2.tables
S
Shengliang Guan 已提交
244 245
print ===> d2.tables: $rows remained
if $rows > 23 then
S
Shengliang Guan 已提交
246 247
  return -1
endi
S
Shengliang Guan 已提交
248
if $rows <= 0 then
S
Shengliang Guan 已提交
249 250 251
  return -1
endi

S
Shengliang Guan 已提交
252 253 254 255 256
print =============== step8: drop stable and recreate it
sql select * from information_schema.ins_tables where stable_name = 'st2' and db_name = 'd2'
print d2.st2.tables ==> $rows

sql drop table d2.st2;
S
Shengliang Guan 已提交
257 258 259 260 261 262 263 264 265 266 267
sql create table d2.st2 (ts timestamp, i int) tags (j int)
sql create table d2.c20 using st2 tags(0)
sql create table d2.c21 using st2 tags(1)
sql create table d2.c22 using st2 tags(2)
sql create table d2.c23 using st2 tags(3)
sql create table d2.c24 using st2 tags(4)
sql create table d2.c25 using st2 tags(5)
sql create table d2.c26 using st2 tags(6)
sql create table d2.c27 using st2 tags(7)
sql create table d2.c28 using st2 tags(8)
sql create table d2.c29 using st2 tags(9)
S
Shengliang Guan 已提交
268 269 270 271 272 273 274
sql create table d2.c30 using st2 tags(9)
sql create table d2.c31 using st2 tags(9)
sql create table d2.c32 using st2 tags(9)

sql select * from information_schema.ins_tables where stable_name = 'st2' and db_name = 'd2'
print d2.st2.tables ==> $rows
if $rows != 13 then
S
Shengliang Guan 已提交
275 276 277
  return -1
endi

S
Shengliang Guan 已提交
278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306
print =============== step9: alter stable
return 
print By modifying the stable, the missing stable information can be reconstructed in the vnode.
print However, currently, getting the stable meta from the vnode, and return the table not exist 
print To handle this, we need to modify the way stable-meta is fetched 

sql select * from information_schema.ins_tables where stable_name = 'st1' and db_name = 'd2'
print d2.st1.tables ==> $rows
$remains = $rows

sql alter table d2.st1 add column b smallint
return
sql create table d2.c30 using st tags(0)
sql create table d2.c31 using st tags(1)
sql create table d2.c32 using st tags(2)
sql create table d2.c33 using st tags(3)
sql create table d2.c34 using st tags(4)
sql create table d2.c35 using st tags(5)
sql create table d2.c36 using st tags(6)
sql create table d2.c37 using st tags(7)
sql create table d2.c38 using st tags(8)
sql create table d2.c39 using st tags(9)
sql show d2.tables
print d2.st1.tables ==> $rows

$total = $remains + 10
if $rows != $total then
  return -1
endi
S
Shengliang Guan 已提交
307 308 309

system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode2 -s stop -x SIGINT