[CRIU] [PATCH 1/5] zdtm.py: don't stack trace when umount fails
Tycho Andersen
tycho.andersen at canonical.com
Mon Nov 23 12:55:24 PST 2015
I'm not exactly sure why, but it seems when a test fails sometimes I get
this stack trace:
sudo ./zdtm.py run -t zdtm/live/static/bridge
=== Run 1/1 ================
====================== Run zdtm/live/static/bridge in ns =======================
cc -g -O2 -Wall -Werror -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -iquote ../../lib/arch/x86/include -I../../lib bridge.c ../../lib/libzdtmtst.a -o bridge
Start test
Test is SUID
./bridge --pidfile=bridge.pid --outfile=bridge.out
mount: /tmp/criu-root-eIt72x is not mountpoint or bad option
In some cases useful info is found in syslog - try
dmesg | tail or so.
Run criu dump
Run criu restore
------------------------ grep Error ------------------------
(00.322301) 1: Error (net.c:597): Restoring link lo type 1 (idx 1)
(00.322556) 1: Error (net.c:597): Restoring link zdtmbr0 type 6 (idx 2)
(00.334240) 1: Error (net.c:553): waiting on if zdtmbr0 (index 2 and 2)
------------------------ ERROR OVER ------------------------
Wait for zdtm/live/static/bridge to die for 0.100000
Test output: ================================
1c1
< 2: zdtmbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
---
> 2: zdtmbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default
02:46:34.877: 5: FAIL: bridge.c:76: Net config differs after restore (errno = 11 (Resource temporarily unavailable))
<<< ================================
Traceback (most recent call last):
File "zdtm.py", line 922, in <module>
do_run_test(tinfo[0], tinfo[1], tinfo[2], tinfo[3])
File "zdtm.py", line 696, in do_run_test
t.kill()
File "zdtm.py", line 302, in kill
self.__flavor.fini()
File "zdtm.py", line 168, in fini
subprocess.check_call(["mount", "--make-private", self.root])
File "/usr/lib/python2.7/subprocess.py", line 540, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['mount', '--make-private', '/tmp/criu-root-eIt72x']' returned non-zero exit status 32
umount: /tmp/criu-root-eIt72x: not mounted
Signed-off-by: Tycho Andersen <tycho.andersen at canonical.com>
---
test/zdtm.py | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/test/zdtm.py b/test/zdtm.py
index b9bcb4f..2e701b3 100755
--- a/test/zdtm.py
+++ b/test/zdtm.py
@@ -165,8 +165,12 @@ class ns_flavor:
self.__copy_libs(dep)
def fini(self):
- subprocess.check_call(["mount", "--make-private", self.root])
- subprocess.check_call(["umount", "-l", self.root])
+ try:
+ # if these fail, we don't really care.
+ subprocess.check_call(["mount", "--make-private", self.root])
+ subprocess.check_call(["umount", "-l", self.root])
+ except subprocess.CalledProcessError:
+ pass
class userns_flavor(ns_flavor):
def __init__(self, opts):
--
2.6.2
More information about the CRIU
mailing list