From 7b001e4d36b8139178a4dca22828279561adee5d Mon Sep 17 00:00:00 2001 From: Jeremy Date: Sat, 25 Jul 2015 16:46:23 -0600 Subject: [PATCH] Catch GeneratorExit exception. Fixes #231. --- gns3server/modules/base_manager.py | 2 +- gns3server/modules/dynamips/__init__.py | 4 ++-- gns3server/modules/project.py | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/gns3server/modules/base_manager.py b/gns3server/modules/base_manager.py index d210a9a0..056ad8fc 100644 --- a/gns3server/modules/base_manager.py +++ b/gns3server/modules/base_manager.py @@ -113,7 +113,7 @@ class BaseManager: for future in done: try: future.result() - except Exception as e: + except (Exception, GeneratorExit) as e: log.error("Could not close VM {}".format(e), exc_info=1) continue diff --git a/gns3server/modules/dynamips/__init__.py b/gns3server/modules/dynamips/__init__.py index 4be683e0..27431659 100644 --- a/gns3server/modules/dynamips/__init__.py +++ b/gns3server/modules/dynamips/__init__.py @@ -130,7 +130,7 @@ class Dynamips(BaseManager): for future in done: try: future.result() - except Exception as e: + except (Exception, GeneratorExit) as e: log.error("Could not stop device hypervisor {}".format(e), exc_info=1) continue @@ -154,7 +154,7 @@ class Dynamips(BaseManager): for future in done: try: future.result() - except Exception as e: + except (Exception, GeneratorExit) as e: log.error("Could not delete device {}".format(e), exc_info=1) @asyncio.coroutine diff --git a/gns3server/modules/project.py b/gns3server/modules/project.py index 0c87cc37..2504656e 100644 --- a/gns3server/modules/project.py +++ b/gns3server/modules/project.py @@ -363,7 +363,7 @@ class Project: for future in done: try: future.result() - except Exception as e: + except (Exception, GeneratorExit) as e: log.error("Could not close VM or device {}".format(e), exc_info=1) if cleanup and os.path.exists(self.path):