Skip to content
Snippets Groups Projects
Commit 7e9ccd77 authored by Sulverus's avatar Sulverus
Browse files

replication catch.test error injection

parent a740f5fc
No related branches found
No related tags found
No related merge requests found
......@@ -43,6 +43,7 @@
#include "coio.h"
#include "cfg.h"
#include "trigger.h"
#include "errinj.h"
void
replication_send_row(struct recovery_state *r, void *param,
......@@ -227,6 +228,10 @@ relay_send(Relay *relay, struct xrow_header *packet)
struct iovec iov[XROW_IOVMAX];
int iovcnt = xrow_to_iovec(packet, iov);
coio_writev(&relay->io, iov, iovcnt, 0);
ERROR_INJECT(ERRINJ_RELAY,
{
sleep(1000);
});
}
/** Send a single row to the client. */
......
......@@ -45,7 +45,8 @@ struct errinj {
_(ERRINJ_WAL_ROTATE, false) \
_(ERRINJ_WAL_WRITE, false) \
_(ERRINJ_INDEX_ALLOC, false) \
_(ERRINJ_TUPLE_ALLOC, false)
_(ERRINJ_TUPLE_ALLOC, false) \
_(ERRINJ_RELAY, false)
ENUM0(errinj_enum, ERRINJ_LIST);
extern struct errinj errinjs[];
......
net_box = require('net.box')
---
...
errinj = box.error.injection
---
...
box.schema.user.grant('guest', 'replication')
---
...
......@@ -11,18 +14,12 @@ box.schema.user.grant('guest', 'read,write,execute', 'universe')
---
...
--# set connection default
--# stop server replica
s = box.schema.space.create('test');
---
...
index = s:create_index('primary', {type = 'hash'})
---
...
-- insert values
for i=1,100000 do s:insert{i, 'this is test message12345'} end
---
...
--# start server replica
--# set connection replica
fiber = require('fiber')
---
......@@ -30,21 +27,30 @@ fiber = require('fiber')
while box.space.test == nil do fiber.sleep(0.01) end
---
...
-- try to delete localy
box.space.test:len() > 0
--# set connection default
--# stop server replica
-- insert values
for i=1,100 do s:insert{i, 'this is test message12345'} end
---
- true
...
box.space.test:len() < 100000
-- sleep after every tuple
errinj.set("ERRINJ_RELAY", true)
---
- true
- ok
...
--# start server replica
--# set connection replica
-- try to delete
box.space.test:len()
---
- 1
...
d = box.space.test:delete{1}
---
...
box.space.test:get(1) ~= nil
---
- true
- false
...
-- try to delete by net.box
--# set connection default
......@@ -57,13 +63,12 @@ d = c.space.test:delete{1}
...
c.space.test:get(1) ~= nil
---
- true
- false
...
-- check sync
--# set connection replica
box.space.test:len() < 100000
errinj.set("ERRINJ_RELAY", false)
---
- true
- ok
...
-- cleanup
--# stop server replica
......
net_box = require('net.box')
errinj = box.error.injection
box.schema.user.grant('guest', 'replication')
--# create server replica with rpl_master=default, script='replication/replica.lua'
--# start server replica
......@@ -6,22 +8,26 @@ box.schema.user.grant('guest', 'replication')
box.schema.user.grant('guest', 'read,write,execute', 'universe')
--# set connection default
--# stop server replica
s = box.schema.space.create('test');
index = s:create_index('primary', {type = 'hash'})
--# set connection replica
fiber = require('fiber')
while box.space.test == nil do fiber.sleep(0.01) end
--# set connection default
--# stop server replica
-- insert values
for i=1,100000 do s:insert{i, 'this is test message12345'} end
for i=1,100 do s:insert{i, 'this is test message12345'} end
-- sleep after every tuple
errinj.set("ERRINJ_RELAY", true)
--# start server replica
--# set connection replica
fiber = require('fiber')
while box.space.test == nil do fiber.sleep(0.01) end
-- try to delete localy
box.space.test:len() > 0
box.space.test:len() < 100000
-- try to delete
box.space.test:len()
d = box.space.test:delete{1}
box.space.test:get(1) ~= nil
......@@ -33,8 +39,7 @@ d = c.space.test:delete{1}
c.space.test:get(1) ~= nil
-- check sync
--# set connection replica
box.space.test:len() < 100000
errinj.set("ERRINJ_RELAY", false)
-- cleanup
--# stop server replica
......
......@@ -3,3 +3,4 @@ core = tarantool
script = master.lua
description = tarantool/box, replication
disabled = consistent.test.lua status.test.py
release_disabled = catch.test.lua
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment