From 50b8fcfff2186ee1b49cd9c3c96685dcced415fd Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Mon, 25 May 2015 21:54:27 +0000 Subject: [PATCH] Do not crash write queue when a RRD file could not be written --- src/collecty/daemon.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/collecty/daemon.py b/src/collecty/daemon.py index 0f1c34d..236e1c9 100644 --- a/src/collecty/daemon.py +++ b/src/collecty/daemon.py @@ -240,7 +240,14 @@ class WriteQueue(threading.Thread): for result in results: self.log.debug(" %s: %s" % (result.time, result.data)) - rrdtool.update(filename, *["%s" % r for r in results]) + try: + rrdtool.update(filename, *["%s" % r for r in results]) + + # Catch operational errors like unreadable/unwritable RRD databases + # or those where the format has changed. The collected data will be lost. + except rrdtool.OperationalError as e: + self.log.critical(_("Could not update RRD database %s: %s") \ + % (filename, e)) class QueueObject(object): -- 2.39.2