diff --git a/apps/routerconsole/java/src/net/i2p/router/web/SummaryListener.java b/apps/routerconsole/java/src/net/i2p/router/web/SummaryListener.java index 4eec3a2558..1ea872a880 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/SummaryListener.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/SummaryListener.java @@ -113,13 +113,14 @@ class SummaryListener implements RateSummaryListener { String baseName = rs.getName() + "." + period; _name = createName(_context, baseName); _eventName = createName(_context, baseName + ".events"); + File rrdFile = null; try { RrdBackendFactory factory = RrdBackendFactory.getFactory(getBackendName()); String rrdDefName; if (_isPersistent) { // generate full path for persistent RRD files File rrdDir = new SecureFile(_context.getRouterDir(), RRD_DIR); - File rrdFile = new File(rrdDir, RRD_PREFIX + _name + RRD_SUFFIX); + rrdFile = new File(rrdDir, RRD_PREFIX + _name + RRD_SUFFIX); rrdDefName = rrdFile.getAbsolutePath(); if (rrdFile.exists()) { _db = new RrdDb(rrdDefName, factory); @@ -164,6 +165,9 @@ class SummaryListener implements RateSummaryListener { _log.error("Error starting RRD for stat " + baseName, oom); } catch (RrdException re) { _log.error("Error starting RRD for stat " + baseName, re); + // corrupt file? + if (_isPersistent && rrdFile != null) + rrdFile.delete(); } catch (IOException ioe) { _log.error("Error starting RRD for stat " + baseName, ioe); } diff --git a/history.txt b/history.txt index c8ec60b317..3fa79cf0d7 100644 --- a/history.txt +++ b/history.txt @@ -1,4 +1,6 @@ 2011-08-16 zzz + * Console: Tweak logs page CSS + * Graphs: Delete corrupt rrd file (ticket #483) * UPnP: Fix bug causing failure when the PC has multiple interfaces 2011-08-06 kytv