diff --git a/gns3server/modules/dynamips/hypervisor.py b/gns3server/modules/dynamips/hypervisor.py index a568ff51..caac0148 100644 --- a/gns3server/modules/dynamips/hypervisor.py +++ b/gns3server/modules/dynamips/hypervisor.py @@ -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: diff --git a/gns3server/modules/qemu/qemu_vm.py b/gns3server/modules/qemu/qemu_vm.py index 795a3969..94d0d334 100644 --- a/gns3server/modules/qemu/qemu_vm.py +++ b/gns3server/modules/qemu/qemu_vm.py @@ -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() diff --git a/gns3server/modules/vpcs/vpcs_vm.py b/gns3server/modules/vpcs/vpcs_vm.py index 78cc644d..f9b42bf7 100644 --- a/gns3server/modules/vpcs/vpcs_vm.py +++ b/gns3server/modules/vpcs/vpcs_vm.py @@ -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