Author: toad
Date: 2006-08-24 15:31:18 +0000 (Thu, 24 Aug 2006)
New Revision: 10260

Modified:
   trunk/freenet/src/freenet/node/FNPPacketMangler.java
   trunk/freenet/src/freenet/node/PeerNode.java
Log:
Try to track down the 100% cpu / constant Key changed(2)'s bug.

Modified: trunk/freenet/src/freenet/node/FNPPacketMangler.java
===================================================================
--- trunk/freenet/src/freenet/node/FNPPacketMangler.java        2006-08-24 
14:57:48 UTC (rev 10259)
+++ trunk/freenet/src/freenet/node/FNPPacketMangler.java        2006-08-24 
15:31:18 UTC (rev 10260)
@@ -1091,11 +1091,13 @@
      * @throws PacketSequenceException 
      */
     void processOutgoingPreformatted(byte[] buf, int offset, int length, 
PeerNode peer, boolean neverWaitForPacketNumber, AsyncMessageCallback[] 
callbacks, int alreadyReportedBytes) throws NotConnectedException, 
WouldBlockException, PacketSequenceException {
+       KeyTracker last = null;
         while(true) {
             try {
                if(!peer.isConnected())
                        throw new NotConnectedException();
                 KeyTracker tracker = peer.getCurrentKeyTracker();
+                last = tracker;
                 if(tracker == null) {
                     Logger.normal(this, "Dropping packet: Not connected to 
"+peer.getPeer()+" yet(2)");
                     throw new NotConnectedException();
@@ -1106,6 +1108,11 @@
                 return;
             } catch (KeyChangedException e) {
                Logger.normal(this, "Key changed(2) for "+peer.getPeer());
+               if(last == peer.getCurrentKeyTracker()) {
+                       if(peer.isConnected()) {
+                               Logger.error(this, "Peer is connected, yet 
current tracker is deprecated !!: "+e, e);
+                       }
+               }
                 // Go around again
             }
         }

Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java        2006-08-24 14:57:48 UTC 
(rev 10259)
+++ trunk/freenet/src/freenet/node/PeerNode.java        2006-08-24 15:31:18 UTC 
(rev 10260)
@@ -1351,7 +1351,8 @@
                        synchronized(this) {
                                oldPrev = previousTracker;
                                oldCur = currentTracker;
-                               previousTracker = currentTracker = null;
+                               previousTracker = null;
+                               currentTracker = null;
                        }
                        if(oldPrev != null) {
                                oldPrev.completelyDeprecated(newTracker);


Reply via email to