On Wed, Sep 14, 2005 at 10:08:10AM +0100, Philip Hazel wrote:
> I have made a candidate for the 4.53 release, and put it in
> 
> ftp://ftp.csx.cam.ac.uk/pub/software/email/exim/Testing/exim-4.53-RC1.tar.gz
> ftp://ftp.csx.cam.ac.uk/pub/software/email/exim/Testing/exim-4.53-RC1.tar.gz.sig
> 
> The release identifies itself as 4.53-RC1.

The following patch works fine for me in production since about a
week.

----------------------------------------------------------------------
--- src/retry.c.orig    2005-09-14 10:59:57.000000000 +0200
+++ src/retry.c 2005-09-14 12:49:30.000000000 +0200
@@ -746,8 +746,11 @@
             int last_actual_gap = now - retry_record->last_try;
             int lastgap = (last_predicted_gap < last_actual_gap)?
               last_predicted_gap : last_actual_gap;
-            next_try = now + ((lastgap < rule->p1)? rule->p1 :
-               (lastgap * rule->p2)/1000);
+            int next_gap = (lastgap*rule->p2)/1000;
+            if (next_gap<=rule->p1)
+              next_try = now + rule->p1;
+            else
+              next_try = now + rule->p1 + random_number(next_gap-rule->p1);
             }
           }
 
----------------------------------------------------------------------

It changes the geometric retry interval algorithm from a fixed exponential
backoff to a randomised exponential backoff.  Most people would never
notice the difference.  It makes a big difference for me, though.

Michael

-- 
## List details at http://www.exim.org/mailman/listinfo/exim-dev Exim details 
at http://www.exim.org/ ##

Reply via email to