Author: toad
Date: 2009-01-15 22:41:31 +0000 (Thu, 15 Jan 2009)
New Revision: 25069
Modified:
trunk/freenet/src/freenet/node/NodeStats.java
trunk/freenet/src/freenet/node/RequestSender.java
Log:
Stats, fix NPE
Modified: trunk/freenet/src/freenet/node/NodeStats.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeStats.java 2009-01-15 22:15:40 UTC
(rev 25068)
+++ trunk/freenet/src/freenet/node/NodeStats.java 2009-01-15 22:41:31 UTC
(rev 25069)
@@ -1315,6 +1315,22 @@
row.addChild("td",
thousendPoint.format(averages[i].countReports()));
}
}
+
+ row = list.addChild("tr");
+ row.addChild("td", "Turtle requests");
+ long total;
+ long succeeded;
+ synchronized(this) {
+ total = turtleSuccesses + turtleTransfersCompleted;
+ succeeded = turtleSuccesses;
+ }
+ if(total == 0) {
+ row.addChild("td", "-");
+ row.addChild("td", "0");
+ } else {
+ row.addChild("td", fix3p3pct.format((double)succeeded /
total));
+ row.addChild("td", thousendPoint.format(total));
+ }
}
/* Total bytes sent by requests, excluding payload */
@@ -1940,4 +1956,16 @@
row.addChild("td", "Average");
row.addChild("td",
TimeUtil.formatTime((long)localCHKFetchTimeAverage.currentValue(), 2, true));
}
+
+ private long turtleTransfersCompleted;
+ private long turtleSuccesses;
+
+ synchronized void turtleSucceeded() {
+ turtleSuccesses++;
+ turtleTransfersCompleted++;
+ }
+
+ synchronized void turtleFailed() {
+ turtleTransfersCompleted++;
+ }
}
Modified: trunk/freenet/src/freenet/node/RequestSender.java
===================================================================
--- trunk/freenet/src/freenet/node/RequestSender.java 2009-01-15 22:15:40 UTC
(rev 25068)
+++ trunk/freenet/src/freenet/node/RequestSender.java 2009-01-15 22:41:31 UTC
(rev 25069)
@@ -817,6 +817,7 @@
System.err.println("TURTLE
SUCCEEDED: "+key+" for "+this+" in "+TimeUtil.formatTime(transferTime, 2,
true));
if(!turtleBackedOff)
next.transferFailed("Turtled transfer");
+
node.nodeStats.turtleSucceeded();
}
next.successNotOverload();
if(turtle) {
@@ -836,13 +837,16 @@
finish(SUCCESS, next, false);
return;
} catch (RetrievalException e) {
+ boolean turtle;
synchronized(this) {
- if(turtleMode) {
- System.err.println("TURTLE
FAILED: "+key+" for "+this+" : "+e);
-
next.unregisterTurtleTransfer(this);
-
node.unregisterTurtleTransfer(this);
- }
+ turtle = turtleMode;
}
+ if(turtle) {
+ System.err.println("TURTLE
FAILED: "+key+" for "+this+" : "+e);
+ next.unregisterTurtleTransfer(this);
+ node.unregisterTurtleTransfer(this);
+ node.nodeStats.turtleFailed();
+ }
if
(e.getReason()==RetrievalException.SENDER_DISCONNECTED)
Logger.normal(this, "Transfer failed (disconnect): "+e, e);
else
@@ -1484,11 +1488,14 @@
node.getTicker().queueTimedJob(new Runnable() {
public void run() {
+ PeerNode from;
synchronized(RequestSender.this) {
if(sentBackoffTurtle) return;
sentBackoffTurtle = true;
+ from = transferringFrom;
+ if(from == null) return;
}
- transferringFrom.transferFailed("Turtled
transfer");
+ from.transferFailed("Turtled transfer");
}
}, 30*1000);
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs