Author: toad
Date: 2008-03-04 17:16:14 +0000 (Tue, 04 Mar 2008)
New Revision: 18353
Modified:
trunk/freenet/src/freenet/node/FNPPacketMangler.java
Log:
Fix another cause of forceGrab(negative), and maybe of worse things: we weren't
resetting alreadyReportedBytes after sending a packet.
Logging: Detect when forceGrab(negative) is going to happen a bit earlier and
log more info.
Modified: trunk/freenet/src/freenet/node/FNPPacketMangler.java
===================================================================
--- trunk/freenet/src/freenet/node/FNPPacketMangler.java 2008-03-04
17:09:13 UTC (rev 18352)
+++ trunk/freenet/src/freenet/node/FNPPacketMangler.java 2008-03-04
17:16:14 UTC (rev 18353)
@@ -1659,7 +1659,12 @@
sock.sendPacket(data, replyTo, pn == null ?
crypto.config.alwaysAllowLocalAddresses() : pn.allowLocalAddresses());
if(pn != null)
pn.reportOutgoingPacket(data, 0, data.length,
System.currentTimeMillis());
- node.outputThrottle.forceGrab(data.length -
alreadyReportedBytes);
+ int reportableBytes = data.length - alreadyReportedBytes;
+ if(reportableBytes < 0) {
+ Logger.error(this, "alreadyReportedBytes
("+alreadyReportedBytes+")> data.length ("+data.length+")");
+ reportableBytes = 0;
+ }
+ node.outputThrottle.forceGrab(reportableBytes);
}
/**
@@ -2124,6 +2129,7 @@
try {
// FIXME regenerate
callbacks and priority!
innerProcessOutgoing(messageData, lastIndex, i-lastIndex, length, pn,
neverWaitForPacketNumber, callbacks, alreadyReportedBytes, priority);
+ alreadyReportedBytes =
0;
for(int
j=lastIndex;j<i;j++) {
MessageItem mi
= newMsgs[j];
mi_name =
(mi.msg == null ? "(not a Message)" : mi.msg.getSpec().getName());