From 8b4a0a157ef21cbcedd7ad883b1ad062d484a154 Mon Sep 17 00:00:00 2001 From: Daira Hopwood Date: Thu, 5 Sep 2013 19:15:22 +0100 Subject: [PATCH] Mon Jul 2 19:15:55 BST 2012 david-sarah@jacaranda.org * If a stats.pickle file cannot be read, print a better error message. --- src/allmydata/stats.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/allmydata/stats.py b/src/allmydata/stats.py index 5c1cdb3d..ea0a7f85 100644 --- a/src/allmydata/stats.py +++ b/src/allmydata/stats.py @@ -12,6 +12,7 @@ from zope.interface import implements from foolscap.api import eventually, DeadReferenceError, Referenceable, Tub from allmydata.util import log +from allmydata.util.encodingutil import quote_output from allmydata.interfaces import RIStatsProvider, RIStatsGatherer, IStatsProducer class LoadMonitor(service.MultiService): @@ -252,7 +253,12 @@ class PickleStatsGatherer(StdOutStatsGatherer): if os.path.exists(self.picklefile): f = open(self.picklefile, 'rb') - self.gathered_stats = pickle.load(f) + try: + self.gathered_stats = pickle.load(f) + except Exception: + print ("Error while attempting to load pickle file %s.\nYou may need to delete this file.\n" % + quote_output(os.path.abspath(self.picklefile))) + raise f.close() else: self.gathered_stats = {} -- 2.45.2