ph10 2006/04/20 11:57:46 BST
Modified files:
exim-doc/doc-txt ChangeLog
exim-src/src retry.c
exim-test/log 0532
exim-test/rejectlog 0532
exim-test/stderr 0388
Log:
Modify (i.e. fix :-) change 4.61/PH/19: Using message arrival time for
"first failed" should *not* apply to host errors.
Revision Changes Path
1.343 +5 -0 exim/exim-doc/doc-txt/ChangeLog
1.10 +7 -6 exim/exim-src/src/retry.c
1.2 +1 -1 exim/exim-test/log/0532
1.2 +1 -1 exim/exim-test/rejectlog/0532
1.5 +2 -1 exim/exim-test/stderr/0388
Index: ChangeLog
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
retrieving revision 1.342
retrieving revision 1.343
diff -u -r1.342 -r1.343
--- ChangeLog 19 Apr 2006 11:15:43 -0000 1.342
+++ ChangeLog 20 Apr 2006 10:57:46 -0000 1.343
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.342 2006/04/19 11:15:43 ph10 Exp $
+$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.343 2006/04/20 10:57:46 ph10 Exp $
Change log file for Exim from version 4.21
-------------------------------------------
@@ -24,6 +24,10 @@
PH/03 Add -lutil to the default FreeBSD LIBS setting.
+PH/04 Change PH/19 for 4.61 was too wide. It should not be applied to host
+ errors. Otherwise a message that provokes a temporary error (when other
+ messages do not) can cause a whole host to time out.
+
Exim version 4.61
-----------------
@@ -137,6 +141,7 @@
when small messages continue to be delivered. Without this change, the
"time since failure" will always be short, possible causing more frequent
delivery attempts for the huge message than are intended.
+ [Note: This change was subsequently modified - see PH/04 for 4.62.]
PH/20 Added $auth1, $auth2, $auth3 to contain authentication data (as well as
$1, $2, $3) because the numerical variables can be reset during some
Index: retry.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/retry.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- retry.c 9 Mar 2006 15:10:16 -0000 1.9
+++ retry.c 20 Apr 2006 10:57:46 -0000 1.10
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/retry.c,v 1.9 2006/03/09 15:10:16 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/retry.c,v 1.10 2006/04/20 10:57:46 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -698,13 +698,14 @@
DEBUG(D_retry) debug_printf("failing_interval=%d message_age=%d\n",
failing_interval, message_age);
- /* If the message has been on the queue longer than the recorded time
- of failure, use the message's age instead. This can happen when some
- messages can be delivered and others cannot; a successful delivery will
- reset the first_failed time, and this can lead to a failing message
- being retried too often. */
+ /* For a non-host error, if the message has been on the queue longer
+ than the recorded time of failure, use the message's age instead. This
+ can happen when some messages can be delivered and others cannot; a
+ successful delivery will reset the first_failed time, and this can lead
+ to a failing message being retried too often. */
- if (message_age > failing_interval) failing_interval = message_age;
+ if ((rti->flags & rf_host) == 0 && message_age > failing_interval)
+ failing_interval = message_age;
/* Search for the current retry rule. The cutoff time of the
last rule is handled differently to the others. The rule continues
Index: 0532
===================================================================
RCS file: /home/cvs/exim/exim-test/log/0532,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 0532 6 Mar 2006 16:05:12 -0000 1.1
+++ 0532 20 Apr 2006 10:57:46 -0000 1.2
@@ -5,4 +5,4 @@
1999-03-02 09:44:33 10HmaY-0005vi-00 <= CALLER@??? U=CALLER P=local S=sss
1999-03-02 09:44:33 10HmaY-0005vi-00 => rcptok <rcptok@???> R=r1 T=t1
1999-03-02 09:44:33 10HmaY-0005vi-00 Completed
-1999-03-02 09:44:33 U=CALLER temporarily rejected connection in "connect" ACL: cannot test add_header condition in connection ACL
+1999-03-02 09:44:33 U=CALLER temporarily rejected connection in "connect" ACL: cannot use add_header condition in connection ACL
Index: 0532
===================================================================
RCS file: /home/cvs/exim/exim-test/rejectlog/0532,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 0532 6 Mar 2006 16:05:12 -0000 1.1
+++ 0532 20 Apr 2006 10:57:46 -0000 1.2
@@ -1,2 +1,2 @@
1999-03-02 09:44:33 U=CALLER F=<mailok@???> rejected RCPT <notok@???>
-1999-03-02 09:44:33 U=CALLER temporarily rejected connection in "connect" ACL: cannot test add_header condition in connection ACL
+1999-03-02 09:44:33 U=CALLER temporarily rejected connection in "connect" ACL: cannot use add_header condition in connection ACL
Index: 0388
===================================================================
RCS file: /home/cvs/exim/exim-test/stderr/0388,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- 0388 16 Feb 2006 10:05:34 -0000 1.4
+++ 0388 20 Apr 2006 10:57:46 -0000 1.5
@@ -156,8 +156,9 @@
retry for T:V4NET.0.0.0:V4NET.0.0.0:1224 (y) = * 0 0
dbfn_read: key=T:V4NET.0.0.0:V4NET.0.0.0:1224
failing_interval=ttt message_age=ttt
+on queue longer than maximum retry
Writing retry data for T:V4NET.0.0.0:V4NET.0.0.0:1224
- first failed=dddd last try=dddd next try=+1 expired=1
+ first failed=dddd last try=dddd next try=+0 expired=0
errno=dd more_errno=dd,A Network Error
dbfn_write: key=T:V4NET.0.0.0:V4NET.0.0.0:1224
timed out: all retries expired