From b2b6eb54607813527e496b1c317c77c8748c2f36 Mon Sep 17 00:00:00 2001
From: Vladislav Shpilevoy <v.shpilevoy@tarantool.org>
Date: Sat, 7 Sep 2019 17:58:40 +0200
Subject: [PATCH] wal: drop rows_per_wal option

Rows_per_wal option was deprecated because it can be covered by
wal_max_size. In order not to complicate WAL code with that
option's support this commit drops it completely.

In some tests the option was used to create several small xlog
files. Now the same is done via wal_max_size. Where it was
needed, number of rows per wal is estimated as wal_max_size / 50.
Because struct xrow_header size ~= 50 not counting paddings and
body.

Note, file box/configuration.result was deleted here, because it
is a stray result file, and it contained the rows_per_wal option
mentioning. Its test was dropped much earlier in
fdc3d1dd2c3b120ff6426d074285908da7fb646d.

Closes #3762

(cherry picked from commit c60129200caa47bae87098a88f0bc7e0bb0ec3a6)
---
 src/box/box.cc                            |   30 +-
 src/box/lua/load_cfg.lua                  |    2 -
 src/box/wal.c                             |   14 +-
 src/box/wal.h                             |   11 +-
 test/app-tap/init_script.result           |   39 +-
 test/app-tap/snapshot.test.lua            |    2 +-
 test/app/app.lua                          |    2 +-
 test/app/fiber.result                     |    6 +-
 test/app/fiber.test.lua                   |    4 +-
 test/box-py/box.lua                       |    2 +-
 test/box-tap/cfg.test.lua                 |    3 +-
 test/box/admin.result                     |    2 -
 test/box/cfg.result                       |    4 -
 test/box/configuration.result             |  107 ---
 test/box/proxy.lua                        |    2 +-
 test/box/tiny.lua                         |    1 -
 test/engine/box.lua                       |    2 +-
 test/engine/recover_snapshot_wal.result   | 1043 +--------------------
 test/engine/recover_snapshot_wal.test.lua |   27 +-
 test/engine_long/box.lua                  |    1 -
 test/long_run-py/box.lua                  |    1 -
 test/vinyl/vinyl.lua                      |    1 -
 test/xlog-py/box.lua                      |    1 -
 test/xlog/checkpoint_daemon.result        |   11 +-
 test/xlog/checkpoint_daemon.test.lua      |    9 +-
 test/xlog/errinj.result                   |    7 +-
 test/xlog/errinj.test.lua                 |    5 +-
 test/xlog/panic.lua                       |    1 -
 test/xlog/upgrade/fill.lua                |    2 +-
 test/xlog/xlog.lua                        |    2 +-
 30 files changed, 130 insertions(+), 1214 deletions(-)
 delete mode 100644 test/box/configuration.result

diff --git a/src/box/box.cc b/src/box/box.cc
index b4dc0e41fd..ca6c65f0ad 100644
--- a/src/box/box.cc
+++ b/src/box/box.cc
@@ -286,8 +286,6 @@ struct wal_stream {
 	struct xstream base;
 	/** How many rows have been recovered so far. */
 	size_t rows;
-	/** Yield once per 'yield' rows. */
-	size_t yield;
 };
 
 /**
@@ -341,22 +339,15 @@ apply_wal_row(struct xstream *stream, struct xrow_header *row)
 	 * Yield once in a while, but not too often,
 	 * mostly to allow signal handling to take place.
 	 */
-	if (++xstream->rows % xstream->yield == 0)
+	if (++xstream->rows % WAL_ROWS_PER_YIELD == 0)
 		fiber_sleep(0);
 }
 
 static void
-wal_stream_create(struct wal_stream *ctx, size_t wal_max_rows)
+wal_stream_create(struct wal_stream *ctx)
 {
 	xstream_create(&ctx->base, apply_wal_row);
 	ctx->rows = 0;
-	/**
-	 * Make the yield logic covered by the functional test
-	 * suite, which has a small setting for rows_per_wal.
-	 * Each yield can take up to 1ms if there are no events,
-	 * so we can't afford many of them during recovery.
-	 */
-	ctx->yield = (wal_max_rows >> 4)  + 1;
 }
 
 /* {{{ configuration bindings */
@@ -528,17 +519,6 @@ box_check_checkpoint_count(int checkpoint_count)
 	}
 }
 
