[lxc-devel] [lxd/master] tests: Fix race condition in import tests

stgraber on Github lxc-bot at linuxcontainers.org
Tue Feb 27 20:21:31 UTC 2018


A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 354 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20180227/3c718f4d/attachment.bin>
-------------- next part --------------
From 70611215213499377a4144651567735d57509359 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber at ubuntu.com>
Date: Tue, 27 Feb 2018 15:21:04 -0500
Subject: [PATCH] tests: Fix race condition in import tests
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>
---
 test/suites/backup.sh | 28 +++++++++++++++++++---------
 1 file changed, 19 insertions(+), 9 deletions(-)

diff --git a/test/suites/backup.sh b/test/suites/backup.sh
index 0b14a0b83..0abb6b187 100644
--- a/test/suites/backup.sh
+++ b/test/suites/backup.sh
@@ -5,6 +5,16 @@ test_container_import() {
   (
     set -e
 
+    kill_lxc() {
+        pid=${1:-}
+        [ -n "${pid}" ] || return
+        ppid=$(ps -o ppid="" -p "${pid}")
+        kill -9 "${pid}" || true
+
+        [ -n "${ppid}" ] || return
+        kill -9 "${ppid}" || true
+    }
+
     # shellcheck disable=SC2030
     LXD_DIR=${LXD_IMPORT_DIR}
     lxd_backend=$(storage_backend "$LXD_DIR")
@@ -16,7 +26,7 @@ test_container_import() {
     pid=$(lxc info ctImport | grep ^Pid | awk '{print $2}')
     ! lxd import ctImport
     lxd import ctImport --force
-    kill -9 "${pid}"
+    kill_lxc "${pid}"
     lxd sql "PRAGMA foreign_keys=ON; DELETE FROM containers WHERE name='ctImport'"
     lxd sql "PRAGMA foreign_keys=ON; DELETE FROM storage_volumes WHERE name='ctImport'"
     lxd import ctImport --force
@@ -29,7 +39,7 @@ test_container_import() {
     pid=$(lxc info ctImport | grep ^Pid | awk '{print $2}')
     ! lxd import ctImport
     lxd import ctImport --force
-    kill -9 "${pid}"
+    kill_lxc "${pid}"
     lxc info ctImport | grep snap0
     lxc start ctImport
     lxc delete --force ctImport
@@ -38,7 +48,7 @@ test_container_import() {
     lxc snapshot ctImport
     lxc start ctImport
     pid=$(lxc info ctImport | grep ^Pid | awk '{print $2}')
-    kill -9 "${pid}"
+    kill_lxc "${pid}"
     lxd sql "PRAGMA foreign_keys=ON; DELETE FROM containers WHERE name='ctImport'"
     ! lxd import ctImport
     lxd import ctImport --force
@@ -50,7 +60,7 @@ test_container_import() {
     lxc snapshot ctImport
     lxc start ctImport
     pid=$(lxc info ctImport | grep ^Pid | awk '{print $2}')
-    kill -9 "${pid}"
+    kill_lxc "${pid}"
     lxd sql "PRAGMA foreign_keys=ON; DELETE FROM containers WHERE name='ctImport/snap0'"
     ! lxd import ctImport
     lxd import ctImport --force
@@ -62,7 +72,7 @@ test_container_import() {
     lxc snapshot ctImport
     lxc start ctImport
     pid=$(lxc info ctImport | grep ^Pid | awk '{print $2}')
-    kill -9 "${pid}"
+    kill_lxc "${pid}"
     lxd sql "PRAGMA foreign_keys=ON; DELETE FROM containers WHERE name='ctImport'"
     lxd sql "PRAGMA foreign_keys=ON; DELETE FROM containers WHERE name='ctImport/snap0'"
     lxd sql "PRAGMA foreign_keys=ON; DELETE FROM storage_volumes WHERE name='ctImport'"
@@ -76,7 +86,7 @@ test_container_import() {
     lxc snapshot ctImport
     lxc start ctImport
     pid=$(lxc info ctImport | grep ^Pid | awk '{print $2}')
-    kill -9 "${pid}"
+    kill_lxc "${pid}"
     lxd sql "PRAGMA foreign_keys=ON; DELETE FROM containers WHERE name='ctImport'"
     lxd sql "PRAGMA foreign_keys=ON; DELETE FROM containers WHERE name='ctImport/snap0'"
     lxd sql "PRAGMA foreign_keys=ON; DELETE FROM storage_volumes WHERE name='ctImport'"
@@ -97,7 +107,7 @@ test_container_import() {
       rm -rf "${LXD_DIR}/storage-pools/lxdtest-$(basename "${LXD_DIR}")/snapshots/ctImport/snap0"
     fi
     pid=$(lxc info ctImport | grep ^Pid | awk '{print $2}')
-    kill -9 "${pid}"
+    kill_lxc "${pid}"
     lxd sql "PRAGMA foreign_keys=ON; DELETE FROM containers WHERE name='ctImport'"
     lxd sql "PRAGMA foreign_keys=ON; DELETE FROM containers WHERE name='ctImport/snap0'"
     lxd sql "PRAGMA foreign_keys=ON; DELETE FROM storage_volumes WHERE name='ctImport'"
@@ -135,7 +145,7 @@ test_container_import() {
         ;;
     esac
     pid=$(lxc info ctImport | grep ^Pid | awk '{print $2}')
-    kill -9 "${pid}"
+    kill_lxc "${pid}"
     ! lxd import ctImport
     lxd import ctImport --force
     lxc info ctImport | grep snap0
@@ -167,7 +177,7 @@ test_container_import() {
         ;;
     esac
     pid=$(lxc info ctImport | grep ^Pid | awk '{print $2}')
-    kill -9 "${pid}"
+    kill_lxc "${pid}"
     ! lxd import ctImport
     lxd import ctImport --force
     lxc info ctImport | grep snap0


More information about the lxc-devel mailing list