Author: zothar
Date: 2006-05-19 19:50:05 +0000 (Fri, 19 May 2006)
New Revision: 8790
Modified:
trunk/freenet/src/freenet/clients/http/DarknetConnectionsToadlet.java
trunk/freenet/src/freenet/node/CHKInsertSender.java
trunk/freenet/src/freenet/node/PeerNode.java
trunk/freenet/src/freenet/node/RequestSender.java
trunk/freenet/src/freenet/node/SSKInsertSender.java
trunk/freenet/src/freenet/node/Version.java
Log:
730: Display reason for last backoff/localRejectedOverload() on /darknet/ page
for each peer.
Modified: trunk/freenet/src/freenet/clients/http/DarknetConnectionsToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/DarknetConnectionsToadlet.java
2006-05-19 16:30:10 UTC (rev 8789)
+++ trunk/freenet/src/freenet/clients/http/DarknetConnectionsToadlet.java
2006-05-19 19:50:05 UTC (rev 8790)
@@ -144,13 +144,18 @@
status = DISCONNECTED;
}
+ String lastBackoffReasonOutputString = "/";
+ String backoffReason =
pn.getLastBackoffReason();
+ if( backoffReason != null ) {
+ lastBackoffReasonOutputString =
"/"+backoffReason;
+ }
row[0] = pn;
row[1] = status;
row[2] = HTMLEncoder.encode(pn.getName());
row[3] = pn.getDetectedPeer() != null ?
HTMLEncoder.encode(pn.getDetectedPeer().toString()) : "(address unknown)";
row[4] = HTMLEncoder.encode(pn.getVersion());
row[5] = new
Double(pn.getLocation().getValue());
- row[6] = backoff/1000 + "/" +
pn.getRoutingBackoffLength()/1000;
+ row[6] = backoff/1000 + "/" +
pn.getRoutingBackoffLength()/1000+lastBackoffReasonOutputString;
if (idle == -1) row[7] = " ";
else row[7] = new Long((now - idle) / 60000);
row[8] = "<input type=\"checkbox\"
name=\"delete_node_"+pn.hashCode()+"\" />";
Modified: trunk/freenet/src/freenet/node/CHKInsertSender.java
===================================================================
--- trunk/freenet/src/freenet/node/CHKInsertSender.java 2006-05-19 16:30:10 UTC
(rev 8789)
+++ trunk/freenet/src/freenet/node/CHKInsertSender.java 2006-05-19 19:50:05 UTC
(rev 8790)
@@ -289,7 +289,7 @@
// Terminal overload
// Try to propagate back to source
Logger.minor(this, "Timeout");
- next.localRejectedOverload();
+ next.localRejectedOverload("Timeout3");
finish(TIMED_OUT, next);
return;
}
@@ -297,7 +297,7 @@
if (msg.getSpec() == DMT.FNPRejectedOverload) {
// Non-fatal - probably still have time
left
if (msg.getBoolean(DMT.IS_LOCAL)) {
- next.localRejectedOverload();
+
next.localRejectedOverload("ForwardRejectedOverload5");
Logger.minor(this,
"Local RejectedOverload, moving on to next peer");
// Give up on this one, try
another
@@ -393,7 +393,7 @@
+ ") after Accepted in
insert");
// Terminal overload
// Try to propagate back to source
- next.localRejectedOverload();
+
next.localRejectedOverload("AfterInsertAcceptedTimeout2");
finish(TIMED_OUT, next);
return;
}
@@ -401,7 +401,7 @@
if (msg.getSpec() == DMT.FNPRejectedOverload) {
// Probably non-fatal, if so, we have
time left, can try next one
if (msg.getBoolean(DMT.IS_LOCAL)) {
- next.localRejectedOverload();
+
next.localRejectedOverload("ForwardRejectedOverload6");
Logger.minor(this,
"Local
RejectedOverload, moving on to next peer");
// Give up on this one, try
another
Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java 2006-05-19 16:30:10 UTC
(rev 8789)
+++ trunk/freenet/src/freenet/node/PeerNode.java 2006-05-19 19:50:05 UTC
(rev 8790)
@@ -1310,12 +1310,22 @@
final int MAX_ROUTING_BACKOFF_LENGTH = 24*60*60*1000;
/** Current nominal routing backoff length */
int routingBackoffLength = INITIAL_ROUTING_BACKOFF_LENGTH;
+ /** Last backoff reason */
+ String lastBackoffReason = null;
/**
* Got a local RejectedOverload.
* Back off this node for a while.
*/
public void localRejectedOverload() {
+ localRejectedOverload("");
+ }
+
+ /**
+ * Got a local RejectedOverload.
+ * Back off this node for a while.
+ */
+ public void localRejectedOverload(String reason) {
Logger.minor(this, "Local rejected overload on "+this);
synchronized(routingBackoffSync) {
long now = System.currentTimeMillis();
@@ -1326,7 +1336,12 @@
routingBackoffLength =
MAX_ROUTING_BACKOFF_LENGTH;
int x =
node.random.nextInt(routingBackoffLength);
routingBackedOffUntil = now + x;
- Logger.minor(this, "Backing off:
routingBackoffLength="+routingBackoffLength+", until "+x+"ms on "+getPeer());
+ setLastBackoffReason( reason );
+ String reasonWrapper = "";
+ if( 0 < reason.length()) {
+ reasonWrapper = " because of
'"+reason+"'";
+ }
+ Logger.normal(this, "Backing
off"+reasonWrapper+": routingBackoffLength="+routingBackoffLength+", until
"+x+"ms on "+getPeer());
} else {
Logger.minor(this, "Ignoring
localRejectedOverload: "+(routingBackedOffUntil-now)+"ms remaining on routing
backoff on "+getPeer());
}
@@ -1433,6 +1448,14 @@
return routingBackedOffUntil;
}
+ public String getLastBackoffReason() {
+ return lastBackoffReason;
+ }
+
+ public void setLastBackoffReason(String s) {
+ this.lastBackoffReason = s;
+ }
+
public boolean hasCompletedHandshake() {
return completedHandshake;
}
Modified: trunk/freenet/src/freenet/node/RequestSender.java
===================================================================
--- trunk/freenet/src/freenet/node/RequestSender.java 2006-05-19 16:30:10 UTC
(rev 8789)
+++ trunk/freenet/src/freenet/node/RequestSender.java 2006-05-19 19:50:05 UTC
(rev 8790)
@@ -175,7 +175,7 @@
if(msg == null) {
Logger.minor(this, "Timeout waiting for Accepted");
// Timeout waiting for Accepted
- next.localRejectedOverload();
+ next.localRejectedOverload("AcceptedTimeout");
forwardRejectedOverload();
// Try next node
break;
@@ -194,7 +194,7 @@
forwardRejectedOverload();
if (msg.getBoolean(DMT.IS_LOCAL)) {
Logger.minor(this, "Is local");
- next.localRejectedOverload();
+
next.localRejectedOverload("ForwardRejectedOverload");
Logger.minor(this, "Local
RejectedOverload, moving on to next peer");
// Give up on this one, try
another
break;
@@ -244,7 +244,7 @@
if(msg == null) {
// Fatal timeout
- next.localRejectedOverload();
+ next.localRejectedOverload("FatalTimeout");
forwardRejectedOverload();
finish(TIMED_OUT, next);
return;
@@ -268,7 +268,7 @@
// Non-fatal - probably still have time
left
forwardRejectedOverload();
if (msg.getBoolean(DMT.IS_LOCAL)) {
- next.localRejectedOverload();
+
next.localRejectedOverload("ForwardRejectedOverload2");
Logger.minor(this, "Local
RejectedOverload, moving on to next peer");
// Give up on this one, try
another
break;
Modified: trunk/freenet/src/freenet/node/SSKInsertSender.java
===================================================================
--- trunk/freenet/src/freenet/node/SSKInsertSender.java 2006-05-19 16:30:10 UTC
(rev 8789)
+++ trunk/freenet/src/freenet/node/SSKInsertSender.java 2006-05-19 19:50:05 UTC
(rev 8790)
@@ -198,7 +198,7 @@
// Terminal overload
// Try to propagate back to source
Logger.minor(this, "Timeout");
- next.localRejectedOverload();
+ next.localRejectedOverload("Timeout");
finish(TIMED_OUT, next);
return;
}
@@ -206,7 +206,7 @@
if (msg.getSpec() == DMT.FNPRejectedOverload) {
// Non-fatal - probably still have time
left
if (msg.getBoolean(DMT.IS_LOCAL)) {
- next.localRejectedOverload();
+
next.localRejectedOverload("ForwardRejectedOverload3");
Logger.minor(this,
"Local RejectedOverload, moving on to next peer");
// Give up on this one, try
another
@@ -265,7 +265,7 @@
// Terminal overload
// Try to propagate back to source
Logger.minor(this, "Timeout");
- next.localRejectedOverload();
+ next.localRejectedOverload("Timeout2");
finish(TIMED_OUT, next);
return;
}
@@ -310,7 +310,7 @@
+ ") after Accepted in
insert");
// Terminal overload
// Try to propagate back to source
- next.localRejectedOverload();
+
next.localRejectedOverload("AfterInsertAcceptedTimeout");
finish(TIMED_OUT, next);
return;
}
@@ -318,7 +318,7 @@
if (msg.getSpec() == DMT.FNPRejectedOverload) {
// Probably non-fatal, if so, we have
time left, can try next one
if (msg.getBoolean(DMT.IS_LOCAL)) {
- next.localRejectedOverload();
+
next.localRejectedOverload("ForwardRejectedOverload4");
Logger.minor(this,
"Local
RejectedOverload, moving on to next peer");
// Give up on this one, try
another
Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2006-05-19 16:30:10 UTC (rev
8789)
+++ trunk/freenet/src/freenet/node/Version.java 2006-05-19 19:50:05 UTC (rev
8790)
@@ -18,7 +18,7 @@
public static final String protocolVersion = "1.0";
/** The build number of the current revision */
- private static final int buildNumber = 729;
+ private static final int buildNumber = 730;
/** Oldest build of Fred we will talk to */
private static final int lastGoodBuild = 698;