let SystemExit exception go up to the surface so we can exit() and so freeze the...
authorThierry Parmentelat <thierry.parmentelat@inria.fr>
Fri, 13 Mar 2015 09:52:49 +0000 (10:52 +0100)
committerThierry Parmentelat <thierry.parmentelat@inria.fr>
Fri, 13 Mar 2015 09:52:49 +0000 (10:52 +0100)
database.py
nodemanager.py

index 7064335..2c4dc49 100644 (file)
@@ -13,6 +13,8 @@ In order to maintain service when the node reboots during a network
 partition, the database is constantly being dumped to disk.
 """
 
+import sys
+
 import cPickle
 import threading
 import time
@@ -156,6 +158,8 @@ It may be necessary in the future to do something smarter."""
                     if sliver.is_running():
                         logger.verbose ("database: sync : ensure_create'ing 'delegated' sliver %s"%name)
                         sliver.ensure_created(rec)
+            except SystemExit as e:
+                sys.exit(e)
             except:
                 logger.log_exc("database: sync failed to handle sliver",name=name)
 
index 7f5e204..0d3009d 100755 (executable)
@@ -117,6 +117,8 @@ class NodeManager:
                 if getattr(module,'persistent_data',False):
                     module_data=last_data
                 callback(data, config, plc)
+            except SystemExit as e:
+                sys.exit(e)
             except:
                 logger.log_exc("nodemanager: GetSlivers failed to run callback for module %r"%module)