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 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 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 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 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 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478
|
-- test for xlog_reader module
-- consists of 3 parts:
-- 1) ok snap/xlog reader
-- 2) broken files reader (crc sum is invalid, bad header [version/type])
-- 3) before box.cfg and after box.cfg
fio = require('fio')
---
...
fun = require('fun')
---
...
json = require('json')
---
...
xlog = require('xlog').pairs
---
...
trun = require('test_run').new()
---
...
pattern_prefix = fio.pathjoin(os.getenv("SOURCEDIR"), "test/xlog/reader")
---
...
pattern_prefix_re = pattern_prefix:gsub("/", "\\/")
---
...
trun:cmd(("push filter '%s' to '%s'"):format(pattern_prefix_re, "<prefix>"))
---
- true
...
pattern_ok_v12 = fio.pathjoin(pattern_prefix, "v12/")
---
...
pattern_ok_v13 = fio.pathjoin(pattern_prefix, "v13/")
---
...
trun:cmd("setopt delimiter ';'")
---
- true
...
function collect_results(file)
local val = {}
for k, v in xlog(file) do
table.insert(val, setmetatable(v, { __serialize = "map"}))
end
return val
end;
---
...
fun.iter({
fio.pathjoin(pattern_ok_v12, '00000000000000000000.ok.snap'),
fio.pathjoin(pattern_ok_v12, '00000000000000000000.ok.xlog'),
}):map(collect_results):totable();
---
- - - {'HEADER': {'lsn': 1, 'type': 'INSERT'}, 'BODY': {'space_id': 272, 'tuple': [
'cluster', '1366b1b5-2329-46f4-9fce-a1dc4275d469']}}
- {'HEADER': {'lsn': 2, 'type': 'INSERT'}, 'BODY': {'space_id': 272, 'tuple': [
'max_id', 511]}}
- {'HEADER': {'lsn': 3, 'type': 'INSERT'}, 'BODY': {'space_id': 272, 'tuple': [
'version', 1, 6, 8]}}
- {'HEADER': {'lsn': 4, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
272, 1, '_schema', 'memtx', 0, {}, [{'type': 'str', 'name': 'key'}]]}}
- {'HEADER': {'lsn': 5, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
280, 1, '_space', 'memtx', 0, {}, [{'name': 'id', 'type': 'num'}, {'name': 'owner',
'type': 'num'}, {'name': 'name', 'type': 'str'}, {'name': 'engine',
'type': 'str'}, {'name': 'field_count', 'type': 'num'}, {'name': 'flags',
'type': 'str'}, {'name': 'format', 'type': '*'}]]}}
- {'HEADER': {'lsn': 6, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
281, 1, '_vspace', 'sysview', 0, {}, [{'name': 'id', 'type': 'num'}, {'name': 'owner',
'type': 'num'}, {'name': 'name', 'type': 'str'}, {'name': 'engine',
'type': 'str'}, {'name': 'field_count', 'type': 'num'}, {'name': 'flags',
'type': 'str'}, {'name': 'format', 'type': '*'}]]}}
- {'HEADER': {'lsn': 7, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
288, 1, '_index', 'memtx', 0, {}, [{'name': 'id', 'type': 'num'}, {'name': 'iid',
'type': 'num'}, {'name': 'name', 'type': 'str'}, {'name': 'type', 'type': 'str'},
{'name': 'opts', 'type': 'array'}, {'name': 'parts', 'type': 'array'}]]}}
- {'HEADER': {'lsn': 8, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
289, 1, '_vindex', 'sysview', 0, {}, [{'name': 'id', 'type': 'num'}, {'name': 'iid',
'type': 'num'}, {'name': 'name', 'type': 'str'}, {'name': 'type', 'type': 'str'},
{'name': 'opts', 'type': 'array'}, {'name': 'parts', 'type': 'array'}]]}}
- {'HEADER': {'lsn': 9, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
296, 1, '_func', 'memtx', 0, {}, [{'name': 'id', 'type': 'num'}, {'name': 'owner',
'type': 'num'}, {'name': 'name', 'type': 'str'}, {'name': 'setuid',
'type': 'num'}]]}}
- {'HEADER': {'lsn': 10, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
297, 1, '_vfunc', 'sysview', 0, {}, [{'name': 'id', 'type': 'num'}, {'name': 'owner',
'type': 'num'}, {'name': 'name', 'type': 'str'}, {'name': 'setuid',
'type': 'num'}]]}}
- {'HEADER': {'lsn': 11, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
304, 1, '_user', 'memtx', 0, {}, [{'name': 'id', 'type': 'num'}, {'name': 'owner',
'type': 'num'}, {'name': 'name', 'type': 'str'}, {'name': 'type', 'type': 'str'},
{'name': 'auth', 'type': '*'}]]}}
- {'HEADER': {'lsn': 12, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
305, 1, '_vuser', 'sysview', 0, {}, [{'name': 'id', 'type': 'num'}, {'name': 'owner',
'type': 'num'}, {'name': 'name', 'type': 'str'}, {'name': 'type', 'type': 'str'},
{'name': 'auth', 'type': '*'}]]}}
- {'HEADER': {'lsn': 13, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
312, 1, '_priv', 'memtx', 0, {}, [{'name': 'grantor', 'type': 'num'}, {
'name': 'grantee', 'type': 'num'}, {'name': 'object_type', 'type': 'str'},
{'name': 'object_id', 'type': 'num'}, {'name': 'privilege', 'type': 'num'}]]}}
- {'HEADER': {'lsn': 14, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
313, 1, '_vpriv', 'sysview', 0, {}, [{'name': 'grantor', 'type': 'num'},
{'name': 'grantee', 'type': 'num'}, {'name': 'object_type', 'type': 'str'},
{'name': 'object_id', 'type': 'num'}, {'name': 'privilege', 'type': 'num'}]]}}
- {'HEADER': {'lsn': 15, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
320, 1, '_cluster', 'memtx', 0, {}, [{'name': 'id', 'type': 'num'}, {'name': 'uuid',
'type': 'str'}]]}}
- {'HEADER': {'lsn': 16, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
272, 0, 'primary', 'tree', {'unique': true}, [[0, 'str']]]}}
- {'HEADER': {'lsn': 17, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
280, 0, 'primary', 'tree', {'unique': true}, [[0, 'num']]]}}
- {'HEADER': {'lsn': 18, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
280, 1, 'owner', 'tree', {'unique': false}, [[1, 'num']]]}}
- {'HEADER': {'lsn': 19, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
280, 2, 'name', 'tree', {'unique': true}, [[2, 'str']]]}}
- {'HEADER': {'lsn': 20, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
281, 0, 'primary', 'tree', {'unique': true}, [[0, 'num']]]}}
- {'HEADER': {'lsn': 21, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
281, 1, 'owner', 'tree', {'unique': false}, [[1, 'num']]]}}
- {'HEADER': {'lsn': 22, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
281, 2, 'name', 'tree', {'unique': true}, [[2, 'str']]]}}
- {'HEADER': {'lsn': 23, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
288, 0, 'primary', 'tree', {'unique': true}, [[0, 'num'], [1, 'num']]]}}
- {'HEADER': {'lsn': 24, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
288, 2, 'name', 'tree', {'unique': true}, [[0, 'num'], [2, 'str']]]}}
- {'HEADER': {'lsn': 25, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
289, 0, 'primary', 'tree', {'unique': true}, [[0, 'num'], [1, 'num']]]}}
- {'HEADER': {'lsn': 26, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
289, 2, 'name', 'tree', {'unique': true}, [[0, 'num'], [2, 'str']]]}}
- {'HEADER': {'lsn': 27, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
296, 0, 'primary', 'tree', {'unique': true}, [[0, 'num']]]}}
- {'HEADER': {'lsn': 28, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
296, 1, 'owner', 'tree', {'unique': false}, [[1, 'num']]]}}
- {'HEADER': {'lsn': 29, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
296, 2, 'name', 'tree', {'unique': true}, [[2, 'str']]]}}
- {'HEADER': {'lsn': 30, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
297, 0, 'primary', 'tree', {'unique': true}, [[0, 'num']]]}}
- {'HEADER': {'lsn': 31, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
297, 1, 'owner', 'tree', {'unique': false}, [[1, 'num']]]}}
- {'HEADER': {'lsn': 32, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
297, 2, 'name', 'tree', {'unique': true}, [[2, 'str']]]}}
- {'HEADER': {'lsn': 33, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
304, 0, 'primary', 'tree', {'unique': true}, [[0, 'num']]]}}
- {'HEADER': {'lsn': 34, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
304, 1, 'owner', 'tree', {'unique': false}, [[1, 'num']]]}}
- {'HEADER': {'lsn': 35, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
304, 2, 'name', 'tree', {'unique': true}, [[2, 'str']]]}}
- {'HEADER': {'lsn': 36, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
305, 0, 'primary', 'tree', {'unique': true}, [[0, 'num']]]}}
- {'HEADER': {'lsn': 37, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
305, 1, 'owner', 'tree', {'unique': false}, [[1, 'num']]]}}
- {'HEADER': {'lsn': 38, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
305, 2, 'name', 'tree', {'unique': true}, [[2, 'str']]]}}
- {'HEADER': {'lsn': 39, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
312, 0, 'primary', 'tree', {'unique': true}, [[1, 'num'], [2, 'str'], [
3, 'num']]]}}
- {'HEADER': {'lsn': 40, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
312, 1, 'owner', 'tree', {'unique': false}, [[0, 'num']]]}}
- {'HEADER': {'lsn': 41, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
312, 2, 'object', 'tree', {'unique': false}, [[2, 'str'], [3, 'num']]]}}
- {'HEADER': {'lsn': 42, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
313, 0, 'primary', 'tree', {'unique': true}, [[1, 'num'], [2, 'str'], [
3, 'num']]]}}
- {'HEADER': {'lsn': 43, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
313, 1, 'owner', 'tree', {'unique': false}, [[0, 'num']]]}}
- {'HEADER': {'lsn': 44, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
313, 2, 'object', 'tree', {'unique': false}, [[2, 'str'], [3, 'num']]]}}
- {'HEADER': {'lsn': 45, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
320, 0, 'primary', 'tree', {'unique': true}, [[0, 'num']]]}}
- {'HEADER': {'lsn': 46, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
320, 1, 'uuid', 'tree', {'unique': true}, [[1, 'str']]]}}
- {'HEADER': {'lsn': 47, 'type': 'INSERT'}, 'BODY': {'space_id': 296, 'tuple': [
1, 1, 'box.schema.user.info', 1, 'LUA']}}
- {'HEADER': {'lsn': 48, 'type': 'INSERT'}, 'BODY': {'space_id': 304, 'tuple': [
0, 1, 'guest', 'user']}}
- {'HEADER': {'lsn': 49, 'type': 'INSERT'}, 'BODY': {'space_id': 304, 'tuple': [
1, 1, 'admin', 'user']}}
- {'HEADER': {'lsn': 50, 'type': 'INSERT'}, 'BODY': {'space_id': 304, 'tuple': [
2, 1, 'public', 'role']}}
- {'HEADER': {'lsn': 51, 'type': 'INSERT'}, 'BODY': {'space_id': 304, 'tuple': [
3, 1, 'replication', 'role']}}
- {'HEADER': {'lsn': 52, 'type': 'INSERT'}, 'BODY': {'space_id': 312, 'tuple': [
1, 0, 'role', 2, 4]}}
- {'HEADER': {'lsn': 53, 'type': 'INSERT'}, 'BODY': {'space_id': 312, 'tuple': [
1, 1, 'universe', 0, 7]}}
- {'HEADER': {'lsn': 54, 'type': 'INSERT'}, 'BODY': {'space_id': 312, 'tuple': [
1, 2, 'function', 1, 4]}}
- {'HEADER': {'lsn': 55, 'type': 'INSERT'}, 'BODY': {'space_id': 312, 'tuple': [
1, 2, 'space', 281, 1]}}
- {'HEADER': {'lsn': 56, 'type': 'INSERT'}, 'BODY': {'space_id': 312, 'tuple': [
1, 2, 'space', 289, 1]}}
- {'HEADER': {'lsn': 57, 'type': 'INSERT'}, 'BODY': {'space_id': 312, 'tuple': [
1, 2, 'space', 297, 1]}}
- {'HEADER': {'lsn': 58, 'type': 'INSERT'}, 'BODY': {'space_id': 312, 'tuple': [
1, 2, 'space', 305, 1]}}
- {'HEADER': {'lsn': 59, 'type': 'INSERT'}, 'BODY': {'space_id': 312, 'tuple': [
1, 2, 'space', 313, 1]}}
- {'HEADER': {'lsn': 60, 'type': 'INSERT'}, 'BODY': {'space_id': 312, 'tuple': [
1, 3, 'space', 320, 2]}}
- {'HEADER': {'lsn': 61, 'type': 'INSERT'}, 'BODY': {'space_id': 312, 'tuple': [
1, 3, 'universe', 0, 1]}}
- {'HEADER': {'lsn': 62, 'type': 'INSERT'}, 'BODY': {'space_id': 320, 'tuple': [
1, '65f1a623-9e99-47b3-92e5-0c9a63ff566c']}}
- - {'HEADER': {'lsn': 1, 'replica_id': 1, 'type': 'UPDATE', 'timestamp': 1476117049.224},
'BODY': {'space_id': 272, 'index_base': 1, 'key': ['max_id'], 'tuple': [['+',
2, 1]]}}
- {'HEADER': {'lsn': 2, 'replica_id': 1, 'type': 'INSERT', 'timestamp': 1476117049.2246},
'BODY': {'space_id': 280, 'tuple': [512, 1, 'test', 'memtx', 0, {}, []]}}
- {'HEADER': {'lsn': 3, 'replica_id': 1, 'type': 'INSERT', 'timestamp': 1476117049.2247},
'BODY': {'space_id': 288, 'tuple': [512, 0, 'primary', 'tree', {'unique': true},
[[0, 'num']]]}}
- {'HEADER': {'lsn': 4, 'replica_id': 1, 'type': 'INSERT', 'timestamp': 1476117049.2247},
'BODY': {'space_id': 512, 'tuple': [1, 2, 3, 4]}}
- {'HEADER': {'lsn': 5, 'replica_id': 1, 'type': 'REPLACE', 'timestamp': 1476117049.2248},
'BODY': {'space_id': 512, 'tuple': [2, 2, 3, 4]}}
- {'HEADER': {'lsn': 6, 'replica_id': 1, 'type': 'DELETE', 'timestamp': 1476117049.2248},
'BODY': {'space_id': 512, 'key': [1]}}
- {'HEADER': {'lsn': 7, 'replica_id': 1, 'type': 'UPDATE', 'timestamp': 1476117049.2248},
'BODY': {'space_id': 512, 'index_base': 1, 'key': [2], 'tuple': [['=', 3, 4]]}}
- {'HEADER': {'lsn': 8, 'replica_id': 1, 'type': 'UPSERT', 'timestamp': 1476117049.2248},
'BODY': {'space_id': 512, 'operations': [['=', 3, 4]], 'index_base': 1, 'tuple': [
3, 4, 5, 6]}}
- {'HEADER': {'lsn': 9, 'replica_id': 1, 'type': 'UPSERT', 'timestamp': 1476117049.2249},
'BODY': {'space_id': 512, 'operations': [['=', 3, 4]], 'index_base': 1, 'tuple': [
3, 4, 5, 6]}}
...
collectgarbage('collect');
---
- 0
...
fun.iter({
fio.pathjoin(pattern_ok_v13, '00000000000000000000.ok.snap'),
fio.pathjoin(pattern_ok_v13, '00000000000000000000.ok.xlog'),
}):map(collect_results):totable();
---
- - - {'HEADER': {'lsn': 1, 'type': 'INSERT'}, 'BODY': {'space_id': 272, 'tuple': [
'cluster', '95166c09-cc9b-4b5b-96ef-9bcc3190abbb']}}
- {'HEADER': {'lsn': 2, 'type': 'INSERT'}, 'BODY': {'space_id': 272, 'tuple': [
'max_id', 511]}}
- {'HEADER': {'lsn': 3, 'type': 'INSERT'}, 'BODY': {'space_id': 272, 'tuple': [
'version', 1, 7, 2]}}
- {'HEADER': {'lsn': 4, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
272, 1, '_schema', 'memtx', 0, {}, [{'type': 'str', 'name': 'key'}]]}}
- {'HEADER': {'lsn': 5, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
280, 1, '_space', 'memtx', 0, {}, [{'name': 'id', 'type': 'num'}, {'name': 'owner',
'type': 'num'}, {'name': 'name', 'type': 'str'}, {'name': 'engine',
'type': 'str'}, {'name': 'field_count', 'type': 'num'}, {'name': 'flags',
'type': 'str'}, {'name': 'format', 'type': '*'}]]}}
- {'HEADER': {'lsn': 6, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
281, 1, '_vspace', 'sysview', 0, {}, [{'name': 'id', 'type': 'num'}, {'name': 'owner',
'type': 'num'}, {'name': 'name', 'type': 'str'}, {'name': 'engine',
'type': 'str'}, {'name': 'field_count', 'type': 'num'}, {'name': 'flags',
'type': 'str'}, {'name': 'format', 'type': '*'}]]}}
- {'HEADER': {'lsn': 7, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
288, 1, '_index', 'memtx', 0, {}, [{'name': 'id', 'type': 'num'}, {'name': 'iid',
'type': 'num'}, {'name': 'name', 'type': 'str'}, {'name': 'type', 'type': 'str'},
{'name': 'opts', 'type': 'array'}, {'name': 'parts', 'type': 'array'}]]}}
- {'HEADER': {'lsn': 8, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
289, 1, '_vindex', 'sysview', 0, {}, [{'name': 'id', 'type': 'num'}, {'name': 'iid',
'type': 'num'}, {'name': 'name', 'type': 'str'}, {'name': 'type', 'type': 'str'},
{'name': 'opts', 'type': 'array'}, {'name': 'parts', 'type': 'array'}]]}}
- {'HEADER': {'lsn': 9, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
296, 1, '_func', 'memtx', 0, {}, [{'name': 'id', 'type': 'num'}, {'name': 'owner',
'type': 'num'}, {'name': 'name', 'type': 'str'}, {'name': 'setuid',
'type': 'num'}]]}}
- {'HEADER': {'lsn': 10, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
297, 1, '_vfunc', 'sysview', 0, {}, [{'name': 'id', 'type': 'num'}, {'name': 'owner',
'type': 'num'}, {'name': 'name', 'type': 'str'}, {'name': 'setuid',
'type': 'num'}]]}}
- {'HEADER': {'lsn': 11, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
304, 1, '_user', 'memtx', 0, {}, [{'name': 'id', 'type': 'num'}, {'name': 'owner',
'type': 'num'}, {'name': 'name', 'type': 'str'}, {'name': 'type', 'type': 'str'},
{'name': 'auth', 'type': '*'}]]}}
- {'HEADER': {'lsn': 12, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
305, 1, '_vuser', 'sysview', 0, {}, [{'name': 'id', 'type': 'num'}, {'name': 'owner',
'type': 'num'}, {'name': 'name', 'type': 'str'}, {'name': 'type', 'type': 'str'},
{'name': 'auth', 'type': '*'}]]}}
- {'HEADER': {'lsn': 13, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
312, 1, '_priv', 'memtx', 0, {}, [{'name': 'grantor', 'type': 'num'}, {
'name': 'grantee', 'type': 'num'}, {'name': 'object_type', 'type': 'str'},
{'name': 'object_id', 'type': 'num'}, {'name': 'privilege', 'type': 'num'}]]}}
- {'HEADER': {'lsn': 14, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
313, 1, '_vpriv', 'sysview', 0, {}, [{'name': 'grantor', 'type': 'num'},
{'name': 'grantee', 'type': 'num'}, {'name': 'object_type', 'type': 'str'},
{'name': 'object_id', 'type': 'num'}, {'name': 'privilege', 'type': 'num'}]]}}
- {'HEADER': {'lsn': 15, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
320, 1, '_cluster', 'memtx', 0, {}, [{'name': 'id', 'type': 'num'}, {'name': 'uuid',
'type': 'str'}]]}}
- {'HEADER': {'lsn': 16, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
272, 0, 'primary', 'tree', {'unique': true}, [[0, 'string']]]}}
- {'HEADER': {'lsn': 17, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
280, 0, 'primary', 'tree', {'unique': true}, [[0, 'unsigned']]]}}
- {'HEADER': {'lsn': 18, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
280, 1, 'owner', 'tree', {'unique': false}, [[1, 'unsigned']]]}}
- {'HEADER': {'lsn': 19, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
280, 2, 'name', 'tree', {'unique': true}, [[2, 'string']]]}}
- {'HEADER': {'lsn': 20, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
281, 0, 'primary', 'tree', {'unique': true}, [[0, 'unsigned']]]}}
- {'HEADER': {'lsn': 21, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
281, 1, 'owner', 'tree', {'unique': false}, [[1, 'unsigned']]]}}
- {'HEADER': {'lsn': 22, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
281, 2, 'name', 'tree', {'unique': true}, [[2, 'string']]]}}
- {'HEADER': {'lsn': 23, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
288, 0, 'primary', 'tree', {'unique': true}, [[0, 'unsigned'], [1, 'unsigned']]]}}
- {'HEADER': {'lsn': 24, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
288, 2, 'name', 'tree', {'unique': true}, [[0, 'unsigned'], [2, 'string']]]}}
- {'HEADER': {'lsn': 25, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
289, 0, 'primary', 'tree', {'unique': true}, [[0, 'unsigned'], [1, 'unsigned']]]}}
- {'HEADER': {'lsn': 26, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
289, 2, 'name', 'tree', {'unique': true}, [[0, 'unsigned'], [2, 'string']]]}}
- {'HEADER': {'lsn': 27, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
296, 0, 'primary', 'tree', {'unique': true}, [[0, 'unsigned']]]}}
- {'HEADER': {'lsn': 28, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
296, 1, 'owner', 'tree', {'unique': false}, [[1, 'unsigned']]]}}
- {'HEADER': {'lsn': 29, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
296, 2, 'name', 'tree', {'unique': true}, [[2, 'string']]]}}
- {'HEADER': {'lsn': 30, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
297, 0, 'primary', 'tree', {'unique': true}, [[0, 'unsigned']]]}}
- {'HEADER': {'lsn': 31, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
297, 1, 'owner', 'tree', {'unique': false}, [[1, 'unsigned']]]}}
- {'HEADER': {'lsn': 32, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
297, 2, 'name', 'tree', {'unique': true}, [[2, 'string']]]}}
- {'HEADER': {'lsn': 33, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
304, 0, 'primary', 'tree', {'unique': true}, [[0, 'unsigned']]]}}
- {'HEADER': {'lsn': 34, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
304, 1, 'owner', 'tree', {'unique': false}, [[1, 'unsigned']]]}}
- {'HEADER': {'lsn': 35, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
304, 2, 'name', 'tree', {'unique': true}, [[2, 'string']]]}}
- {'HEADER': {'lsn': 36, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
305, 0, 'primary', 'tree', {'unique': true}, [[0, 'unsigned']]]}}
- {'HEADER': {'lsn': 37, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
305, 1, 'owner', 'tree', {'unique': false}, [[1, 'unsigned']]]}}
- {'HEADER': {'lsn': 38, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
305, 2, 'name', 'tree', {'unique': true}, [[2, 'string']]]}}
- {'HEADER': {'lsn': 39, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
312, 0, 'primary', 'tree', {'unique': true}, [[1, 'unsigned'], [2, 'string'],
[3, 'unsigned']]]}}
- {'HEADER': {'lsn': 40, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
312, 1, 'owner', 'tree', {'unique': false}, [[0, 'unsigned']]]}}
- {'HEADER': {'lsn': 41, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
312, 2, 'object', 'tree', {'unique': false}, [[2, 'string'], [3, 'unsigned']]]}}
- {'HEADER': {'lsn': 42, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
313, 0, 'primary', 'tree', {'unique': true}, [[1, 'unsigned'], [2, 'string'],
[3, 'unsigned']]]}}
- {'HEADER': {'lsn': 43, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
313, 1, 'owner', 'tree', {'unique': false}, [[0, 'unsigned']]]}}
- {'HEADER': {'lsn': 44, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
313, 2, 'object', 'tree', {'unique': false}, [[2, 'string'], [3, 'unsigned']]]}}
- {'HEADER': {'lsn': 45, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
320, 0, 'primary', 'tree', {'unique': true}, [[0, 'unsigned']]]}}
- {'HEADER': {'lsn': 46, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
320, 1, 'uuid', 'tree', {'unique': true}, [[1, 'string']]]}}
- {'HEADER': {'lsn': 47, 'type': 'INSERT'}, 'BODY': {'space_id': 296, 'tuple': [
1, 1, 'box.schema.user.info', 1, 'LUA']}}
- {'HEADER': {'lsn': 48, 'type': 'INSERT'}, 'BODY': {'space_id': 304, 'tuple': [
0, 1, 'guest', 'user', {'chap-sha1': 'vhvewKp0tNyweZQ+cFKAlsyphfg='}]}}
- {'HEADER': {'lsn': 49, 'type': 'INSERT'}, 'BODY': {'space_id': 304, 'tuple': [
1, 1, 'admin', 'user']}}
- {'HEADER': {'lsn': 50, 'type': 'INSERT'}, 'BODY': {'space_id': 304, 'tuple': [
2, 1, 'public', 'role']}}
- {'HEADER': {'lsn': 51, 'type': 'INSERT'}, 'BODY': {'space_id': 304, 'tuple': [
3, 1, 'replication', 'role']}}
- {'HEADER': {'lsn': 52, 'type': 'INSERT'}, 'BODY': {'space_id': 312, 'tuple': [
1, 0, 'role', 2, 4]}}
- {'HEADER': {'lsn': 53, 'type': 'INSERT'}, 'BODY': {'space_id': 312, 'tuple': [
1, 1, 'universe', 0, 7]}}
- {'HEADER': {'lsn': 54, 'type': 'INSERT'}, 'BODY': {'space_id': 312, 'tuple': [
1, 2, 'function', 1, 4]}}
- {'HEADER': {'lsn': 55, 'type': 'INSERT'}, 'BODY': {'space_id': 312, 'tuple': [
1, 2, 'space', 281, 1]}}
- {'HEADER': {'lsn': 56, 'type': 'INSERT'}, 'BODY': {'space_id': 312, 'tuple': [
1, 2, 'space', 289, 1]}}
- {'HEADER': {'lsn': 57, 'type': 'INSERT'}, 'BODY': {'space_id': 312, 'tuple': [
1, 2, 'space', 297, 1]}}
- {'HEADER': {'lsn': 58, 'type': 'INSERT'}, 'BODY': {'space_id': 312, 'tuple': [
1, 2, 'space', 305, 1]}}
- {'HEADER': {'lsn': 59, 'type': 'INSERT'}, 'BODY': {'space_id': 312, 'tuple': [
1, 2, 'space', 313, 1]}}
- {'HEADER': {'lsn': 60, 'type': 'INSERT'}, 'BODY': {'space_id': 312, 'tuple': [
1, 3, 'space', 320, 2]}}
- {'HEADER': {'lsn': 61, 'type': 'INSERT'}, 'BODY': {'space_id': 312, 'tuple': [
1, 3, 'universe', 0, 1]}}
- {'HEADER': {'lsn': 62, 'type': 'INSERT'}, 'BODY': {'space_id': 320, 'tuple': [
1, '3083fa40-34fa-48da-8438-cf5d47f43f0a']}}
- - {'HEADER': {'lsn': 1, 'replica_id': 1, 'type': 'UPDATE', 'timestamp': 1475796386.2266},
'BODY': {'space_id': 272, 'index_base': 1, 'key': ['max_id'], 'tuple': [['+',
2, 1]]}}
- {'HEADER': {'lsn': 2, 'replica_id': 1, 'type': 'INSERT', 'timestamp': 1475796386.2291},
'BODY': {'space_id': 280, 'tuple': [512, 1, 'test', 'memtx', 0, {}, []]}}
- {'HEADER': {'lsn': 3, 'replica_id': 1, 'type': 'INSERT', 'timestamp': 1475796409.4258},
'BODY': {'space_id': 288, 'tuple': [512, 0, 'primary', 'tree', {'unique': true,
'lsn': 2}, [[0, 'unsigned']]]}}
- {'HEADER': {'lsn': 4, 'replica_id': 1, 'type': 'INSERT', 'timestamp': 1475796454.2693},
'BODY': {'space_id': 512, 'tuple': [1, 2, 3, 4]}}
- {'HEADER': {'lsn': 5, 'replica_id': 1, 'type': 'REPLACE', 'timestamp': 1475796459.9428},
'BODY': {'space_id': 512, 'tuple': [2, 2, 3, 4]}}
- {'HEADER': {'lsn': 6, 'replica_id': 1, 'type': 'DELETE', 'timestamp': 1475796470.6977},
'BODY': {'space_id': 512, 'key': [1]}}
- {'HEADER': {'lsn': 7, 'replica_id': 1, 'type': 'UPDATE', 'timestamp': 1475796500.8061},
'BODY': {'space_id': 512, 'index_base': 1, 'key': [2], 'tuple': [['=', 3, 4]]}}
- {'HEADER': {'lsn': 8, 'replica_id': 1, 'type': 'UPSERT', 'timestamp': 1475796514.5016},
'BODY': {'space_id': 512, 'operations': [['=', 3, 4]], 'index_base': 1, 'tuple': [
3, 4, 5, 6]}}
- {'HEADER': {'lsn': 9, 'replica_id': 1, 'type': 'UPSERT', 'timestamp': 1475796515.7168},
'BODY': {'space_id': 512, 'operations': [['=', 3, 4]], 'index_base': 1, 'tuple': [
3, 4, 5, 6]}}
...
collectgarbage('collect');
---
- 0
...
check_error = function(name, err)
local path = fio.pathjoin(pattern_prefix, name)
local stat, oerr = pcall(collect_results, path)
if stat == true or not string.find(tostring(oerr), err) then
return false, oerr
end
return true
end;
---
...
trun:cmd("setopt delimiter ''");
---
- true
...
check_error("version.bad.xlog", "file format version")
---
- true
...
check_error("format.bad.xlog", "not support 'SNOP' file type")
---
- true
...
collect_results(fio.pathjoin(pattern_prefix, "crc.bad.xlog"))
---
- - {'HEADER': {'lsn': 1, 'replica_id': 1, 'type': 'UPDATE', 'timestamp': 1475796386.2266},
'BODY': {'space_id': 272, 'index_base': 1, 'key': ['max_id'], 'tuple': [['+',
2, 1]]}}
- {'HEADER': {'lsn': 2, 'replica_id': 1, 'type': 'INSERT', 'timestamp': 1475796386.2291},
'BODY': {'space_id': 280, 'tuple': [512, 1, 'test', 'memtx', 0, {}, []]}}
- {'HEADER': {'lsn': 3, 'replica_id': 1, 'type': 'INSERT', 'timestamp': 1475796409.4258},
'BODY': {'space_id': 288, 'tuple': [512, 0, 'primary', 'tree', {'unique': true,
'lsn': 2}, [[0, 'unsigned']]]}}
- {'HEADER': {'lsn': 4, 'replica_id': 1, 'type': 'INSERT', 'timestamp': 1475796454.2693},
'BODY': {'space_id': 512, 'tuple': [1, 2, 3, 4]}}
- {'HEADER': {'lsn': 6, 'replica_id': 1, 'type': 'DELETE', 'timestamp': 1475796470.6977},
'BODY': {'space_id': 512, 'key': [1]}}
- {'HEADER': {'lsn': 7, 'replica_id': 1, 'type': 'UPDATE', 'timestamp': 1475796500.8061},
'BODY': {'space_id': 512, 'index_base': 1, 'key': [2], 'tuple': [['=', 3, 4]]}}
- {'HEADER': {'lsn': 8, 'replica_id': 1, 'type': 'UPSERT', 'timestamp': 1475796514.5016},
'BODY': {'space_id': 512, 'operations': [['=', 3, 4]], 'index_base': 1, 'tuple': [
3, 4, 5, 6]}}
- {'HEADER': {'lsn': 9, 'replica_id': 1, 'type': 'UPSERT', 'timestamp': 1475796515.7168},
'BODY': {'space_id': 512, 'operations': [['=', 3, 4]], 'index_base': 1, 'tuple': [
3, 4, 5, 6]}}
...
collect_results(fio.pathjoin(pattern_prefix, "eof.bad.xlog"))
---
- - {'HEADER': {'type': 'INSERT'}, 'BODY': {'tuple': [0, {0: 8, 7: [[0, 'unsigned']],
6: 513}]}}
- {'HEADER': {'type': 'INSERT'}, 'BODY': {'tuple': [10, {0: 8, 9: 12}]}}
- {'HEADER': {'type': 'INSERT'}, 'BODY': {'tuple': [5, {0: 8, 2: 1, 9: 12}]}}
- {'HEADER': {'type': 'INSERT'}, 'BODY': {'tuple': [2, {0: 8}]}}
- {'HEADER': {'type': 'INSERT'}, 'BODY': {'tuple': [8, {2: 1, 8: 2}]}}
- {'HEADER': {'type': 'INSERT'}, 'BODY': {'tuple': [11, {}]}}
- {'HEADER': {'timestamp': 1495526288.1972, 'type': 'INSERT'}, 'BODY': {'tuple': [
4, {0: 8, 2: 3}]}}
- {'HEADER': {'timestamp': 1495526288.2103, 'type': 'INSERT'}, 'BODY': {'tuple': [
5, {0: 8, 2: 3, 9: 24}]}}
- {'HEADER': {'timestamp': 1495526288.2103, 'type': 'INSERT'}, 'BODY': {'tuple': [
8, {2: 3, 8: 4}]}}
- {'HEADER': {'timestamp': 1495526288.2103, 'type': 'INSERT'}, 'BODY': {'tuple': [
10, {0: 8, 9: 24}]}}
...
trun:cmd('clear filter')
---
- true
...
|