[Tarantool-patches] [PATCH v1] test: setup workspace in tmpfs for OOS build

Alexander V. Tikhonov avtikhon at tarantool.org
Tue Dec 15 11:12:42 MSK 2020


Cc: tarantool-patches at dev.tarantool.org

Found that running vinyl test suite in parallel using test-run vardir
on real hard drive may cause a lot of tests to fail. It happens because
of bottleneck with hard drive usage up to 100% which can be seen by any
of the tools like atop during vinyl tests run in parallel. To avoid of
it all heavy loaded testing processes should use tmpfs for vardir path.
Found that out-of-source build had to be updated to use tmpfs for it.
This patch mounts additional tmpfs mount point in OOS build docker run
process for test-run vardir. This mount point set using '--tmpfs' flag
because '--mount' does not support 'exec' option which is needed to be
able to execute commands in it [2][3].

Issues met on OOS before the patch, like described in #5504 and [1]:

  Test hung! Result content mismatch:
  --- vinyl/write_iterator.result	Fri Nov 20 14:48:24 2020
  +++ /rw_bins/test/var/081_vinyl/write_iterator.result	Fri Nov 20 15:01:54 2020
  @@ -200,831 +200,3 @@
   ---
   ...
   for i = 1, 100 do space:insert{i, ''..i} if i % 2 == 0 then box.snapshot() end end
  ----
  -...
  -space:delete{1}
  ----
  -...

Closes #5622
Part of #5504

[1] - https://gitlab.com/tarantool/tarantool/-/jobs/863266476#L5009
[2] - https://stackoverflow.com/questions/54729130/how-to-mount-docker-tmpfs-with-exec-rw-flags
[3] - https://github.com/moby/moby/issues/35890
---

Github: https://github.com/tarantool/tarantool/tree/avtikhon/oos-build-tmpfs
Issue: https://github.com/tarantool/tarantool/issues/5622
Issue: https://github.com/tarantool/tarantool/issues/5504

 .travis.mk | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.travis.mk b/.travis.mk
index 238e31cda..a975cd3cc 100644
--- a/.travis.mk
+++ b/.travis.mk
@@ -228,6 +228,7 @@ test_oos: deps_debian test_oos_no_deps
 test_oos_build:
 	docker run --network=host -w ${OOS_SRC_PATH} \
 		--mount type=bind,source="${PWD}",target=${OOS_SRC_PATH},readonly,bind-propagation=rslave \
+		--tmpfs ${OOS_BUILD_PATH}:exec \
 		-i ${DOCKER_IMAGE_TARANTOOL} \
 		make -f .travis.mk ${OOS_BUILD_RULE}
 
-- 
2.25.1



More information about the Tarantool-patches mailing list