From dd45d6bc7f9726a8cbee2f2456c077d7100ec5f6 Mon Sep 17 00:00:00 2001 From: Konstantin Osipov <kostja@tarantool.org> Date: Wed, 19 Aug 2015 05:34:33 +0300 Subject: [PATCH] gh-983 (iproto hang/crash): add a test case --- test/box/net.box.result | 27 +++++++++++++++++++++++++++ test/box/net.box.test.lua | 17 +++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/test/box/net.box.result b/test/box/net.box.result index 843a02d8f3..f112a388b1 100644 --- a/test/box/net.box.result +++ b/test/box/net.box.result @@ -886,6 +886,33 @@ file_log:close() --- - true ... +-- gh-983 selecting a lot of data crashes the server or hangs the +-- connection +-- gh-983 test case: iproto connection selecting a lot of data +_ = box.schema.space.create('test', { temporary = true }) +--- +... +_ = box.space.test:create_index('primary', {type = 'TREE', parts = {1,'NUM'}}) +--- +... +data1k = "aaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhh" +--- +... +for i = 0,10000 do box.space.test:insert{i, data1k} end +--- +... +net = require('net.box') +--- +... +c = net:new(box.cfg.listen) +--- +... +r = c.space.test:select(nil, {limit=5000}) +--- +... +box.space.test:drop() +--- +... box.schema.user.revoke('guest', 'read,write,execute', 'universe') --- ... diff --git a/test/box/net.box.test.lua b/test/box/net.box.test.lua index c5ed905767..62b3566c85 100644 --- a/test/box/net.box.test.lua +++ b/test/box/net.box.test.lua @@ -364,4 +364,21 @@ end; --# setopt delimiter '' file_log:close() + +-- gh-983 selecting a lot of data crashes the server or hangs the +-- connection + +-- gh-983 test case: iproto connection selecting a lot of data +_ = box.schema.space.create('test', { temporary = true }) +_ = box.space.test:create_index('primary', {type = 'TREE', parts = {1,'NUM'}}) + +data1k = "aaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhhaaaabbbbccccddddeeeeffffgggghhhh" + +for i = 0,10000 do box.space.test:insert{i, data1k} end + +net = require('net.box') +c = net:new(box.cfg.listen) +r = c.space.test:select(nil, {limit=5000}) +box.space.test:drop() + box.schema.user.revoke('guest', 'read,write,execute', 'universe') -- GitLab