mirror of
https://github.com/GNS3/gns3-server
synced 2024-11-14 04:19:00 +00:00
Catch exception when a process cannot be killed. Fixes #296.
This commit is contained in:
parent
eb5f9c48f2
commit
fda33c56de
@ -140,7 +140,12 @@ class Hypervisor(DynamipsHypervisor):
|
||||
except asyncio.TimeoutError:
|
||||
if self._process.returncode is None:
|
||||
log.warn("Dynamips process {} is still running... killing it".format(self._process.pid))
|
||||
self._process.kill()
|
||||
try:
|
||||
self._process.kill()
|
||||
except OSError as e:
|
||||
log.error("Cannot stop the Dynamips process: {}".format(e))
|
||||
if self._process.returncode is None:
|
||||
log.warn('Dynamips hypervisor with PID={} is still running'.format(self._process.pid))
|
||||
|
||||
if self._stdout_file and os.access(self._stdout_file, os.W_OK):
|
||||
try:
|
||||
|
@ -604,9 +604,12 @@ class QemuVM(BaseVM):
|
||||
self._process.terminate()
|
||||
self._process.wait()
|
||||
except subprocess.TimeoutExpired:
|
||||
self._process.kill()
|
||||
try:
|
||||
self._process.kill()
|
||||
except OSError as e:
|
||||
log.error("Cannot stop the Qemu process: {}".format(e))
|
||||
if self._process.returncode is None:
|
||||
log.warn('QEMU VM "{}" PID={} is still running'.format(self._name, self._process.pid))
|
||||
log.warn('QEMU VM "{}" with PID={} is still running'.format(self._name, self._process.pid))
|
||||
self._process = None
|
||||
self._started = False
|
||||
self._stop_cpulimit()
|
||||
|
@ -253,11 +253,12 @@ class VPCSVM(BaseVM):
|
||||
yield from gns3server.utils.asyncio.wait_for_process_termination(self._process, timeout=3)
|
||||
except asyncio.TimeoutError:
|
||||
if self._process.returncode is None:
|
||||
log.warn("VPCS process {} is still running... killing it".format(self._process.pid))
|
||||
try:
|
||||
self._process.kill()
|
||||
except OSError as e:
|
||||
raise VPCSError("Can not stop the VPCS process: {}".format(e))
|
||||
log.error("Cannot stop the VPCS process: {}".format(e))
|
||||
if self._process.returncode is None:
|
||||
log.warn('VPCS VM "{}" with PID={} is still running'.format(self._name, self._process.pid))
|
||||
|
||||
self._process = None
|
||||
self._started = False
|
||||
|
Loading…
Reference in New Issue
Block a user