From d23fa96427c00bc2d149e6c55cf1f43ac956c213 Mon Sep 17 00:00:00 2001
From: Brennan Ashton <bashton@brennanashton.com>
Date: Wed, 14 Nov 2018 18:30:16 -0800
Subject: grc: Log exceptions on namespace renewal

---
 grc/core/FlowGraph.py | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

(limited to 'grc/core/FlowGraph.py')

diff --git a/grc/core/FlowGraph.py b/grc/core/FlowGraph.py
index 72d0594081..a47513d314 100644
--- a/grc/core/FlowGraph.py
+++ b/grc/core/FlowGraph.py
@@ -21,6 +21,8 @@ import collections
 import itertools
 import sys
 import types
+import logging
+
 from operator import methodcaller, attrgetter
 
 from . import Messages, blocks
@@ -29,6 +31,8 @@ from .base import Element
 from .utils import expr_utils
 from .utils.backports import shlex
 
+log = logging.getLogger(__name__)
+
 
 class FlowGraph(Element):
 
@@ -187,7 +191,8 @@ class FlowGraph(Element):
         for expr in self.imports():
             try:
                 exec(expr, namespace)
-            except:
+            except Exception:
+                log.exception('Failed to evaluate expression in namespace', exc_info=True)
                 pass
 
         for id, expr in self.get_python_modules():
@@ -195,7 +200,8 @@ class FlowGraph(Element):
                 module = types.ModuleType(id)
                 exec(expr, module.__dict__)
                 namespace[id] = module
-            except:
+            except Exception:
+                log.exception('Failed to evaluate expression in module {0}'.format(id), exc_info=True)
                 pass
 
         # Load parameters
@@ -204,7 +210,8 @@ class FlowGraph(Element):
             try:
                 value = eval(parameter_block.params['value'].to_code(), namespace)
                 np[parameter_block.name] = value
-            except:
+            except Exception:
+                log.exception('Failed to evaluate parameter block {0}'.format(parameter_block.name), exc_info=True)
                 pass
         namespace.update(np)  # Merge param namespace
 
@@ -213,7 +220,8 @@ class FlowGraph(Element):
             try:
                 value = eval(variable_block.value, namespace, variable_block.namespace)
                 namespace[variable_block.name] = value
-            except:
+            except Exception:
+                log.exception('Failed to evaluate variable block {0}'.format(variable_block.name), exc_info=True)
                 pass
 
         self.namespace.clear()
-- 
cgit v1.2.3