Author: toad
Date: 2006-02-02 18:22:21 +0000 (Thu, 02 Feb 2006)
New Revision: 7992
Modified:
trunk/freenet/src/freenet/client/async/ClientRequestScheduler.java
trunk/freenet/src/freenet/node/FNPPacketMangler.java
trunk/freenet/src/freenet/node/KeyTracker.java
trunk/freenet/src/freenet/node/Node.java
trunk/freenet/src/freenet/node/PacketSender.java
trunk/freenet/src/freenet/node/Version.java
Log:
428:
Mostly minor stuff.
Aggressive GC (force a GC every 5 seconds), to help track down memory leaking
bugs.
Modified: trunk/freenet/src/freenet/client/async/ClientRequestScheduler.java
===================================================================
--- trunk/freenet/src/freenet/client/async/ClientRequestScheduler.java
2006-02-02 17:11:45 UTC (rev 7991)
+++ trunk/freenet/src/freenet/client/async/ClientRequestScheduler.java
2006-02-02 18:22:21 UTC (rev 7992)
@@ -7,7 +7,6 @@
import freenet.node.Node;
import freenet.node.RequestStarter;
import freenet.support.Logger;
-import freenet.support.RandomGrabArrayWithInt;
import freenet.support.SectoredRandomGrabArrayWithInt;
import freenet.support.SortedVectorByNumber;
Modified: trunk/freenet/src/freenet/node/FNPPacketMangler.java
===================================================================
--- trunk/freenet/src/freenet/node/FNPPacketMangler.java 2006-02-02
17:11:45 UTC (rev 7991)
+++ trunk/freenet/src/freenet/node/FNPPacketMangler.java 2006-02-02
18:22:21 UTC (rev 7992)
@@ -1124,8 +1124,8 @@
plaintext[ptr++] = (byte)(seqNumber >> 8);
plaintext[ptr++] = (byte)seqNumber;
+ Logger.minor(this, "Getting random junk");
node.random.nextBytes(randomJunk);
- Logger.minor(this, "Got random junk");
System.arraycopy(randomJunk, 0, plaintext, ptr, RANDOM_BYTES_LENGTH);
ptr += RANDOM_BYTES_LENGTH;
Modified: trunk/freenet/src/freenet/node/KeyTracker.java
===================================================================
--- trunk/freenet/src/freenet/node/KeyTracker.java 2006-02-02 17:11:45 UTC
(rev 7991)
+++ trunk/freenet/src/freenet/node/KeyTracker.java 2006-02-02 18:22:21 UTC
(rev 7992)
@@ -735,16 +735,17 @@
continue;
}
packetNumbers[realLength++] = packetNumber;
- Logger.minor(this, "Grabbing ack request "+packetNumber+"
from "+this);
+ Logger.minor(this, "Grabbing ack request "+packetNumber+"
("+realLength+") from "+this);
qr.sent();
} else {
- Logger.minor(this, "Ignoring ack request "+packetNumber+"
- will become active in "+(qr.activeTime-now)+" ms on "+this+" - "+qr);
+ Logger.minor(this, "Ignoring ack request "+packetNumber+"
("+realLength+") - will become active in "+(qr.activeTime-now)+" ms on "+this+"
- "+qr);
}
}
}
} catch (UpdatableSortedLinkedListKilledException e) {
throw new NotConnectedException();
}
+ Logger.minor(this, "realLength now "+realLength);
int[] trimmedPacketNumbers = new int[realLength];
System.arraycopy(packetNumbers, 0, trimmedPacketNumbers, 0,
realLength);
Logger.minor(this, "Returning "+trimmedPacketNumbers.length+"
ackRequests");
Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java 2006-02-02 17:11:45 UTC (rev
7991)
+++ trunk/freenet/src/freenet/node/Node.java 2006-02-02 18:22:21 UTC (rev
7992)
@@ -1372,12 +1372,30 @@
public void run() {
Runtime r = Runtime.getRuntime();
while(true) {
+ for(int i=0;i<20;i++) {
+ try {
+ Thread.sleep(250);
+ } catch (InterruptedException e) {
+ // Ignore
+ }
+ Logger.minor(this, "Memory in use:
"+(r.totalMemory()-r.freeMemory()));
+ }
try {
Thread.sleep(250);
} catch (InterruptedException e) {
// Ignore
}
- Logger.minor(this, "Memory in use:
"+(r.totalMemory()-r.freeMemory()));
+ // FIXME
+ // Do not remove until all known memory issues
fixed,
+ // Especially #66
+ // This probably reduces performance, but it
makes
+ // memory usage *more predictable*. This will
make
+ // tracking down the sort of nasty
unpredictable OOMs
+ // we are getting much easier.
+ Logger.minor(this, "Memory in use before GC:
"+(r.totalMemory()-r.freeMemory()));
+ System.gc();
+ System.runFinalization();
+ Logger.minor(this, "Memory in use after GC:
"+(r.totalMemory()-r.freeMemory()));
}
}
}
Modified: trunk/freenet/src/freenet/node/PacketSender.java
===================================================================
--- trunk/freenet/src/freenet/node/PacketSender.java 2006-02-02 17:11:45 UTC
(rev 7991)
+++ trunk/freenet/src/freenet/node/PacketSender.java 2006-02-02 18:22:21 UTC
(rev 7992)
@@ -39,6 +39,8 @@
try {
realRun();
} catch (OutOfMemoryError e) {
+ Runtime r = Runtime.getRuntime();
+ long usedAtStart = r.totalMemory() - r.freeMemory();
System.gc();
System.runFinalization();
System.gc();
@@ -46,7 +48,9 @@
System.err.println(e.getClass());
System.err.println(e.getMessage());
e.printStackTrace();
+ long usedNow = r.totalMemory() - r.freeMemory();
Logger.error(this, "Caught "+e, e);
+ Logger.error(this, "Used: "+usedAtStart+" now "+usedNow);
} catch (Throwable t) {
Logger.error(this, "Caught in PacketSender: "+t, t);
}
Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2006-02-02 17:11:45 UTC (rev
7991)
+++ trunk/freenet/src/freenet/node/Version.java 2006-02-02 18:22:21 UTC (rev
7992)
@@ -20,7 +20,7 @@
public static final String protocolVersion = "1.0";
/** The build number of the current revision */
- private static final int buildNumber = 427;
+ private static final int buildNumber = 428;
/** Oldest build of Fred we will talk to */
private static final int lastGoodBuild = 403;