-static int64_t
-box_check_wal_max_rows(int64_t wal_max_rows)
-{
-	/* check rows_per_wal configuration */
-	if (wal_max_rows <= 1) {
-		tnt_raise(ClientError, ER_CFG, "rows_per_wal",
-			  "the value must be greater than one");
-	}
-	return wal_max_rows;
-}
-
 static int64_t
 box_check_wal_max_size(int64_t wal_max_size)
 {
@@ -626,7 +606,6 @@ box_check_config()
 	box_check_replication_sync_timeout();
 	box_check_readahead(cfg_geti("readahead"));
 	box_check_checkpoint_count(cfg_geti("checkpoint_count"));
-	box_check_wal_max_rows(cfg_geti64("rows_per_wal"));
 	box_check_wal_max_size(cfg_geti64("wal_max_size"));
 	box_check_wal_mode(cfg_gets("wal_mode"));
 	box_check_memtx_memory(cfg_geti64("memtx_memory"));
@@ -1931,7 +1910,7 @@ local_recovery(const struct tt_uuid *instance_uuid,
 	say_info("instance uuid %s", tt_uuid_str(&INSTANCE_UUID));
 
 	struct wal_stream wal_stream;
-	wal_stream_create(&wal_stream, cfg_geti64("rows_per_wal"));
+	wal_stream_create(&wal_stream);
 
 	struct recovery *recovery;
 	recovery = recovery_new(cfg_gets("wal_dir"),
@@ -2117,10 +2096,9 @@ box_cfg_xc(void)
 	iproto_init();
 	sql_init();
 
-	int64_t wal_max_rows = box_check_wal_max_rows(cfg_geti64("rows_per_wal"));
 	int64_t wal_max_size = box_check_wal_max_size(cfg_geti64("wal_max_size"));
 	enum wal_mode wal_mode = box_check_wal_mode(cfg_gets("wal_mode"));
-	if (wal_init(wal_mode, cfg_gets("wal_dir"), wal_max_rows,
+	if (wal_init(wal_mode, cfg_gets("wal_dir"),
 		     wal_max_size, &INSTANCE_UUID, on_wal_garbage_collection,
 		     on_wal_checkpoint_threshold) != 0) {
 		diag_raise();
diff --git a/src/box/lua/load_cfg.lua b/src/box/lua/load_cfg.lua
index 79bde4d231..e7f62cf4e2 100644
--- a/src/box/lua/load_cfg.lua
+++ b/src/box/lua/load_cfg.lua
@@ -54,7 +54,6 @@ local default_cfg = {
     snap_io_rate_limit  = nil, -- no limit
     too_long_threshold  = 0.5,
     wal_mode            = "write",
-    rows_per_wal        = 500000,
     wal_max_size        = 256 * 1024 * 1024,
     wal_dir_rescan_delay= 2,
     force_recovery      = false,
@@ -118,7 +117,6 @@ local template_cfg = {
     snap_io_rate_limit  = 'number',
     too_long_threshold  = 'number',
     wal_mode            = 'string',
-    rows_per_wal        = 'number',
     wal_max_size        = 'number',
     wal_dir_rescan_delay= 'number',
     force_recovery      = 'boolean',
diff --git a/src/box/wal.c b/src/box/wal.c
index 58a58e5b5f..388de6a064 100644
--- a/src/box/wal.c
+++ b/src/box/wal.c
@@ -92,8 +92,6 @@ struct wal_writer
 	/** A memory pool for messages. */
 	struct mempool msg_pool;
 	/* ----------------- wal ------------------- */
-	/** A setting from instance configuration - rows_per_wal */
-	int64_t wal_max_rows;
 	/** A setting from instance configuration - wal_max_size */
 	int64_t wal_max_size;
 	/** Another one - wal_mode */
@@ -344,13 +342,12 @@ tx_notify_checkpoint(struct cmsg *msg)
  */
 static void
 wal_writer_create(struct wal_writer *writer, enum wal_mode wal_mode,
-		  const char *wal_dirname, int64_t wal_max_rows,
+		  const char *wal_dirname,
 		  int64_t wal_max_size, const struct tt_uuid *instance_uuid,
 		  wal_on_garbage_collection_f on_garbage_collection,
 		  wal_on_checkpoint_threshold_f on_checkpoint_threshold)
 {
 	writer->wal_mode = wal_mode;
-	writer->wal_max_rows = wal_max_rows;
 	writer->wal_max_size = wal_max_size;
 	journal_create(&writer->base, wal_mode == WAL_NONE ?
 		       wal_write_in_wal_mode_none : wal_write, NULL);
@@ -461,16 +458,14 @@ wal_open(struct wal_writer *writer)
 }
 
 int
-wal_init(enum wal_mode wal_mode, const char *wal_dirname, int64_t wal_max_rows,
+wal_init(enum wal_mode wal_mode, const char *wal_dirname,
 	 int64_t wal_max_size, const struct tt_uuid *instance_uuid,
 	 wal_on_garbage_collection_f on_garbage_collection,
 	 wal_on_checkpoint_threshold_f on_checkpoint_threshold)
 {
-	assert(wal_max_rows > 1);
-
 	/* Initialize the state. */
 	struct wal_writer *writer = &wal_writer_singleton;
-	wal_writer_create(writer, wal_mode, wal_dirname, wal_max_rows,
+	wal_writer_create(writer, wal_mode, wal_dirname,
 			  wal_max_size, instance_uuid, on_garbage_collection,
 			  on_checkpoint_threshold);
 
@@ -734,8 +729,7 @@ wal_opt_rotate(struct wal_writer *writer)
 	 * one.
 	 */
 	if (xlog_is_open(&writer->current_wal) &&
-	    (writer->current_wal.rows >= writer->wal_max_rows ||
-	     writer->current_wal.offset >= writer->wal_max_size)) {
+	    writer->current_wal.offset >= writer->wal_max_size) {
 		/*
 		 * We can not handle xlog_close()
 		 * failure in any reasonable way.
diff --git a/src/box/wal.h b/src/box/wal.h
index 4e500d2a30..8157ba4ce7 100644
--- a/src/box/wal.h
+++ b/src/box/wal.h
@@ -43,6 +43,15 @@ struct tt_uuid;
 
 enum wal_mode { WAL_NONE = 0, WAL_WRITE, WAL_FSYNC, WAL_MODE_MAX };
 
+enum {
+	/**
+	 * Recovery yields once per that number of rows read and
+	 * applied from WAL. It allows not to block the event
+	 * loop for the whole recovery stage.
+	 */
+	WAL_ROWS_PER_YIELD = 32000,
+};
+
 /** String constants for the supported modes. */
 extern const char *wal_mode_STRS[];
 
@@ -72,7 +81,7 @@ typedef void (*wal_on_checkpoint_threshold_f)(void);
  * Start WAL thread and initialize WAL writer.
  */
 int
-wal_init(enum wal_mode wal_mode, const char *wal_dirname, int64_t wal_max_rows,
+wal_init(enum wal_mode wal_mode, const char *wal_dirname,
 	 int64_t wal_max_size, const struct tt_uuid *instance_uuid,
 	 wal_on_garbage_collection_f on_garbage_collection,
 	 wal_on_checkpoint_threshold_f on_checkpoint_threshold);
diff --git a/test/app-tap/init_script.result b/test/app-tap/init_script.result
index 6a296d9f6b..799297ba0e 100644
--- a/test/app-tap/init_script.result
+++ b/test/app-tap/init_script.result
@@ -30,26 +30,25 @@ box.cfg
 25	replication_sync_lag:10
 26	replication_sync_timeout:300
 27	replication_timeout:1
-28	rows_per_wal:500000
-29	slab_alloc_factor:1.05
-30	strip_core:true
-31	too_long_threshold:0.5
-32	vinyl_bloom_fpr:0.05
-33	vinyl_cache:134217728
-34	vinyl_dir:.
-35	vinyl_max_tuple_size:1048576
-36	vinyl_memory:134217728
-37	vinyl_page_size:8192
-38	vinyl_read_threads:1
-39	vinyl_run_count_per_level:2
-40	vinyl_run_size_ratio:3.5
-41	vinyl_timeout:60
-42	vinyl_write_threads:4
-43	wal_dir:.
-44	wal_dir_rescan_delay:2
-45	wal_max_size:268435456
-46	wal_mode:write
-47	worker_pool_threads:4
+28	slab_alloc_factor:1.05
+29	strip_core:true
+30	too_long_threshold:0.5
+31	vinyl_bloom_fpr:0.05
+32	vinyl_cache:134217728
+33	vinyl_dir:.
+34	vinyl_max_tuple_size:1048576
+35	vinyl_memory:134217728
+36	vinyl_page_size:8192
+37	vinyl_read_threads:1
+38	vinyl_run_count_per_level:2
+39	vinyl_run_size_ratio:3.5
+40	vinyl_timeout:60
+41	vinyl_write_threads:4
+42	wal_dir:.
+43	wal_dir_rescan_delay:2
+44	wal_max_size:268435456
+45	wal_mode:write
+46	worker_pool_threads:4
 --
 -- Test insert from detached fiber
 --
diff --git a/test/app-tap/snapshot.test.lua b/test/app-tap/snapshot.test.lua
index d86f32fe5f..587f8279ba 100755
--- a/test/app-tap/snapshot.test.lua
+++ b/test/app-tap/snapshot.test.lua
@@ -6,7 +6,7 @@ local tap = require('tap')
 local ffi = require('ffi')
 local fio = require('fio')
 
-box.cfg{ log="tarantool.log", memtx_memory=107374182, rows_per_wal=5000}
+box.cfg{ log="tarantool.log", memtx_memory=107374182}
 
 local test = tap.test("snapshot")
 test:plan(5)
diff --git a/test/app/app.lua b/test/app/app.lua
index 3a0eaa7dc0..dfd159e4b6 100644
--- a/test/app/app.lua
+++ b/test/app/app.lua
@@ -4,7 +4,7 @@ box.cfg{
     listen              = os.getenv("LISTEN"),
     memtx_memory        = 107374182,
     pid_file            = "tarantool.pid",
-    rows_per_wal        = 50
+    wal_max_size        = 2500
 }
 
 require('console').listen(os.getenv('ADMIN'))
diff --git a/test/app/fiber.result b/test/app/fiber.result
index 94e690f6cf..3c6115a33f 100644
--- a/test/app/fiber.result
+++ b/test/app/fiber.result
@@ -17,12 +17,12 @@ test_run = env.new()
 -- and wal_schedule fiber schedulers.
 -- The same fiber should not be scheduled by ev_schedule (e.g.
 -- due to cancellation) if it is within th wal_schedule queue.
--- The test case is dependent on rows_per_wal, since this is when
+-- The test case is dependent on wal_max_size, since this is when
 -- we reopen the .xlog file and thus wal_scheduler takes a long
 -- pause
-box.cfg.rows_per_wal
+box.cfg.wal_max_size
 ---
-- 50
+- 2500
 ...
 space:insert{1, 'testing', 'lua rocks'}
 ---
diff --git a/test/app/fiber.test.lua b/test/app/fiber.test.lua
index bb8c249905..c5647b8f22 100644
--- a/test/app/fiber.test.lua
+++ b/test/app/fiber.test.lua
@@ -8,10 +8,10 @@ test_run = env.new()
 -- and wal_schedule fiber schedulers.
 -- The same fiber should not be scheduled by ev_schedule (e.g.
 -- due to cancellation) if it is within th wal_schedule queue.
--- The test case is dependent on rows_per_wal, since this is when
+-- The test case is dependent on wal_max_size, since this is when
 -- we reopen the .xlog file and thus wal_scheduler takes a long
 -- pause
-box.cfg.rows_per_wal
+box.cfg.wal_max_size
 space:insert{1, 'testing', 'lua rocks'}
 space:delete{1}
 space:insert{1, 'testing', 'lua rocks'}
diff --git a/test/box-py/box.lua b/test/box-py/box.lua
index 00c592c81a..e9403774c7 100644
--- a/test/box-py/box.lua
+++ b/test/box-py/box.lua
@@ -6,7 +6,7 @@ box.cfg{
     memtx_memory        = 107374182,
     pid_file            = "tarantool.pid",
     force_recovery      = true,
-    rows_per_wal        = 10
+    wal_max_size        = 500
 }
 
 require('console').listen(os.getenv('ADMIN'))
diff --git a/test/box-tap/cfg.test.lua b/test/box-tap/cfg.test.lua
index 8faedaec60..d529447bbd 100755
--- a/test/box-tap/cfg.test.lua
+++ b/test/box-tap/cfg.test.lua
@@ -6,7 +6,7 @@ local socket = require('socket')
 local fio = require('fio')
 local uuid = require('uuid')
 local msgpack = require('msgpack')
-test:plan(105)
+test:plan(104)
 
 --------------------------------------------------------------------------------
 -- Invalid values
@@ -36,7 +36,6 @@ invalid('replication_connect_timeout', -1)
 invalid('replication_connect_timeout', 0)
 invalid('replication_connect_quorum', -1)
 invalid('wal_mode', 'invalid')
-invalid('rows_per_wal', -1)
 invalid('listen', '//!')
 invalid('log', ':')
 invalid('log', 'syslog:xxx=')
diff --git a/test/box/admin.result b/test/box/admin.result
index 0c137e3712..6126f3a97b 100644
--- a/test/box/admin.result
+++ b/test/box/admin.result
@@ -81,8 +81,6 @@ cfg_filter(box.cfg)
     - 300
   - - replication_timeout
     - 1
-  - - rows_per_wal
-    - 500000
   - - slab_alloc_factor
     - 1.05
   - - strip_core
diff --git a/test/box/cfg.result b/test/box/cfg.result
index cdca64ef0c..5370bb8703 100644
--- a/test/box/cfg.result
+++ b/test/box/cfg.result
@@ -69,8 +69,6 @@ cfg_filter(box.cfg)
  |     - 300
  |   - - replication_timeout
  |     - 1
- |   - - rows_per_wal
- |     - 500000
  |   - - slab_alloc_factor
  |     - 1.05
  |   - - strip_core
@@ -170,8 +168,6 @@ cfg_filter(box.cfg)
  |     - 300
  |   - - replication_timeout
  |     - 1
- |   - - rows_per_wal
- |     - 500000
  |   - - slab_alloc_factor
  |     - 1.05
  |   - - strip_core
diff --git a/test/box/configuration.result b/test/box/configuration.result
deleted file mode 100644
index c885c28dc2..0000000000
--- a/test/box/configuration.result
+++ /dev/null
@@ -1,107 +0,0 @@
-
-# Bug #876541:
-#  Test floating point values (wal_fsync_delay) with fractional part
-#  (https://bugs.launchpad.net/bugs/876541)
-
-box.cfg.wal_fsync_delay
----
-- 0.01
-...
-print_config()
----
-- io_collect_interval: 0
-  pid_file: box.pid
-  slab_alloc_factor: 2
-  slab_alloc_minimal: 64
-  admin_port: <number>
-  logger: cat - >> tarantool.log
-  readahead: 16320
-  wal_dir: .
-  logger_nonblock: true
-  log_level: 5
-  snap_dir: .
-  coredump: false
-  background: false
-  too_long_threshold: 0.5
-  rows_per_wal: 50
-  wal_mode: fsync_delay
-  snap_io_rate_limit: 0
-  panic_on_snap_error: true
-  panic_on_wal_error: false
-  local_hot_standby: false
-  slab_alloc_arena: 0.1
-  bind_ipaddr: INADDR_ANY
-  wal_fsync_delay: 0
-  primary_port: <number>
-  wal_dir_rescan_delay: 0.1
-...
-
-# Test bug #977898
-
-box.space.tweedledum:insert{4, 8, 16}
----
-- [4, 8, 16]
-...
-
-# Test insert from init.lua
-
-box.space.tweedledum:get(1)
----
-- [1, 2, 4, 8]
-...
-box.space.tweedledum:get(2)
----
-- [2, 4, 8, 16]
-...
-box.space.tweedledum:get(4)
----
-- [4, 8, 16]
-...
-
-# Test bug #1002272
-
-floor(0.5)
----
-- 0
-...
-floor(0.9)
----
-- 0
-...
-floor(1.1)
----
-- 1
-...
-mod.test(10, 15)
----
-- 25
-...
-
-# Bug#99 Salloc initialization is not checked on startup
-#  (https://github.com/tarantool/tarantool/issues/99)
-
-Can't start Tarantool
-ok
-
-# Bug#100 Segmentation fault if rows_per_wal = 0
-#  (https://github.com/tarantool/tarantool/issues/100)
-
-Can't start Tarantool
-ok
-#
-# Check that --background  doesn't work if there is no logger
-# This is a test case for
-# https://bugs.launchpad.net/tarantool/+bug/750658
-# "--background neither closes nor redirects stdin/stdout/stderr"
-
-Can't start Tarantool
-ok
-
-# A test case for Bug#726778 "Gopt broke wal_dir and snap_dir: they are no
-# longer relative to work_dir".
-# https://bugs.launchpad.net/tarantool/+bug/726778
-# After addition of gopt(), we started to chdir() to the working
-# directory after option parsing.
-# Verify that this is not the case, and snap_dir and xlog_dir
-# can be relative to work_dir.
-
diff --git a/test/box/proxy.lua b/test/box/proxy.lua
index fa87ab879c..8bbd505f8c 100644
--- a/test/box/proxy.lua
+++ b/test/box/proxy.lua
@@ -5,7 +5,7 @@ box.cfg{
     listen              = os.getenv("LISTEN"),
     memtx_memory        = 107374182,
     pid_file            = "tarantool.pid",
-    rows_per_wal        = 50
+    wal_max_size        = 2500
 }
 
 require('console').listen(os.getenv('ADMIN'))
diff --git a/test/box/tiny.lua b/test/box/tiny.lua
index 8d30250831..04b523fb29 100644
--- a/test/box/tiny.lua
+++ b/test/box/tiny.lua
@@ -7,7 +7,6 @@ box.cfg{
     pid_file            = "tarantool.pid",
     force_recovery  = false,
     slab_alloc_factor = 1.1,
-    rows_per_wal        = 5000000
 }
 
 require('console').listen(os.getenv('ADMIN'))
diff --git a/test/engine/box.lua b/test/engine/box.lua
index b1a379dafb..e2f04cba28 100644
--- a/test/engine/box.lua
+++ b/test/engine/box.lua
@@ -11,7 +11,7 @@ box.cfg{
     listen              = os.getenv("LISTEN"),
     memtx_memory        = 107374182,
     pid_file            = "tarantool.pid",
-    rows_per_wal        = 50,
+    wal_max_size        = 2500,
     vinyl_read_threads  = 2,
     vinyl_write_threads = 3,
     vinyl_range_size    = 64 * 1024,
diff --git a/test/engine/recover_snapshot_wal.result b/test/engine/recover_snapshot_wal.result
index d2667559d6..1abe386c6d 100644
--- a/test/engine/recover_snapshot_wal.result
+++ b/test/engine/recover_snapshot_wal.result
@@ -23,9 +23,9 @@ box.snapshot()
 ---
 - ok
 ...
-space:insert({1001})
+space:insert({33001})
 ---
-- [1001]
+- [33001]
 ...
 test_run:cmd("restart server default")
 space = box.space['test']
@@ -37,7 +37,7 @@ index = space.index['primary']
 index:select({}, {iterator = box.index.ALL})
 ---
 - - [0]
-  - [1001]
+  - [33001]
 ...
 for key = 1, 351 do space:insert({key}) end
 ---
@@ -46,7 +46,18 @@ box.snapshot()
 ---
 - ok
 ...
-for key = 352, 1000 do space:insert({key}) end
+-- Insert so many tuples, that recovery would need to yield
+-- periodically to allow other fibers do something. At the moment
+-- of writing this the yield period was 32k tuples.
+box.begin()                                                     \
+for key = 352, 33000 do                                         \
+    space:insert({key})                                         \
+    if key % 10000 == 0 then                                    \
+        box.commit()                                            \
+        box.begin()                                             \
+    end                                                         \
+end                                                             \
+box.commit()
 ---
 ...
 test_run:cmd("restart server default")
@@ -56,1010 +67,28 @@ space = box.space['test']
 index = space.index['primary']
 ---
 ...
-index:select({}, {iterator = box.index.ALL})
+i = 0
 ---
-- - [0]
-  - [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]
-  - [40]
-  - [41]
-  - [42]
-  - [43]
-  - [44]
-  - [45]
-  - [46]
-  - [47]
-  - [48]
-  - [49]
-  - [50]
-  - [51]
-  - [52]
-  - [53]
-  - [54]
-  - [55]
-  - [56]
-  - [57]
-  - [58]
-  - [59]
-  - [60]
-  - [61]
-  - [62]
-  - [63]
-  - [64]
-  - [65]
-  - [66]
-  - [67]
-  - [68]
-  - [69]
-  - [70]
-  - [71]
-  - [72]
-  - [73]
-  - [74]
-  - [75]
-  - [76]
-  - [77]
-  - [78]
-  - [79]
-  - [80]
-  - [81]
-  - [82]
-  - [83]
-  - [84]
-  - [85]
-  - [86]
-  - [87]
-  - [88]
-  - [89]
-  - [90]
-  - [91]
-  - [92]
-  - [93]
-  - [94]
-  - [95]
-  - [96]
-  - [97]
-  - [98]
-  - [99]
-  - [100]
-  - [101]
-  - [102]
-  - [103]
-  - [104]
-  - [105]
-  - [106]
-  - [107]
-  - [108]
-  - [109]
-  - [110]
-  - [111]
-  - [112]
-  - [113]
-  - [114]
-  - [115]
-  - [116]
-  - [117]
-  - [118]
-  - [119]
-  - [120]
-  - [121]
-  - [122]
-  - [123]
-  - [124]
-  - [125]
-  - [126]
-  - [127]
-  - [128]
-  - [129]
-  - [130]
-  - [131]
-  - [132]
-  - [133]
-  - [134]
-  - [135]
-  - [136]
-  - [137]
-  - [138]
-  - [139]
-  - [140]
-  - [141]
-  - [142]
-  - [143]
-  - [144]
-  - [145]
-  - [146]
-  - [147]
-  - [148]
-  - [149]
-  - [150]
-  - [151]
-  - [152]
-  - [153]
-  - [154]
-  - [155]
-  - [156]
-  - [157]
-  - [158]
-  - [159]
-  - [160]
-  - [161]
-  - [162]
-  - [163]
-  - [164]
-  - [165]
-  - [166]
-  - [167]
-  - [168]
-  - [169]
-  - [170]
-  - [171]
-  - [172]
-  - [173]
-  - [174]
-  - [175]
-  - [176]
-  - [177]
-  - [178]
-  - [179]
-  - [180]
-  - [181]
-  - [182]
-  - [183]
-  - [184]
-  - [185]
-  - [186]
-  - [187]
-  - [188]
-  - [189]
-  - [190]
-  - [191]
-  - [192]
-  - [193]
-  - [194]
-  - [195]
-  - [196]
-  - [197]
-  - [198]
-  - [199]
-  - [200]
-  - [201]
-  - [202]
-  - [203]
-  - [204]
-  - [205]
-  - [206]
-  - [207]
-  - [208]
-  - [209]
-  - [210]
-  - [211]
-  - [212]
-  - [213]
-  - [214]
-  - [215]
-  - [216]
-  - [217]
-  - [218]
-  - [219]
-  - [220]
-  - [221]
-  - [222]
-  - [223]
-  - [224]
-  - [225]
-  - [226]
-  - [227]
-  - [228]
-  - [229]
-  - [230]
-  - [231]
-  - [232]
-  - [233]
-  - [234]
-  - [235]
-  - [236]
-  - [237]
-  - [238]
-  - [239]
-  - [240]
-  - [241]
-  - [242]
-  - [243]
-  - [244]
-  - [245]
-  - [246]
-  - [247]
-  - [248]
-  - [249]
-  - [250]
-  - [251]
-  - [252]
-  - [253]
-  - [254]
-  - [255]
-  - [256]
-  - [257]
-  - [258]
-  - [259]
-  - [260]
-  - [261]
-  - [262]
-  - [263]
-  - [264]
-  - [265]
-  - [266]
-  - [267]
-  - [268]
-  - [269]
-  - [270]
-  - [271]
-  - [272]
-  - [273]
-  - [274]
-  - [275]
-  - [276]
-  - [277]
-  - [278]
-  - [279]
-  - [280]
-  - [281]
-  - [282]
-  - [283]
-  - [284]
-  - [285]
-  - [286]
-  - [287]
-  - [288]
-  - [289]
-  - [290]
-  - [291]
-  - [292]
-  - [293]
-  - [294]
-  - [295]
-  - [296]
-  - [297]
-  - [298]
-  - [299]
-  - [300]
-  - [301]
-  - [302]
-  - [303]
-  - [304]
-  - [305]
-  - [306]
-  - [307]
-  - [308]
-  - [309]
-  - [310]
-  - [311]
-  - [312]
-  - [313]
-  - [314]
-  - [315]
-  - [316]
-  - [317]
-  - [318]
-  - [319]
-  - [320]
-  - [321]
-  - [322]
-  - [323]
-  - [324]
-  - [325]
-  - [326]
-  - [327]
-  - [328]
-  - [329]
-  - [330]
-  - [331]
-  - [332]
-  - [333]
-  - [334]
-  - [335]
-  - [336]
-  - [337]
-  - [338]
-  - [339]
-  - [340]
-  - [341]
-  - [342]
-  - [343]
-  - [344]
-  - [345]
-  - [346]
-  - [347]
-  - [348]
-  - [349]
-  - [350]
-  - [351]
-  - [352]
-  - [353]
-  - [354]
-  - [355]
-  - [356]
-  - [357]
-  - [358]
-  - [359]
-  - [360]
-  - [361]
-  - [362]
-  - [363]
-  - [364]
-  - [365]
-  - [366]
-  - [367]
-  - [368]
-  - [369]
-  - [370]
-  - [371]
-  - [372]
-  - [373]
-  - [374]
-  - [375]
-  - [376]
-  - [377]
-  - [378]
-  - [379]
-  - [380]
-  - [381]
-  - [382]
-  - [383]
-  - [384]
-  - [385]
-  - [386]
-  - [387]
-  - [388]
-  - [389]
-  - [390]
-  - [391]
-  - [392]
-  - [393]
-  - [394]
-  - [395]
-  - [396]
-  - [397]
-  - [398]
-  - [399]
-  - [400]
-  - [401]
-  - [402]
-  - [403]
-  - [404]
-  - [405]
-  - [406]
-  - [407]
-  - [408]
-  - [409]
-  - [410]
-  - [411]
-  - [412]
-  - [413]
-  - [414]
-  - [415]
-  - [416]
-  - [417]
-  - [418]
-  - [419]
-  - [420]
-  - [421]
-  - [422]
-  - [423]
-  - [424]
-  - [425]
-  - [426]
-  - [427]
-  - [428]
-  - [429]
-  - [430]
-  - [431]
-  - [432]
-  - [433]
-  - [434]
-  - [435]
-  - [436]
-  - [437]
-  - [438]
-  - [439]
-  - [440]
-  - [441]
-  - [442]
-  - [443]
-  - [444]
-  - [445]
-  - [446]
-  - [447]
-  - [448]
-  - [449]
-  - [450]
-  - [451]
-  - [452]
-  - [453]
-  - [454]
-  - [455]
-  - [456]
-  - [457]
-  - [458]
-  - [459]
-  - [460]
-  - [461]
-  - [462]
-  - [463]
-  - [464]
-  - [465]
-  - [466]
-  - [467]
-  - [468]
-  - [469]
-  - [470]
-  - [471]
-  - [472]
-  - [473]
-  - [474]
-  - [475]
-  - [476]
-  - [477]
-  - [478]
-  - [479]
-  - [480]
-  - [481]
-  - [482]
-  - [483]
-  - [484]
-  - [485]
-  - [486]
-  - [487]
-  - [488]
-  - [489]
-  - [490]
-  - [491]
-  - [492]
-  - [493]
-  - [494]
-  - [495]
-  - [496]
-  - [497]
-  - [498]
-  - [499]
-  - [500]
-  - [501]
-  - [502]
-  - [503]
-  - [504]
-  - [505]
-  - [506]
-  - [507]
-  - [508]
-  - [509]
-  - [510]
-  - [511]
-  - [512]
-  - [513]
-  - [514]
-  - [515]
-  - [516]
-  - [517]
-  - [518]
-  - [519]
-  - [520]
-  - [521]
-  - [522]
-  - [523]
-  - [524]
-  - [525]
-  - [526]
-  - [527]
-  - [528]
-  - [529]
-  - [530]
-  - [531]
-  - [532]
-  - [533]
-  - [534]
-  - [535]
-  - [536]
-  - [537]
-  - [538]
-  - [539]
-  - [540]
-  - [541]
-  - [542]
-  - [543]
-  - [544]
-  - [545]
-  - [546]
-  - [547]
-  - [548]
-  - [549]
-  - [550]
-  - [551]
-  - [552]
-  - [553]
-  - [554]
-  - [555]
-  - [556]
-  - [557]
-  - [558]
-  - [559]
-  - [560]
-  - [561]
-  - [562]
-  - [563]
-  - [564]
-  - [565]
-  - [566]
-  - [567]
-  - [568]
-  - [569]
-  - [570]
-  - [571]
-  - [572]
-  - [573]
-  - [574]
-  - [575]
-  - [576]
-  - [577]
-  - [578]
-  - [579]
-  - [580]
-  - [581]
-  - [582]
-  - [583]
-  - [584]
-  - [585]
-  - [586]
-  - [587]
-  - [588]
-  - [589]
-  - [590]
-  - [591]
-  - [592]
-  - [593]
-  - [594]
-  - [595]
-  - [596]
-  - [597]
-  - [598]
-  - [599]
-  - [600]
-  - [601]
-  - [602]
-  - [603]
-  - [604]
-  - [605]
-  - [606]
-  - [607]
-  - [608]
-  - [609]
-  - [610]
-  - [611]
-  - [612]
-  - [613]
-  - [614]
-  - [615]
-  - [616]
-  - [617]
-  - [618]
-  - [619]
-  - [620]
-  - [621]
-  - [622]
-  - [623]
-  - [624]
-  - [625]
-  - [626]
-  - [627]
-  - [628]
-  - [629]
-  - [630]
-  - [631]
-  - [632]
-  - [633]
-  - [634]
-  - [635]
-  - [636]
-  - [637]
-  - [638]
-  - [639]
-  - [640]
-  - [641]
-  - [642]
-  - [643]
-  - [644]
-  - [645]
-  - [646]
-  - [647]
-  - [648]
-  - [649]
-  - [650]
-  - [651]
-  - [652]
-  - [653]
-  - [654]
-  - [655]
-  - [656]
-  - [657]
-  - [658]
-  - [659]
-  - [660]
-  - [661]
-  - [662]
-  - [663]
-  - [664]
-  - [665]
-  - [666]
-  - [667]
-  - [668]
-  - [669]
-  - [670]
-  - [671]
-  - [672]
-  - [673]
-  - [674]
-  - [675]
-  - [676]
-  - [677]
-  - [678]
-  - [679]
-  - [680]
-  - [681]
-  - [682]
-  - [683]
-  - [684]
-  - [685]
-  - [686]
-  - [687]
-  - [688]
-  - [689]
-  - [690]
-  - [691]
-  - [692]
-  - [693]
-  - [694]
-  - [695]
-  - [696]
-  - [697]
-  - [698]
-  - [699]
-  - [700]
-  - [701]
-  - [702]
-  - [703]
-  - [704]
-  - [705]
-  - [706]
-  - [707]
-  - [708]
-  - [709]
-  - [710]
-  - [711]
-  - [712]
-  - [713]
-  - [714]
-  - [715]
-  - [716]
-  - [717]
-  - [718]
-  - [719]
-  - [720]
-  - [721]
-  - [722]
-  - [723]
-  - [724]
-  - [725]
-  - [726]
-  - [727]
-  - [728]
-  - [729]
-  - [730]
-  - [731]
-  - [732]
-  - [733]
-  - [734]
-  - [735]
-  - [736]
-  - [737]
-  - [738]
-  - [739]
-  - [740]
-  - [741]
-  - [742]
-  - [743]
-  - [744]
-  - [745]
-  - [746]
-  - [747]
-  - [748]
-  - [749]
-  - [750]
-  - [751]
-  - [752]
-  - [753]
-  - [754]
-  - [755]
-  - [756]
-  - [757]
-  - [758]
-  - [759]
-  - [760]
-  - [761]
-  - [762]
-  - [763]
-  - [764]
-  - [765]
-  - [766]
-  - [767]
-  - [768]
-  - [769]
-  - [770]
-  - [771]
-  - [772]
-  - [773]
-  - [774]
-  - [775]
-  - [776]
-  - [777]
-  - [778]
-  - [779]
-  - [780]
-  - [781]
-  - [782]
-  - [783]
-  - [784]
-  - [785]
-  - [786]
-  - [787]
-  - [788]
-  - [789]
-  - [790]
-  - [791]
-  - [792]
-  - [793]
-  - [794]
-  - [795]
-  - [796]
-  - [797]
-  - [798]
-  - [799]
-  - [800]
-  - [801]
-  - [802]
-  - [803]
-  - [804]
-  - [805]
-  - [806]
-  - [807]
-  - [808]
-  - [809]
-  - [810]
-  - [811]
-  - [812]
-  - [813]
-  - [814]
-  - [815]
-  - [816]
-  - [817]
-  - [818]
-  - [819]
-  - [820]
-  - [821]
-  - [822]
-  - [823]
-  - [824]
-  - [825]
-  - [826]
-  - [827]
-  - [828]
-  - [829]
-  - [830]
-  - [831]
-  - [832]
-  - [833]
-  - [834]
-  - [835]
-  - [836]
-  - [837]
-  - [838]
-  - [839]
-  - [840]
-  - [841]
-  - [842]
-  - [843]
-  - [844]
-  - [845]
-  - [846]
-  - [847]
-  - [848]
-  - [849]
-  - [850]
-  - [851]
-  - [852]
-  - [853]
-  - [854]
-  - [855]
-  - [856]
-  - [857]
-  - [858]
-  - [859]
-  - [860]
-  - [861]
-  - [862]
-  - [863]
-  - [864]
-  - [865]
-  - [866]
-  - [867]
-  - [868]
-  - [869]
-  - [870]
-  - [871]
-  - [872]
-  - [873]
-  - [874]
-  - [875]
-  - [876]
-  - [877]
-  - [878]
-  - [879]
-  - [880]
-  - [881]
-  - [882]
-  - [883]
-  - [884]
-  - [885]
-  - [886]
-  - [887]
-  - [888]
-  - [889]
-  - [890]
-  - [891]
-  - [892]
-  - [893]
-  - [894]
-  - [895]
-  - [896]
-  - [897]
-  - [898]
-  - [899]
-  - [900]
-  - [901]
-  - [902]
-  - [903]
-  - [904]
-  - [905]
-  - [906]
-  - [907]
-  - [908]
-  - [909]
-  - [910]
-  - [911]
-  - [912]
-  - [913]
-  - [914]
-  - [915]
-  - [916]
-  - [917]
-  - [918]
-  - [919]
-  - [920]
-  - [921]
-  - [922]
-  - [923]
-  - [924]
-  - [925]
-  - [926]
-  - [927]
-  - [928]
-  - [929]
-  - [930]
-  - [931]
-  - [932]
-  - [933]
-  - [934]
-  - [935]
-  - [936]
-  - [937]
-  - [938]
-  - [939]
-  - [940]
-  - [941]
-  - [942]
-  - [943]
-  - [944]
-  - [945]
-  - [946]
-  - [947]
-  - [948]
-  - [949]
-  - [950]
-  - [951]
-  - [952]
-  - [953]
-  - [954]
-  - [955]
-  - [956]
-  - [957]
-  - [958]
-  - [959]
-  - [960]
-  - [961]
-  - [962]
-  - [963]
-  - [964]
-  - [965]
-  - [966]
-  - [967]
-  - [968]
-  - [969]
-  - [970]
-  - [971]
-  - [972]
-  - [973]
-  - [974]
-  - [975]
-  - [976]
-  - [977]
-  - [978]
-  - [979]
-  - [980]
-  - [981]
-  - [982]
-  - [983]
-  - [984]
-  - [985]
-  - [986]
-  - [987]
-  - [988]
-  - [989]
-  - [990]
-  - [991]
-  - [992]
-  - [993]
-  - [994]
-  - [995]
-  - [996]
-  - [997]
-  - [998]
-  - [999]
-  - [1000]
-  - [1001]
+...
+err = nil
+---
+...
+for _, t in space:pairs() do                                    \
+    if t[1] ~= i then                                           \
+        err = {i, t}                                            \
+        break                                                   \
+    end                                                         \
+    i = i + 1                                                   \
+end
+---
+...
+i
+---
+- 33002
+...
+err
+---
+- null
 ...
 space:drop()
 ---
diff --git a/test/engine/recover_snapshot_wal.test.lua b/test/engine/recover_snapshot_wal.test.lua
index 1f133dd72a..a3067a4968 100644
--- a/test/engine/recover_snapshot_wal.test.lua
+++ b/test/engine/recover_snapshot_wal.test.lua
@@ -10,7 +10,7 @@ index = space:create_index('primary')
 
 space:insert({0})
 box.snapshot()
-space:insert({1001})
+space:insert({33001})
 
 test_run:cmd("restart server default")
 
@@ -20,13 +20,34 @@ index:select({}, {iterator = box.index.ALL})
 
 for key = 1, 351 do space:insert({key}) end
 box.snapshot()
-for key = 352, 1000 do space:insert({key}) end
+-- Insert so many tuples, that recovery would need to yield
+-- periodically to allow other fibers do something. At the moment
+-- of writing this the yield period was 32k tuples.
+box.begin()                                                     \
+for key = 352, 33000 do                                         \
+    space:insert({key})                                         \
+    if key % 10000 == 0 then                                    \
+        box.commit()                                            \
+        box.begin()                                             \
+    end                                                         \
+end                                                             \
+box.commit()
 
 test_run:cmd("restart server default")
 
 space = box.space['test']
 index = space.index['primary']
-index:select({}, {iterator = box.index.ALL})
+i = 0
+err = nil
+for _, t in space:pairs() do                                    \
+    if t[1] ~= i then                                           \
+        err = {i, t}                                            \
+        break                                                   \
+    end                                                         \
+    i = i + 1                                                   \
+end
+i
+err
 
 space:drop()
 test_run:cmd("restart server default with cleanup=1")
diff --git a/test/engine_long/box.lua b/test/engine_long/box.lua
index c24eac5fe2..28a1560d53 100644
--- a/test/engine_long/box.lua
+++ b/test/engine_long/box.lua
@@ -9,7 +9,6 @@ box.cfg {
     listen            = os.getenv("LISTEN"),
     memtx_memory      = 107374182,
     pid_file          = "tarantool.pid",
-    rows_per_wal      = 500000,
     vinyl_dir         = "./vinyl_test",
     vinyl_memory      = 107374182,
     vinyl_read_threads = 3,
diff --git a/test/long_run-py/box.lua b/test/long_run-py/box.lua
index 8b0738bf8d..b4f65dcdb8 100644
--- a/test/long_run-py/box.lua
+++ b/test/long_run-py/box.lua
@@ -9,7 +9,6 @@ box.cfg {
     listen            = os.getenv("LISTEN"),
     memtx_memory      = 107374182,
     pid_file          = "tarantool.pid",
-    rows_per_wal      = 500000,
     vinyl_dir         = "./vinyl_test",
     vinyl_read_threads = 3,
     vinyl_write_threads = 5,
diff --git a/test/vinyl/vinyl.lua b/test/vinyl/vinyl.lua
index 34bd948ffc..31307f4bc9 100644
--- a/test/vinyl/vinyl.lua
+++ b/test/vinyl/vinyl.lua
@@ -4,7 +4,6 @@ box.cfg {
     listen            = os.getenv("LISTEN"),
     memtx_memory      = 512 * 1024 * 1024,
     memtx_max_tuple_size = 4 * 1024 * 1024,
-    rows_per_wal      = 1000000,
     vinyl_read_threads = 2,
     vinyl_write_threads = 3,
     vinyl_memory = 512 * 1024 * 1024,
diff --git a/test/xlog-py/box.lua b/test/xlog-py/box.lua
index 00c592c81a..c87f7b94b2 100644
--- a/test/xlog-py/box.lua
+++ b/test/xlog-py/box.lua
@@ -6,7 +6,6 @@ box.cfg{
     memtx_memory        = 107374182,
     pid_file            = "tarantool.pid",
     force_recovery      = true,
-    rows_per_wal        = 10
 }
 
 require('console').listen(os.getenv('ADMIN'))
diff --git a/test/xlog/checkpoint_daemon.result b/test/xlog/checkpoint_daemon.result
index 6c96da0d5b..5be7124fe8 100644
--- a/test/xlog/checkpoint_daemon.result
+++ b/test/xlog/checkpoint_daemon.result
@@ -87,12 +87,15 @@ box.cfg{checkpoint_interval = PERIOD, checkpoint_count = 2 }
 no = 1
 ---
 ...
+row_count_per_wal = box.cfg.wal_max_size / 50
+---
+...
 -- first xlog
-for i = 1, box.cfg.rows_per_wal + 10 do space:insert { no } no = no + 1 end
+for i = 1, row_count_per_wal + 10 do space:insert { no } no = no + 1 end
 ---
 ...
 -- second xlog
-for i = 1, box.cfg.rows_per_wal + 10 do space:insert { no } no = no + 1 end
+for i = 1, row_count_per_wal + 10 do space:insert { no } no = no + 1 end
 ---
 ...
 wait_snapshot(WAIT_COND_TIMEOUT)
@@ -100,11 +103,11 @@ wait_snapshot(WAIT_COND_TIMEOUT)
 - true
 ...
 -- third xlog
-for i = 1, box.cfg.rows_per_wal + 10 do space:insert { no } no = no + 1 end
+for i = 1, row_count_per_wal + 10 do space:insert { no } no = no + 1 end
 ---
 ...
 -- fourth xlog
-for i = 1, box.cfg.rows_per_wal + 10 do space:insert { no } no = no + 1 end
+for i = 1, row_count_per_wal + 10 do space:insert { no } no = no + 1 end
 ---
 ...
 wait_snapshot(WAIT_COND_TIMEOUT)
diff --git a/test/xlog/checkpoint_daemon.test.lua b/test/xlog/checkpoint_daemon.test.lua
index 37d7f75289..d3138f356d 100644
--- a/test/xlog/checkpoint_daemon.test.lua
+++ b/test/xlog/checkpoint_daemon.test.lua
@@ -54,17 +54,18 @@ test_run:cmd("setopt delimiter ''");
 box.cfg{checkpoint_interval = PERIOD, checkpoint_count = 2 }
 
 no = 1
+row_count_per_wal = box.cfg.wal_max_size / 50
 -- first xlog
-for i = 1, box.cfg.rows_per_wal + 10 do space:insert { no } no = no + 1 end
+for i = 1, row_count_per_wal + 10 do space:insert { no } no = no + 1 end
 -- second xlog
-for i = 1, box.cfg.rows_per_wal + 10 do space:insert { no } no = no + 1 end
+for i = 1, row_count_per_wal + 10 do space:insert { no } no = no + 1 end
 
 wait_snapshot(WAIT_COND_TIMEOUT)
 
 -- third xlog
-for i = 1, box.cfg.rows_per_wal + 10 do space:insert { no } no = no + 1 end
+for i = 1, row_count_per_wal + 10 do space:insert { no } no = no + 1 end
 -- fourth xlog
-for i = 1, box.cfg.rows_per_wal + 10 do space:insert { no } no = no + 1 end
+for i = 1, row_count_per_wal + 10 do space:insert { no } no = no + 1 end
 
 wait_snapshot(WAIT_COND_TIMEOUT)
 wait_snapshot_gc(WAIT_COND_TIMEOUT)
diff --git a/test/xlog/errinj.result b/test/xlog/errinj.result
index d6d4141b51..c524d7a80a 100644
--- a/test/xlog/errinj.result
+++ b/test/xlog/errinj.result
@@ -58,7 +58,10 @@ _ = test:create_index('primary')
 box.schema.user.grant('guest', 'write', 'space', 'test')
 ---
 ...
-for i=1, box.cfg.rows_per_wal do test:insert{i, 'test'} end
+row_count_per_wal = box.cfg.wal_max_size / 50 + 10
+---
+...
+for i=1, row_count_per_wal do test:insert{i, 'test'} end
 ---
 ...
 c = require('net.box').connect(box.cfg.listen)
@@ -69,7 +72,7 @@ errinj.set('ERRINJ_WAL_WRITE', true)
 ---
 - ok
 ...
-c.space.test:insert({box.cfg.rows_per_wal + 1,1,2,3})
+c.space.test:insert({row_count_per_wal + 1,1,2,3})
 ---
 - error: Failed to write to disk
 ...
diff --git a/test/xlog/errinj.test.lua b/test/xlog/errinj.test.lua
index de0e2e7e8e..3d72dc4e4d 100644
--- a/test/xlog/errinj.test.lua
+++ b/test/xlog/errinj.test.lua
@@ -30,12 +30,13 @@ _ = test:create_index('primary')
 
 box.schema.user.grant('guest', 'write', 'space', 'test')
 
-for i=1, box.cfg.rows_per_wal do test:insert{i, 'test'} end
+row_count_per_wal = box.cfg.wal_max_size / 50 + 10
+for i=1, row_count_per_wal do test:insert{i, 'test'} end
 c = require('net.box').connect(box.cfg.listen)
 
 -- try to write xlog without permission to write to disk
 errinj.set('ERRINJ_WAL_WRITE', true)
-c.space.test:insert({box.cfg.rows_per_wal + 1,1,2,3})
+c.space.test:insert({row_count_per_wal + 1,1,2,3})
 errinj.set('ERRINJ_WAL_WRITE', false)
 
 -- Cleanup
diff --git a/test/xlog/panic.lua b/test/xlog/panic.lua
index dee83e608d..2d4eb8d2e3 100644
--- a/test/xlog/panic.lua
+++ b/test/xlog/panic.lua
@@ -6,7 +6,6 @@ box.cfg{
     memtx_memory        = 107374182,
     pid_file            = "tarantool.pid",
     force_recovery      = false,
-    rows_per_wal        = 10
 }
 
 require('console').listen(os.getenv('ADMIN'))
diff --git a/test/xlog/upgrade/fill.lua b/test/xlog/upgrade/fill.lua
index cb38b08e3c..0ef1a8bb9d 100644
--- a/test/xlog/upgrade/fill.lua
+++ b/test/xlog/upgrade/fill.lua
@@ -2,7 +2,7 @@
 --- A script to generate some dataset used by migration.test.lua
 ---
 
-box.cfg{ rows_per_wal = 5 }
+box.cfg{ wal_max_size = 250 }
 box.schema.space.create("distro")
 box.space.distro:create_index('primary', { type = 'hash', unique = true,
     parts = {1, 'str', 2, 'str', 3, 'num'}})
diff --git a/test/xlog/xlog.lua b/test/xlog/xlog.lua
index b1c9719abd..004096d2db 100644
--- a/test/xlog/xlog.lua
+++ b/test/xlog/xlog.lua
@@ -6,7 +6,7 @@ box.cfg{
     memtx_memory        = 107374182,
     pid_file            = "tarantool.pid",
     force_recovery      = true,
-    rows_per_wal        = 10,
+    wal_max_size        = 500,
     snap_io_rate_limit  = 16
 }
 
-- 
GitLab