Author: toad
Date: 2006-09-06 15:30:16 +0000 (Wed, 06 Sep 2006)
New Revision: 10409
Modified:
trunk/freenet/src/freenet/node/PeerNode.java
trunk/freenet/src/freenet/support/math/TimeDecayingRunningAverage.java
Log:
Maybe fix reported infinities/crazy numbers on bwlimitDelayTime and backed off
%.
Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java 2006-09-06 13:39:06 UTC
(rev 10408)
+++ trunk/freenet/src/freenet/node/PeerNode.java 2006-09-06 15:30:16 UTC
(rev 10409)
@@ -2003,12 +2003,13 @@
localRoutingBackedOffUntil = routingBackedOffUntil;
}
synchronized(this) {
- if(now > lastSampleTime) {
- if (now > localRoutingBackedOffUntil) {
- if (lastSampleTime >
localRoutingBackedOffUntil) {
+ if(now > lastSampleTime) { // don't report twice in the
same millisecond
+ if (now > localRoutingBackedOffUntil) { // not
backed off
+ if (lastSampleTime >
localRoutingBackedOffUntil) { // last sample after last backoff
backedOffPercent.report(0.0);
} else {
-
backedOffPercent.report((double)(localRoutingBackedOffUntil -
lastSampleTime)/(double)(now - lastSampleTime));
+ if(localRoutingBackedOffUntil >
0)
+
backedOffPercent.report((double)(localRoutingBackedOffUntil -
lastSampleTime)/(double)(now - lastSampleTime));
}
} else {
backedOffPercent.report(1.0);
Modified: trunk/freenet/src/freenet/support/math/TimeDecayingRunningAverage.java
===================================================================
--- trunk/freenet/src/freenet/support/math/TimeDecayingRunningAverage.java
2006-09-06 13:39:06 UTC (rev 10408)
+++ trunk/freenet/src/freenet/support/math/TimeDecayingRunningAverage.java
2006-09-06 15:30:16 UTC (rev 10409)
@@ -133,6 +133,10 @@
synchronized(this) {
if(d < minReport) d = minReport;
if(d > maxReport) d = maxReport;
+ if(Double.isInfinite(d) || Double.isNaN(d)) {
+ Logger.error(this, "Reported infinity or NaN to
"+this+" : "+d, new Exception("error"));
+ return;
+ }
totalReports++;
if(!started) {
curValue = d;