Author: toad
Date: 2008-01-25 15:14:55 +0000 (Fri, 25 Jan 2008)
New Revision: 17275

Modified:
   trunk/freenet/src/freenet/node/CHKInsertSender.java
Log:
Log an error if we timeout while waiting for the BackgroundTransfer's.
Should never happen ... but it does, at least, it did to me...

Modified: trunk/freenet/src/freenet/node/CHKInsertSender.java
===================================================================
--- trunk/freenet/src/freenet/node/CHKInsertSender.java 2008-01-25 15:05:32 UTC 
(rev 17274)
+++ trunk/freenet/src/freenet/node/CHKInsertSender.java 2008-01-25 15:14:55 UTC 
(rev 17275)
@@ -730,8 +730,15 @@
                 * @return True if all background transfers were successful.
                 */
                private boolean waitForBackgroundTransfers(BackgroundTransfer[] 
transfers) {
+                       long start = System.currentTimeMillis();
+                       // Generous deadline so we catch bugs more obviously
+                       long deadline = start + TRANSFER_COMPLETION_ACK_TIMEOUT 
* 3;
                        // MAYBE all done
                        while(true) {
+                               if(System.currentTimeMillis() > deadline) {
+                                       Logger.error(this, "Timed out waiting 
for background transfers! Probably caused by async filter not getting a timeout 
notification! DEBUG ME!");
+                                       return false;
+                               }
                                //If we want to be sure to exit as-soon-as the 
transfers are done, then we must hold the lock while we check.
                                synchronized(backgroundTransfers) {
                                        if(receiveFailed) return false;


Reply via email to