I think this is a more complicated case than this solution provides.  
With reasonable frequency we will incur a success (just too late). In  
which case, will adding a failure table entry notice that?

Maybe it should be closer too:

if (success)
        send offer?;
else
        addToFailureTable;

--
Robert Hailey


On Feb 2, 2008, at 10:25 AM, toad at freenetproject.org wrote:

> Author: toad
> Date: 2008-02-02 16:25:41 +0000 (Sat, 02 Feb 2008)
> New Revision: 17473
>
> Modified:
>   trunk/freenet/src/freenet/node/RequestHandler.java
> Log:
> If a request takes so long that the predecessor times out, but we do  
> eventually get the data, we need to offer it to the predecessor  
> through ULPRs.
>
> Modified: trunk/freenet/src/freenet/node/RequestHandler.java
> ===================================================================
> --- trunk/freenet/src/freenet/node/RequestHandler.java        2008-02-02  
> 16:06:24 UTC (rev 17472)
> +++ trunk/freenet/src/freenet/node/RequestHandler.java        2008-02-02  
> 16:25:41 UTC (rev 17473)
> @@ -228,6 +228,8 @@
>               this.status=status;
>               
>               if (now > responseDeadline) {
> +                     // Offer the data if there is any.
> +             node.failureTable.onFailure(key, htl, new PeerNode[]  
> { source }, null, -1, System.currentTimeMillis());
>                       Logger.error(this, "requestsender took too long to 
> respond to  
> requestor ("+TimeUtil.formatTime((now - searchStartTime), 2, true) 
> +"/"+rs.getStatusString()+")");
>                       applyByteCounts();
>                       unregisterRequestHandlerWithNode();
>

Reply via email to