Missed one case of "retry time not reached" when adding additional
authorPhilip Hazel <ph10@hermes.cam.ac.uk>
Tue, 4 Jul 2006 09:07:20 +0000 (09:07 +0000)
committerPhilip Hazel <ph10@hermes.cam.ac.uk>
Tue, 4 Jul 2006 09:07:20 +0000 (09:07 +0000)
debugging information.

src/src/deliver.c
test/runtest
test/stderr/0476
test/stderr/0529

index d4051768ea67443f127cc0362aaab493b7c50416..fdff074142b8ec5687ed7f79d3195a0ec84d878e 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/deliver.c,v 1.34 2006/06/30 15:36:08 ph10 Exp $ */
+/* $Cambridge: exim/src/src/deliver.c,v 1.35 2006/07/04 09:07:20 ph10 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -2328,8 +2328,13 @@ while (addr_local != NULL)
                 retry_record->more_errno);
 
             DEBUG(D_deliver|D_retry)
+              {
               debug_printf("retry time not reached for %s: "
                 "checking ultimate address timeout\n", addr2->address);
+              debug_printf("  now=%d first_failed=%d next_try=%d expired=%d\n",
+                (int)now, (int)retry_record->first_failed,
+                (int)retry_record->next_try, retry_record->expired);
+              }
 
             if (retry != NULL && retry->rules != NULL)
               {
@@ -2338,9 +2343,8 @@ while (addr_local != NULL)
                    last_rule->next != NULL;
                    last_rule = last_rule->next);
               DEBUG(D_deliver|D_retry)
-                debug_printf("now=%d received_time=%d diff=%d timeout=%d\n",
-                  (int)now, received_time, (int)now - received_time,
-                  last_rule->timeout);
+                debug_printf("  received_time=%d diff=%d timeout=%d\n",
+                  received_time, (int)now - received_time, last_rule->timeout);
               if (now - received_time > last_rule->timeout) ok = TRUE;
               }
             else
index 9d84232ff8e680a1c8798f5dfebbeebc526b76c8..37b6fbed47b7ee7e8270fc7ab9a600942a46a9c0 100755 (executable)
@@ -1,6 +1,6 @@
 #! /usr/bin/perl -w
 
-# $Cambridge: exim/test/runtest,v 1.11 2006/07/03 15:39:06 ph10 Exp $
+# $Cambridge: exim/test/runtest,v 1.12 2006/07/04 09:07:20 ph10 Exp $
 
 ###############################################################################
 # This is the controlling script for the "new" test suite for Exim. It should #
@@ -414,7 +414,7 @@ while(<IN>)
     $_ = "  first failed=dddd last try=dddd next try=+$next $4\n";
     }
   s/^(\s*)now=\d+ first_failed=\d+ next_try=\d+ expired=(\d)/$1now=tttt first_failed=tttt next_try=tttt expired=$2/;
-  s/^(\s*)received_time=\d+ diff=\d+ timeout=(\d+)/$1now=tttt received_time=tttt diff=tttt timeout=$2/;
+  s/^(\s*)received_time=\d+ diff=\d+ timeout=(\d+)/$1received_time=tttt diff=tttt timeout=$2/;
 
   # Time to retry may vary
   s/time to retry = \S+/time to retry = tttt/;
@@ -859,7 +859,7 @@ my($rf,$rsf,$mf,$sf,$sortfile) = @_;
 
 if (! -e $sf)
   {
-  return 0 if (! -s $rf && ! -s $rsf);
+  return 0 if (! -s $rf && (! defined $rsf || ! -s $rsf));
 
   print "\n";
   print "** $rf is not empty\n" if (-s $rf);
index 01251066f1e3f9570f544b43f687de666200b4a5..c70ad24615a77b6cd3dea19ee5d2c91a54290b4a 100644 (file)
@@ -97,7 +97,7 @@ checking status of 127.0.0.1
 no message retry record
 host retry time not reached: checking ultimate address timeout
   now=tttt first_failed=tttt next_try=tttt expired=0
-  now=tttt received_time=tttt diff=tttt timeout=86400
+  received_time=tttt diff=tttt timeout=86400
 127.0.0.1 [127.0.0.1]:1111 status = unusable
 all IP addresses skipped or deferred at least one address
 Leaving t1 transport
index 406de192ccc05269e983fedbeb1943db159a3267..872b37402f248ee0ea9f831b6e387a9a90172a6f 100644 (file)
@@ -70,7 +70,8 @@ locking TESTSUITE/spool/db/retry.lockfile
 retry record exists: age=ttt (max 1w)
   time to retry = tttt expired = 0
 retry time not reached for TESTSUITE/test-mail/rmbox: checking ultimate address timeout
-now=tttt received_time=tttt diff=tttt timeout=259200
+  now=tttt first_failed=tttt next_try=tttt expired=0
+  received_time=tttt diff=tttt timeout=259200
 LOG: retry_defer MAIN
   == TESTSUITE/test-mail/rmbox <x@test.ex> R=r1 T=t1 defer (-52): Retry time not yet reached
 Processing retry items