aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Klozik <martinx.klozik@intel.com>2015-07-14 01:48:09 +0100
committerMaryam Tahhan <maryam.tahhan@intel.com>2015-07-17 08:51:51 +0000
commitd688a143c3c4a7e4e4539aa175669c26a0ac89d3 (patch)
tree0a831fcdc7e6efb3ba2d06eceefd53633885cdef
parent613cea4f9a4765c0ca3ff56ba75492488772c7a3 (diff)
Fix stability issues at the end of testcase run.
Cleanup procedure is performed at the end of each testcase run. Procedure consists of termination of vswitch processes, removal of unneeded kernel drivers, unmount of hugepages, etc. There must be enough time for vswitch processes to terminate properly before OS resources are freed. Otherwise OS stability issues can be observed (e.g. server reboot). Process termination is implemented by sending signal SIGTERM to the process instead of previously used signal SIGINT. Change-Id: I7e8c7a86ae2a75f2a18db0d9340726fb649a685b JIRA: VSPERF-27 Signed-off-by: Martin Klozik <martinx.klozik@intel.com> Reviewed-by: Maryam Tahhan <maryam.tahhan@intel.com> Reviewed-by: Billy O Mahony <billy.o.mahony@intel.com> Reviewed-by: Eugene Snider <Eugene.Snider@huawei.com> Reviewed-by: Gurpreet Singh <gurpreet.singh@spirent.com> Reviewed-by: Tv Rao <tv.rao@freescale.com>
-rw-r--r--src/ovs/daemon.py2
-rw-r--r--tools/tasks.py5
2 files changed, 5 insertions, 2 deletions
diff --git a/src/ovs/daemon.py b/src/ovs/daemon.py
index ee3446d5..323644c6 100644
--- a/src/ovs/daemon.py
+++ b/src/ovs/daemon.py
@@ -138,5 +138,5 @@ class VSwitchd(tasks.Process):
:returns: None
"""
if self._ovsdb_pid:
- tasks.run_task(['sudo', 'kill', '-2', str(self._ovsdb_pid)],
+ tasks.run_task(['sudo', 'kill', '-15', str(self._ovsdb_pid)],
self._logger, 'Killing ovsdb-server...')
diff --git a/tools/tasks.py b/tools/tasks.py
index f8f11d4e..555a5929 100644
--- a/tools/tasks.py
+++ b/tools/tasks.py
@@ -23,6 +23,7 @@ import threading
import sys
import os
import locale
+import time
from conf import settings
@@ -244,8 +245,10 @@ class Process(object):
"""Kill process instance if it is alive.
"""
if self._child and self._child.isalive():
- run_task(['sudo', 'kill', '-2', str(self._child.pid)],
+ run_task(['sudo', 'kill', '-15', str(self._child.pid)],
self._logger)
+ self._logger.debug('Wait for process to terminate')
+ time.sleep(2)
if self.is_relinquished():
self._relinquish_thread.join()