summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Server/Plugin
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/Bcfg2/Server/Plugin')
-rw-r--r--src/lib/Bcfg2/Server/Plugin/helpers.py10
-rw-r--r--src/lib/Bcfg2/Server/Plugin/interfaces.py10
2 files changed, 12 insertions, 8 deletions
diff --git a/src/lib/Bcfg2/Server/Plugin/helpers.py b/src/lib/Bcfg2/Server/Plugin/helpers.py
index 2aab231c6..5cfc8998c 100644
--- a/src/lib/Bcfg2/Server/Plugin/helpers.py
+++ b/src/lib/Bcfg2/Server/Plugin/helpers.py
@@ -266,7 +266,7 @@ class FileBacked(Debuggable):
self.fam = Bcfg2.Server.FileMonitor.get_fam()
def HandleEvent(self, event=None):
- """ HandleEvent is called whenever the FAM registers an event.
+ """HandleEvent is called whenever the FAM registers an event.
:param event: The event object
:type event: Bcfg2.Server.FileMonitor.Event
@@ -276,13 +276,11 @@ class FileBacked(Debuggable):
return
try:
self.data = open(self.name).read()
- self.Index()
except IOError:
err = sys.exc_info()[1]
self.logger.error("Failed to read file %s: %s" % (self.name, err))
- except:
- err = sys.exc_info()[1]
- self.logger.error("Failed to parse file %s: %s" % (self.name, err))
+
+ self.Index()
def Index(self):
""" Index() is called by :func:`HandleEvent` every time the
@@ -1196,7 +1194,7 @@ class SpecificData(Debuggable):
self.data = open(self.name).read()
except UnicodeDecodeError:
self.data = open(self.name, mode='rb').read()
- except: # pylint: disable=W0201
+ except IOError:
self.logger.error("Failed to read file %s" % self.name)
diff --git a/src/lib/Bcfg2/Server/Plugin/interfaces.py b/src/lib/Bcfg2/Server/Plugin/interfaces.py
index c45d6fa84..da39ac77a 100644
--- a/src/lib/Bcfg2/Server/Plugin/interfaces.py
+++ b/src/lib/Bcfg2/Server/Plugin/interfaces.py
@@ -445,8 +445,14 @@ class ThreadedStatistics(Statistics, Threaded, threading.Thread):
except Empty:
continue
except:
- err = sys.exc_info()[1]
- self.logger.error("ThreadedStatistics: %s" % err)
+ # we want to catch all exceptions here so that a stray
+ # error doesn't kill the entire statistics thread. For
+ # instance, if a bad value gets pushed onto the queue
+ # and the assignment above raises TypeError, we want
+ # to report the error, ignore the bad value, and
+ # continue processing statistics.
+ self.logger.error("Unknown error processing statistics: %s" %
+ sys.exc_info()[1])
continue
self.handle_statistic(client, xdata)
if self.work_queue is not None and not self.work_queue.empty():