From 382747a2f279d394643551f6bd2bb229688dd1d8 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 37478b434..9d2e9a4b6 100644 --- a/gns3server/modules/base_manager.py +++ b/gns3server/modules/base_manager.py @@ -115,7 +115,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 e4173701a..d7470c591 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 5ed73dd03..a689b6583 100644 --- a/gns3server/modules/project.py +++ b/gns3server/modules/project.py @@ -367,7 +367,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):