diff --git a/CHANGELOG b/CHANGELOG index ec0239e1..7a6176dd 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -44,6 +44,13 @@ * Don't delete Dynamips ROM files. They are used to restore the nvram. * Adds pywin32 dependency in setup.py for Windows. +## 1.3.10 04/09/2015 + +* Catch exception when a process cannot be killed. Fixes #296. +* Backport: fixes NAT NIO for Qemu VMs (do not launch any legacy scripts) +* Fixes Unicode error. Fixes #290. +* Don't delete Dynamips ROM files. They are used to restore the nvram. + ## 1.4.0beta1 07/08/2015 * Fix ram setting for Qemu diff --git a/gns3server/modules/dynamips/hypervisor.py b/gns3server/modules/dynamips/hypervisor.py index e6586e02..127e9239 100644 --- a/gns3server/modules/dynamips/hypervisor.py +++ b/gns3server/modules/dynamips/hypervisor.py @@ -151,7 +151,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/vpcs/vpcs_vm.py b/gns3server/modules/vpcs/vpcs_vm.py index b065e49f..8929b556 100644 --- a/gns3server/modules/vpcs/vpcs_vm.py +++ b/gns3server/modules/vpcs/vpcs_vm.py @@ -271,11 +271,12 @@ class VPCSVM(BaseVM): yield from 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 diff --git a/gns3server/version.py b/gns3server/version.py index 485cc237..9dc3e598 100644 --- a/gns3server/version.py +++ b/gns3server/version.py @@ -23,5 +23,5 @@ # or negative for a release candidate or beta (after the base version # number has been incremented) -__version__ = "1.4.0dev8" +__version__ = "1.4.0.dev8" __version_info__ = (1, 4, 0, 8)