diff --git a/test/replication/errinj.result b/test/replication/errinj.result index 089d8f90bc16b66b43407dd63e3d18346dc2bd06..0fd36ba92d07f60960f12ee21fbcc9d115a33059 100644 --- a/test/replication/errinj.result +++ b/test/replication/errinj.result @@ -215,3 +215,93 @@ test_run:cmd("cleanup server replica") --- - true ... +box.cfg{replication_timeout = 0.01} +--- +... +box.schema.user.grant("guest", "replication") +--- +... +test_run:cmd("start server replica") +--- +- true +... +test_run:cmd("switch replica") +--- +- true +... +fiber = require'fiber' +--- +... +while box.info.replication[1].upstream.message ~= 'timed out' do fiber.sleep(0.0001) end +--- +... +test_run:cmd("switch default") +--- +- true +... +box.cfg{replication_timeout = 0.05} +--- +... +test_run:cmd("switch replica") +--- +- true +... +-- wait for reconnect +while box.info.replication[1].upstream.status ~= 'follow' do fiber.sleep(0.0001) end +--- +... +box.info.replication[1].upstream.status +--- +- follow +... +-- wait for ack timeout +while box.info.replication[1].upstream.message ~= 'timed out' do fiber.sleep(0.0001) end +--- +... +test_run:cmd("switch default") +--- +- true +... +box.cfg{replication_timeout = 5} +--- +... +test_run:cmd("switch replica") +--- +- true +... +-- wait for reconnect +while box.info.replication[1].upstream.status ~= 'follow' do fiber.sleep(0.0001) end +--- +... +-- wait for ack timeout again, should be ok +fiber.sleep(0.01) +--- +... +{box.info.replication[1].upstream.status, box.info.replication[1].upstream.message} +--- +- - follow +... +test_run:cmd("stop server default") +--- +- true +... +test_run:cmd("deploy server default") +--- +- true +... +test_run:cmd("start server default") +--- +- true +... +test_run:cmd("switch default") +--- +- true +... +test_run:cmd("stop server replica") +--- +- true +... +test_run:cmd("cleanup server replica") +--- +- true +... diff --git a/test/replication/errinj.test.lua b/test/replication/errinj.test.lua index 9e6fbc53e928f41f2894646a8550e3daa79bb9dc..b50b6b0cb63b4b9f5e5a081b90ac9e18c301ff47 100644 --- a/test/replication/errinj.test.lua +++ b/test/replication/errinj.test.lua @@ -92,3 +92,37 @@ test_run:cmd("start server default") test_run:cmd("switch default") test_run:cmd("stop server replica") test_run:cmd("cleanup server replica") + +box.cfg{replication_timeout = 0.01} +box.schema.user.grant("guest", "replication") + +test_run:cmd("start server replica") +test_run:cmd("switch replica") +fiber = require'fiber' +while box.info.replication[1].upstream.message ~= 'timed out' do fiber.sleep(0.0001) end + +test_run:cmd("switch default") +box.cfg{replication_timeout = 0.05} +test_run:cmd("switch replica") +-- wait for reconnect +while box.info.replication[1].upstream.status ~= 'follow' do fiber.sleep(0.0001) end +box.info.replication[1].upstream.status +-- wait for ack timeout +while box.info.replication[1].upstream.message ~= 'timed out' do fiber.sleep(0.0001) end + +test_run:cmd("switch default") +box.cfg{replication_timeout = 5} + +test_run:cmd("switch replica") +-- wait for reconnect +while box.info.replication[1].upstream.status ~= 'follow' do fiber.sleep(0.0001) end +-- wait for ack timeout again, should be ok +fiber.sleep(0.01) +{box.info.replication[1].upstream.status, box.info.replication[1].upstream.message} + +test_run:cmd("stop server default") +test_run:cmd("deploy server default") +test_run:cmd("start server default") +test_run:cmd("switch default") +test_run:cmd("stop server replica") +test_run:cmd("cleanup server replica")