File: iproto_stress.test.lua

package info (click to toggle)
tarantool 1.9.1.26.g63eb81e3c-1.1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 38,724 kB
  • sloc: ansic: 247,425; cpp: 24,952; sh: 17,809; python: 10,699; makefile: 2,682
file content (39 lines) | stat: -rw-r--r-- 1,001 bytes parent folder | download
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
test_run = require('test_run').new()

fiber = require('fiber')
net_box = require('net.box')

box.schema.user.grant('guest', 'read,write,execute', 'universe')

s = box.schema.space.create('test')
_ = s:create_index('primary', {unique=true, parts={1, 'unsigned', 2, 'unsigned', 3, 'unsigned'}})

n_workers = 0

test_run:cmd("setopt delimiter ';'")
function worker(i)
	n_workers = n_workers + 1
	for j = 1,2 do
		local conn = net_box.connect(box.cfg.listen)
		for k = 1,10 do
			conn.space.test:insert{i, j, k}
		end
		conn:close()
		fiber.sleep(1)
	end
	n_workers = n_workers - 1
end;
test_run:cmd("setopt delimiter ''");

for i = 1,5000 do fiber.create(worker, i) end
fiber.sleep(0.1)

-- check that iproto doesn't deplete tx fiber pool on wal stall (see gh-1892)
box.error.injection.set("ERRINJ_WAL_DELAY", true)
fiber.sleep(1.0)
box.error.injection.set("ERRINJ_WAL_DELAY", false)

repeat fiber.sleep(1) until n_workers == 0

box.schema.user.revoke('guest', 'read,write,execute', 'universe')
s:drop()