commit - f7516de0ac4c53db6e52fbf8377ef637950a5d97
commit + 2b23725a385f878276a23699568e72394b5210a4
blob - 87816eeceb587591d668d44b037f4f9e42f570d2
blob + c528da1ab5c627cbecde83280e9a5a79a1dbdaa9
--- tarantool-tools/vinyl.lua
+++ tarantool-tools/vinyl.lua
local function main()
local spaces = {}
+ local fibers = {}
cleanup()
setup(spaces)
local f
for i = 1, NUM_SP do
- f = fiber.create(function()
+ f = fiber.new(function()
log.info('START DML ' .. i)
- while true do generate_dml(spaces[i]); fiber.yield() end
+ local start = os.clock()
+ while os.clock() - start < TEST_DURATION do
+ generate_dml(spaces[i])
+ fiber.sleep(0.1)
+ end
end)
+ f:set_joinable(true)
f:name('DML_' .. i)
+ table.insert(fibers, f)
end
for i = 1, NUM_SP do
- f = fiber.create(function()
+ f = fiber.new(function()
log.info('START TX ' .. i)
- while true do
+ local start = os.clock()
+ while os.clock() - start < TEST_DURATION do
local ok, err = pcall(generate_tx, spaces[i])
if ok ~= true then
log.info('TX: ' .. err)
end
- fiber.yield()
+ fiber.sleep(0.1)
end
end)
+ f:set_joinable(true)
f:name('TX_' .. i)
+ table.insert(fibers, f)
end
for i = 1, NUM_SP do
- f = fiber.create(function()
+ f = fiber.new(function()
log.info('START DDL ' .. i)
- while true do generate_ddl(spaces[i]); fiber.yield() end
+ local start = os.clock()
+ while os.clock() - start < TEST_DURATION do
+ generate_ddl(spaces[i])
+ fiber.sleep(0.1)
+ end
end)
+ f:set_joinable(true)
f:name('DDL_' .. i)
+ table.insert(fibers, f)
end
- f = fiber.create(function()
- while true do
+ f = fiber.new(function()
+ local start = os.clock()
+ while os.clock() - start < TEST_DURATION do
local ok, err = pcall(box.snapshot)
if ok ~= true then
log.info('BOX SNAPSHOT: ' .. err)
- end; fiber.sleep(5)
+ end;
+ fiber.sleep(math.random(30, 60))
end
end)
+ f:set_joinable(true)
f:name('snapshots')
+ table.insert(fibers, f)
- f = fiber.create(function()
- while true do set_err_injection(); fiber.sleep(5) end
+ f = fiber.new(function()
+ local start = os.clock()
+ while os.clock() - start < TEST_DURATION do
+ set_err_injection()
+ fiber.sleep(math.random(30, 60))
+ end
end)
+ f:set_joinable(true)
f:name('ERRINJ')
+ table.insert(fibers, f)
- f = fiber.create(function()
- while true do print_stat(spaces); fiber.sleep(5) end
+ f = fiber.new(function()
+ local start = os.clock()
+ while os.clock() - start < TEST_DURATION do
+ print_stat(spaces)
+ fiber.sleep(60)
+ end
end)
+ f:set_joinable(true)
f:name('STATS')
+ table.insert(fibers, f)
- local start = os.clock()
- while os.clock() - start < TEST_DURATION do
- local n = math.random(1, NUM_SP)
- generate_dml(spaces[n])
- generate_tx(spaces[n])
- generate_ddl(spaces[n])
+ for _, fb in ipairs(fibers) do
+ local ok, errmsg = fiber.join(fb)
+ assert(errmsg, nil)
+ assert(ok, true)
end
teardown(spaces)