Author: toad
Date: 2005-12-03 18:54:18 +0000 (Sat, 03 Dec 2005)
New Revision: 7656

Modified:
   trunk/freenet/src/freenet/client/FileInserter.java
   trunk/freenet/src/freenet/node/InsertHandler.java
   trunk/freenet/src/freenet/node/InsertSender.java
   trunk/freenet/src/freenet/node/Node.java
   trunk/freenet/src/freenet/node/PeerManager.java
   trunk/freenet/src/freenet/node/PeerNode.java
   trunk/freenet/src/freenet/node/Version.java
Log:
266:
Minor-ish changes.

Modified: trunk/freenet/src/freenet/client/FileInserter.java
===================================================================
--- trunk/freenet/src/freenet/client/FileInserter.java  2005-12-03 18:38:37 UTC 
(rev 7655)
+++ trunk/freenet/src/freenet/client/FileInserter.java  2005-12-03 18:54:18 UTC 
(rev 7656)
@@ -2,6 +2,7 @@

 import java.io.IOException;

+import freenet.client.events.BlockInsertErrorEvent;
 import freenet.client.events.SimpleBlockPutEvent;
 import freenet.keys.CHKEncodeException;
 import freenet.keys.ClientCHKBlock;
@@ -121,8 +122,9 @@
                int rnfs = 0;
                for(int i=0;i<=ctx.maxInsertRetries;i++) {
                        try {
-                               ctx.eventProducer.produceEvent(new 
SimpleBlockPutEvent(chk.getClientKey()));
                                if(!getCHKOnly)
+                                       ctx.eventProducer.produceEvent(new 
SimpleBlockPutEvent(chk.getClientKey()));
+                               if(!getCHKOnly)
                                        ctx.client.putCHK(chk, 
ctx.starterClient, ctx.cacheLocalRequests);
                                break;
                        } catch (LowLevelPutException e) {

Modified: trunk/freenet/src/freenet/node/InsertHandler.java
===================================================================
--- trunk/freenet/src/freenet/node/InsertHandler.java   2005-12-03 18:38:37 UTC 
(rev 7655)
+++ trunk/freenet/src/freenet/node/InsertHandler.java   2005-12-03 18:54:18 UTC 
(rev 7656)
@@ -39,6 +39,7 @@
     private byte[] headers;
     private BlockReceiver br;
     private Thread runThread;
+    private boolean sentSuccess;

     PartiallyReceivedBlock prb;

@@ -168,6 +169,15 @@
                 continue;
             }

+//            // FIXME obviously! For debugging load issues.
+//             if(node.myName.equalsIgnoreCase("Toad #1") &&
+//                             node.random.nextBoolean()) {
+//                     // Maliciously timeout
+//                     Logger.error(this, "Maliciously timing out: was 
"+sender.getStatusString());
+//                     sentSuccess = true;
+//                     return;
+//             }
+               
             // Local RejectedOverload's (fatal).
             // Internal error counts as overload. It'd only create a timeout 
otherwise, which is the same thing anyway.
             // We *really* need a good way to deal with nodes that constantly 
R_O!
@@ -193,6 +203,7 @@

             if(status == InsertSender.SUCCESS) {
                msg = DMT.createFNPInsertReply(uid);
+               sentSuccess = true;
                source.send(msg);
                 canCommit = true;
                 finish();
@@ -242,15 +253,16 @@
                 // :(
                 Logger.minor(this, "Lost connection in "+this+" when sending 
FNPDataInsertRejected");
             }
-        } else if(sender.getStatus() == InsertSender.SUCCESS) {
+        } else if(sender != null && sender.getStatus() == InsertSender.SUCCESS 
&& !sentSuccess) {
+               sentSuccess = true;
             // Succeeded! Yay!
-            Message msg = DMT.createFNPInsertReply(uid);
-            try {
-                source.send(msg);
-            } catch (NotConnectedException e) {
-                // Ugh
-                Logger.normal(this, "Finished InsertHandler but can't tell 
original node!: "+e);
-            }
+               Message msg = DMT.createFNPInsertReply(uid);
+               try {
+                       source.send(msg);
+               } catch (NotConnectedException e) {
+                       // Ugh
+                       Logger.normal(this, "Finished InsertHandler but can't 
tell original node!: "+e);
+               }
         }
     }


Modified: trunk/freenet/src/freenet/node/InsertSender.java
===================================================================
--- trunk/freenet/src/freenet/node/InsertSender.java    2005-12-03 18:38:37 UTC 
(rev 7655)
+++ trunk/freenet/src/freenet/node/InsertSender.java    2005-12-03 18:54:18 UTC 
(rev 7656)
@@ -186,8 +186,7 @@
                                        // Non-fatal - probably still have time 
left
                                        if (msg.getBoolean(DMT.IS_LOCAL)) {
                                                next.localRejectedOverload();
-                                               Logger
-                                                               .minor(this,
+                                               Logger.minor(this,
                                                                                
"Local RejectedOverload, moving on to next peer");
                                                // Give up on this one, try 
another
                                                break;

Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java    2005-12-03 18:38:37 UTC (rev 
7655)
+++ trunk/freenet/src/freenet/node/Node.java    2005-12-03 18:54:18 UTC (rev 
7656)
@@ -22,6 +22,7 @@
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Hashtable;
+import java.util.Iterator;

 import freenet.client.ArchiveManager;
 import freenet.client.HighLevelSimpleClient;
@@ -852,7 +853,28 @@
      * @return Some status information.
      */
     public String getStatus() {
-        return peers.getStatus()+"\nInserts: 
"+insertSenders.size()+"\nRequests: "+requestSenders.size()+"\nTransferring 
requests: "+this.transferringRequestSenders.size();
+       StringBuffer sb = new StringBuffer();
+       sb.append(peers.getStatus());
+       sb.append("\nInserts: ");
+       int x = insertSenders.size();
+       sb.append(x);
+       if(x < 5 && x > 0) {
+               sb.append('\n');
+               // Dump
+               Iterator i = insertSenders.values().iterator();
+               while(i.hasNext()) {
+                       InsertSender s = (InsertSender) i.next();
+                       sb.append(s.uid);
+                       sb.append(": ");
+                       sb.append(s.getStatusString());
+                       sb.append('\n');
+               }
+       }
+       sb.append("\nRequests: ");
+       sb.append(requestSenders.size());
+       sb.append("\nTransferring requests: ");
+       sb.append(this.transferringRequestSenders.size());
+       return sb.toString();
     }

     /**

Modified: trunk/freenet/src/freenet/node/PeerManager.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerManager.java     2005-12-03 18:38:37 UTC 
(rev 7655)
+++ trunk/freenet/src/freenet/node/PeerManager.java     2005-12-03 18:54:18 UTC 
(rev 7656)
@@ -308,9 +308,10 @@
             if(routedTo.contains(p)) continue;
             if(p == pn) continue;
             if(!p.isConnected()) continue;
-            if(p.isBackedOff()) continue;
+            // Don't backoff our only peer
             count++;
             any = p;
+            if(p.isBackedOff()) continue;
             double diff = distance(p, loc);
             Logger.minor(this, "p.loc="+p.getLocation().getValue()+", 
loc="+loc+", d="+distance(p.getLocation().getValue(), loc)+" usedD="+diff);
             if((!ignoreSelf) && diff > maxDiff) continue;

Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java        2005-12-03 18:38:37 UTC 
(rev 7655)
+++ trunk/freenet/src/freenet/node/PeerNode.java        2005-12-03 18:54:18 UTC 
(rev 7656)
@@ -952,6 +952,7 @@
         * Back off this node for a while.
         */
        public void localRejectedOverload() {
+               Logger.minor(this, "Local rejected overload on "+this);
                synchronized(backoffSync) {
                        long now = System.currentTimeMillis();
                        // Don't back off any further if we are already backed 
off
@@ -959,7 +960,11 @@
                                backoffLength = backoffLength * 
BACKOFF_MULTIPLIER;
                                if(backoffLength > MAX_BACKOFF_LENGTH)
                                        backoffLength = MAX_BACKOFF_LENGTH;
-                               backedOffUntil = now + 
node.random.nextInt(backoffLength);
+                               int x = node.random.nextInt(backoffLength);
+                               backedOffUntil = now + x;
+                               Logger.minor(this, "Backing off: 
backoffLength="+backoffLength+", until "+x+"ms on "+getPeer());
+                       } else {
+                               Logger.minor(this, "Ignoring 
localRejectedOverload: "+(backedOffUntil-now)+"ms remaining on backoff on 
"+getPeer());
                        }
                }
        }
@@ -969,10 +974,16 @@
         * Reset backoff.
         */
        public void successNotOverload() {
+               Logger.minor(this, "Success not overload on "+this);
                synchronized(backoffSync) {
+                       long now = System.currentTimeMillis();
                        // Don't un-backoff if still backed off
-                       if(System.currentTimeMillis() > backedOffUntil)
+                       if(now > backedOffUntil) {
                                backoffLength = INITIAL_BACKOFF_LENGTH;
+                               Logger.minor(this, "Resetting backoff on 
"+getPeer());
+                       } else {
+                               Logger.minor(this, "Ignoring 
successNotOverload: "+(backedOffUntil-now)+"ms remaining on backoff on 
"+getPeer());
+                       }
                }
        }


Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2005-12-03 18:38:37 UTC (rev 
7655)
+++ trunk/freenet/src/freenet/node/Version.java 2005-12-03 18:54:18 UTC (rev 
7656)
@@ -20,10 +20,10 @@
        public static final String protocolVersion = "1.0";

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

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

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


Reply via email to