[tarantool-patches] [PATCH v1] test: vinyl/errinj test fails under highload

Vladimir Davydov vdavydov.dev at gmail.com
Wed Apr 17 11:44:16 MSK 2019


On Wed, Apr 17, 2019 at 10:50:47AM +0300, avtikhon wrote:
> Test "check that all dump/compaction tasks that are in progress at
> the time when the server stops are aborted immediately.", but in
> real the awaiting time of 1 second is not enough due to runs in
> parallel and it fails, like:
> 
> [009] --- vinyl/errinj.result Tue Apr 16 16:43:36 2019
> [009] +++ vinyl/errinj.reject Wed Apr 17 09:42:36 2019
> [009] @@ -530,7 +530,7 @@
> [009] ...
> [009] t2 - t1 < 1
> [009] ---
> [009] -- true
> [009] +- false
> [009] ...
> [009] test_run:cmd("cleanup server test")
> [009] ---
> [009]
> 
> in 100 parallel runs the failed delays were found:
> 
> [002] +- 1.4104716777802
> [022] +- 1.3933029174805
> [044] +- 1.4296517372131
> [033] +- 1.6380662918091
> [001] +- 1.9799520969391
> [027] +- 1.7067711353302
> [043] +- 1.3778221607208
> [034] +- 1.3820221424103
> [032] +- 1.3820221424103
> [020] +- 1.6275615692139
> [050] +- 1.6275615692139
> [048] +- 1.1880359649658
> 
> Desided to increase the awiting time up to 3 seconds.
> 
> Close #4169
> ---
> 
> Github: https://github.com/tarantool/tarantool/tree/avtikhon/gh-4169-vinyl-errinj-highload
> Issue: https://github.com/tarantool/tarantool/issues/4169
> 
>  test/vinyl/errinj.result   | 2 +-
>  test/vinyl/errinj.test.lua | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/test/vinyl/errinj.result b/test/vinyl/errinj.result
> index 6fc4d9e5d..9b1ded612 100644
> --- a/test/vinyl/errinj.result
> +++ b/test/vinyl/errinj.result
> @@ -528,7 +528,7 @@ test_run:cmd("stop server test")
>  t2 = fiber.time()
>  ---
>  ...
> -t2 - t1 < 1
> +t2 - t1 < 3 or t2 - t1
>  ---
>  - true
>  ...
> diff --git a/test/vinyl/errinj.test.lua b/test/vinyl/errinj.test.lua
> index b500b33c6..dab35b3b1 100644
> --- a/test/vinyl/errinj.test.lua
> +++ b/test/vinyl/errinj.test.lua
> @@ -191,7 +191,7 @@ test_run:cmd('switch default')
>  t1 = fiber.time()
>  test_run:cmd("stop server test")
>  t2 = fiber.time()
> -t2 - t1 < 1
> +t2 - t1 < 3 or t2 - t1
>  test_run:cmd("cleanup server test")

Try using ERRINJ_VY_DUMP_DELAY instead. Then you wouldn't need to check
the time at all - the server just wouldn't stop unless pending tasks was
cancelled. You can check that by commenting out vy_worker_pool_stop.



More information about the Tarantool-patches mailing list