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;


Reply via email to