Author: toad
Date: 2008-11-13 14:17:32 +0000 (Thu, 13 Nov 2008)
New Revision: 23519
Modified:
trunk/freenet/src/freenet/node/FNPPacketMangler.java
trunk/freenet/src/freenet/node/KeyTracker.java
Log:
Solve the logging part of the problem:
Log only at minor when a message is not acked, but after 10 minutes,
forceDisconnect().
Modified: trunk/freenet/src/freenet/node/FNPPacketMangler.java
===================================================================
--- trunk/freenet/src/freenet/node/FNPPacketMangler.java 2008-11-12
17:29:40 UTC (rev 23518)
+++ trunk/freenet/src/freenet/node/FNPPacketMangler.java 2008-11-13
14:17:32 UTC (rev 23519)
@@ -2341,6 +2341,7 @@
int otherSideSeqNumber;
+ try {
synchronized(tracker) {
acks = tracker.grabAcks();
forgotPackets = tracker.grabForgotten();
@@ -2350,6 +2351,11 @@
otherSideSeqNumber =
tracker.highestReceivedIncomingSeqNumber();
if(logMINOR) Logger.minor(this, "Sending packet to
"+tracker.pn.getPeer()+", other side max seqno: "+otherSideSeqNumber);
}
+ } catch (StillNotAckedException e) {
+ Logger.error(this, "Forcing disconnect on
"+tracker.pn+" for "+tracker+" because packets not acked after 10 minutes!");
+ tracker.pn.forceDisconnect(true);
+ throw new NotConnectedException();
+ }
int packetLength = 4 + // seq number
RANDOM_BYTES_LENGTH + // random junk
Modified: trunk/freenet/src/freenet/node/KeyTracker.java
===================================================================
--- trunk/freenet/src/freenet/node/KeyTracker.java 2008-11-12 17:29:40 UTC
(rev 23518)
+++ trunk/freenet/src/freenet/node/KeyTracker.java 2008-11-13 14:17:32 UTC
(rev 23519)
@@ -831,7 +831,7 @@
return trimmedPacketNumbers;
}
- public int[] grabAckRequests() throws NotConnectedException {
+ public int[] grabAckRequests() throws NotConnectedException,
StillNotAckedException {
UpdatableSortedLinkedListItem[] items;
int[] packetNumbers;
int realLength;
@@ -854,8 +854,13 @@
ackRequestQueue.remove(qr);
continue;
}
- if(now - qr.createdTime > 2 *
60 * 1000)
- Logger.error(this,
"Packet " + qr.packetNumber + " sent over " + (now - qr.createdTime) + "ms ago
and still not acked on " + this + " for " + pn);
+ if(now - qr.createdTime > 2 *
60 * 1000 && logMINOR) {
+ Logger.minor(this,
"Packet " + qr.packetNumber + " sent over " + (now - qr.createdTime) + "ms ago
and still not acked on " + this + " for " + pn);
+ if(now - qr.createdTime
> 10 * 60 * 1000) {
+
Logger.error(this, "Packet " + qr.packetNumber + " sent over " + (now -
qr.createdTime) + "ms ago and still not acked on " + this + " for " + pn);
+ throw new
StillNotAckedException();
+ }
+ }
packetNumbers[realLength++] =
packetNumber;
if(logMINOR)
Logger.minor(this,
"Grabbing ack request " + packetNumber + " (" + realLength + ") from " + this);
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs