Author: toad
Date: 2006-01-27 19:24:20 +0000 (Fri, 27 Jan 2006)
New Revision: 7952

Modified:
   trunk/freenet/src/freenet/io/comm/UdpSocketManager.java
   trunk/freenet/src/freenet/io/xfer/BlockTransmitter.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
   trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java
Log:
403: (mandatory)
More debugging.
Includes a major bug fix ("why did this work AT ALL?") in 
BerkeleyDBFreenetStore.

Modified: trunk/freenet/src/freenet/io/comm/UdpSocketManager.java
===================================================================
--- trunk/freenet/src/freenet/io/comm/UdpSocketManager.java     2006-01-27 
16:34:08 UTC (rev 7951)
+++ trunk/freenet/src/freenet/io/comm/UdpSocketManager.java     2006-01-27 
19:24:20 UTC (rev 7952)
@@ -133,6 +133,7 @@
                        int length = packet.getLength();
                        if (lowLevelFilter != null) {
                                try {
+                                       Logger.minor(this, "Processing packet 
of length "+length+" from "+peer);
                                        lowLevelFilter.process(data, offset, 
length, peer);
                                        Logger.minor(this,
                                                        "Successfully handled 
packet length " + length);
@@ -189,6 +190,7 @@
                } catch (IOException e2) {
                        throw new RuntimeException(e2);
                }
+               Logger.minor(this, "Received packet");
                return packet;
        }


Modified: trunk/freenet/src/freenet/io/xfer/BlockTransmitter.java
===================================================================
--- trunk/freenet/src/freenet/io/xfer/BlockTransmitter.java     2006-01-27 
16:34:08 UTC (rev 7951)
+++ trunk/freenet/src/freenet/io/xfer/BlockTransmitter.java     2006-01-27 
19:24:20 UTC (rev 7952)
@@ -294,10 +294,12 @@
                                MessageFilter mfAllReceived = 
MessageFilter.create().setType(DMT.allReceived).setField(DMT.UID, 
_uid).setTimeout(SEND_TIMEOUT).setSource(_destination);
                                MessageFilter mfSendAborted = 
MessageFilter.create().setType(DMT.sendAborted).setField(DMT.UID, 
_uid).setTimeout(SEND_TIMEOUT).setSource(_destination);
                 msg = 
_usm.waitFor(mfMissingPacketNotification.or(mfAllReceived.or(mfSendAborted)));
+                Logger.minor(this, "Got "+msg);
             } catch (DisconnectedException e) {
                // Ignore, see below
                msg = null;
             }
+            Logger.minor(this, "Got "+msg);
             if(!_destination.isConnected()) {
                 Logger.normal(this, "Terminating send "+_uid+" to 
"+_destination+" from "+_usm.getPortNumber()+" because node disconnected while 
waiting");
                 synchronized(_senderThread) {

Modified: trunk/freenet/src/freenet/node/KeyTracker.java
===================================================================
--- trunk/freenet/src/freenet/node/KeyTracker.java      2006-01-27 16:34:08 UTC 
(rev 7951)
+++ trunk/freenet/src/freenet/node/KeyTracker.java      2006-01-27 19:24:20 UTC 
(rev 7952)
@@ -717,6 +717,7 @@
         UpdatableSortedLinkedListItem[] items;
         int[] packetNumbers;
         int realLength;
+        Logger.minor(this, "Grabbing ack requests");
         try {
         synchronized(ackRequestQueue) {
             long now = System.currentTimeMillis();
@@ -746,6 +747,7 @@
         }
         int[] trimmedPacketNumbers = new int[realLength];
         System.arraycopy(packetNumbers, 0, trimmedPacketNumbers, 0, 
realLength);
+        Logger.minor(this, "Returning "+trimmedPacketNumbers.length+" 
ackRequests");
         return trimmedPacketNumbers;
     }


Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java    2006-01-27 16:34:08 UTC (rev 
7951)
+++ trunk/freenet/src/freenet/node/Node.java    2006-01-27 19:24:20 UTC (rev 
7952)
@@ -1367,7 +1367,7 @@
                        Runtime r = Runtime.getRuntime();
                        while(true) {
                                try {
-                                       Thread.sleep(1000);
+                                       Thread.sleep(250);
                                } catch (InterruptedException e) {
                                        // Ignore
                                }

Modified: trunk/freenet/src/freenet/node/PacketSender.java
===================================================================
--- trunk/freenet/src/freenet/node/PacketSender.java    2006-01-27 16:34:08 UTC 
(rev 7951)
+++ trunk/freenet/src/freenet/node/PacketSender.java    2006-01-27 19:24:20 UTC 
(rev 7952)
@@ -38,6 +38,15 @@
             lastReceivedPacketFromAnyNode = lastReportedNoPackets;
             try {
                 realRun();
+            } catch (OutOfMemoryError e) {
+               System.gc();
+               System.runFinalization();
+               System.gc();
+               System.runFinalization();
+               System.err.println(e.getClass());
+               System.err.println(e.getMessage());
+               e.printStackTrace();
+               Logger.error(this, "Caught "+e, e);
             } 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-01-27 16:34:08 UTC (rev 
7951)
+++ trunk/freenet/src/freenet/node/Version.java 2006-01-27 19:24:20 UTC (rev 
7952)
@@ -20,10 +20,10 @@
        public static final String protocolVersion = "1.0";

        /** The build number of the current revision */
-       public static final int buildNumber = 402;
+       public static final int buildNumber = 403;

        /** Oldest build of Fred we will talk to */
-       public static final int lastGoodBuild = 400;
+       public static final int lastGoodBuild = 403;

        /** The highest reported build of fred */
        public static int highestSeenBuild = buildNumber;

Modified: trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java
===================================================================
--- trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java 2006-01-27 
16:34:08 UTC (rev 7951)
+++ trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java 2006-01-27 
19:24:20 UTC (rev 7952)
@@ -171,8 +171,8 @@
                        byte[] data = new byte[dataBlockSize];
                        synchronized(chkStore) {
                                
chkStore.seek(storeBlock.offset*(long)(dataBlockSize+headerBlockSize));
-                               chkStore.read(header);
-                               chkStore.read(data);
+                               chkStore.readFully(header);
+                               chkStore.readFully(data);
                        }


@@ -254,8 +254,8 @@
                        byte[] data = new byte[dataBlockSize];
                        synchronized(chkStore) {
                                
chkStore.seek(storeBlock.offset*(long)(dataBlockSize+headerBlockSize));
-                               chkStore.read(header);
-                               chkStore.read(data);
+                               chkStore.readFully(header);
+                               chkStore.readFully(data);
                        }


@@ -339,7 +339,7 @@
                        Logger.minor(this, "Reading from store... 
"+storeBlock.offset);
                        synchronized(chkStore) {
                                
chkStore.seek(storeBlock.offset*(long)(dataBlockSize+headerBlockSize));
-                               chkStore.read(data);
+                               chkStore.readFully(data);
                        }
                        Logger.minor(this, "Read");

@@ -525,7 +525,7 @@
                Logger.minor(this, "Put key: "+HexUtil.bytesToHex(hash));
                Logger.minor(this, "Data: "+data.length+" bytes, hash 
"+Fields.hashCode(data));

-        }catch(Exception ex) {  // FIXME: ugly  
+        }catch(Throwable ex) {  // FIXME: ugly  
                if(t!=null){
                        try{t.abort();}catch(DatabaseException ex2){};
                }


Reply via email to