[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#926188: unblock: postfix/3.4.5-1



Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock package postfix

As mentioned in the last unblock request, for postfix we've been doing stable
updates of new 3.1 series versions and I'm trying to follow a similar
approach during freeze, particularly due to the late switch to postfix 3.4.

Of course, as soon as I think it's quieted down and it's safe to update, there
is another one.  I would like to go ahead with this now and not wait because
there is a companion 3.1 update for stable that I would like to proceed with
sooner rather than later and I don't want stable to get ahead of testing in
terms of fixes/functionality.

There are two fixes in this release:

  * 3.4.5
    - With message_size_limit=0 (which is NOT DOCUMENTED), BDAT
      chunks were always rejected as too large. File: smtpd/smtpd.c
    - Bugfix (introduced: Postfix 3.0): LMTP connections over
      UNIX-domain sockets were cached but not reused, due to a
      cache lookup key mismatch. Therefore, idle cached connections
      could exhaust LMTP server resources, resulting in two-second
      pauses between email deliveries. This problem was investigated
      by Juliana Rodrigueiro. File: smtp/smtp_connect.c.

The latter fix is a regression from oldstable -> stable.  For high volume
LMTP users, the impact is likley significant, but difficult to diagnose.  I
definitely want this fixed in stable and I think we want it fixed in buster
too.

The first fix represents the next in a series of existing code limitations
that present problems not that BDAT is implemented.

As you can see, the diff is pretty trivial.  I have the package ready to
upload when ack'ed.

Thanks,

Scott K

unblock postfix/3.4.5-1
diff -Nru postfix-3.4.4/debian/changelog postfix-3.4.5/debian/changelog
--- postfix-3.4.4/debian/changelog	2019-03-25 11:03:58.000000000 -0400
+++ postfix-3.4.5/debian/changelog	2019-04-01 13:30:19.000000000 -0400
@@ -1,3 +1,19 @@
+postfix (3.4.5-1) UNRELEASED; urgency=medium
+
+  [Wietse Venema]
+
+  * 3.4.5
+    - With message_size_limit=0 (which is NOT DOCUMENTED), BDAT
+      chunks were always rejected as too large. File: smtpd/smtpd.c
+    - Bugfix (introduced: Postfix 3.0): LMTP connections over
+      UNIX-domain sockets were cached but not reused, due to a
+      cache lookup key mismatch. Therefore, idle cached connections
+      could exhaust LMTP server resources, resulting in two-second
+      pauses between email deliveries. This problem was investigated
+      by Juliana Rodrigueiro. File: smtp/smtp_connect.c.
+
+ -- Scott Kitterman <scott@kitterman.com>  Mon, 01 Apr 2019 13:27:26 -0400
+
 postfix (3.4.4-1) unstable; urgency=medium
 
   [Wietse Venema]
diff -Nru postfix-3.4.4/HISTORY postfix-3.4.5/HISTORY
--- postfix-3.4.4/HISTORY	2019-03-14 19:57:12.000000000 -0400
+++ postfix-3.4.5/HISTORY	2019-03-30 10:33:58.000000000 -0400
@@ -24195,3 +24195,16 @@
 	does the same with the Postfix 3.4 BDAT command. The latter
 	was reported by Andreas Schulze. File: smtpd/smtpd_check.c.
 
+20190319
+
+	With message_size_limit=0 (which is NOT DOCUMENTED), BDAT
+	chunks were always rejected as too large. File: smtpd/smtpd.c
+
+20190328
+
+	Bugfix (introduced: Postfix 3.0): LMTP connections over
+	UNIX-domain sockets were cached but not reused, due to a
+	cache lookup key mismatch. Therefore, idle cached connections
+	could exhaust LMTP server resources, resulting in two-second
+	pauses between email deliveries. This problem was investigated
+	by Juliana Rodrigueiro. File: smtp/smtp_connect.c.
diff -Nru postfix-3.4.4/html/postconf.5.html postfix-3.4.5/html/postconf.5.html
--- postfix-3.4.4/html/postconf.5.html	2019-02-10 12:12:57.000000000 -0500
+++ postfix-3.4.5/html/postconf.5.html	2019-03-24 18:59:02.000000000 -0400
@@ -6241,7 +6241,7 @@
 (default: empty)</b></DT><DD>
 
 <p> The name of an optional logfile that is written by the Postfix
-<a href="postlogd.8.html">postlogd(8)</a> service. A non-empty value selects logging to syslogd(8).
+<a href="postlogd.8.html">postlogd(8)</a> service. An empty value selects logging to syslogd(8).
 Specify "/dev/stdout" to select logging to standard output. Stdout
 logging requires that Postfix is started with "postfix start-fg".
 </p>
diff -Nru postfix-3.4.4/man/man5/postconf.5 postfix-3.4.5/man/man5/postconf.5
--- postfix-3.4.4/man/man5/postconf.5	2019-02-03 11:58:44.000000000 -0500
+++ postfix-3.4.5/man/man5/postconf.5	2019-03-24 18:59:03.000000000 -0400
@@ -3750,7 +3750,7 @@
 This feature is available in Postfix 2.3 and later.
 .SH maillog_file (default: empty)
 The name of an optional logfile that is written by the Postfix
-\fBpostlogd\fR(8) service. A non\-empty value selects logging to \fBsyslogd\fR(8).
+\fBpostlogd\fR(8) service. An empty value selects logging to \fBsyslogd\fR(8).
 Specify "/dev/stdout" to select logging to standard output. Stdout
 logging requires that Postfix is started with "postfix start\-fg".
 .PP
diff -Nru postfix-3.4.4/proto/postconf.proto postfix-3.4.5/proto/postconf.proto
--- postfix-3.4.4/proto/postconf.proto	2019-02-03 11:58:37.000000000 -0500
+++ postfix-3.4.5/proto/postconf.proto	2019-03-21 12:41:06.000000000 -0400
@@ -17550,7 +17550,7 @@
 %PARAM maillog_file
 
 <p> The name of an optional logfile that is written by the Postfix
-postlogd(8) service. A non-empty value selects logging to syslogd(8).
+postlogd(8) service. An empty value selects logging to syslogd(8).
 Specify "/dev/stdout" to select logging to standard output. Stdout
 logging requires that Postfix is started with "postfix start-fg".
 </p>
diff -Nru postfix-3.4.4/src/global/mail_version.h postfix-3.4.5/src/global/mail_version.h
--- postfix-3.4.4/src/global/mail_version.h	2019-03-14 19:53:55.000000000 -0400
+++ postfix-3.4.5/src/global/mail_version.h	2019-03-30 10:38:23.000000000 -0400
@@ -20,8 +20,8 @@
   * Patches change both the patchlevel and the release date. Snapshots have no
   * patchlevel; they change the release date only.
   */
-#define MAIL_RELEASE_DATE	"20190314"
-#define MAIL_VERSION_NUMBER	"3.4.4"
+#define MAIL_RELEASE_DATE	"20190330"
+#define MAIL_VERSION_NUMBER	"3.4.5"
 
 #ifdef SNAPSHOT
 #define MAIL_VERSION_DATE	"-" MAIL_RELEASE_DATE
diff -Nru postfix-3.4.4/src/smtp/smtp_connect.c postfix-3.4.5/src/smtp/smtp_connect.c
--- postfix-3.4.4/src/smtp/smtp_connect.c	2018-11-19 19:51:37.000000000 -0500
+++ postfix-3.4.5/src/smtp/smtp_connect.c	2019-03-28 18:58:04.000000000 -0400
@@ -492,6 +492,8 @@
      * the "unix:" prefix.
      */
     smtp_cache_policy(state, path);
+    if (state->misc_flags & SMTP_MISC_FLAG_CONN_CACHE_MASK)
+	SET_SCACHE_REQUEST_NEXTHOP(state, path);
 
     /*
      * Here we ensure that the iter->addr member refers to a copy of the
@@ -567,6 +569,12 @@
 	    msg_panic("%s: unix-domain destination not final!", myname);
 	smtp_cleanup_session(state);
     }
+
+    /*
+     * Cleanup.
+     */
+    if (HAVE_SCACHE_REQUEST_NEXTHOP(state))
+	CLEAR_SCACHE_REQUEST_NEXTHOP(state);
 }
 
 /* smtp_scrub_address_list - delete all cached addresses from list */
diff -Nru postfix-3.4.4/src/smtpd/smtpd.c postfix-3.4.5/src/smtpd/smtpd.c
--- postfix-3.4.4/src/smtpd/smtpd.c	2019-02-10 17:51:45.000000000 -0500
+++ postfix-3.4.5/src/smtpd/smtpd.c	2019-03-30 08:05:29.000000000 -0400
@@ -3878,7 +3878,8 @@
 	}
     }
     /* Block too large chunks. */
-    if (state->act_size > var_message_limit - chunk_size) {
+    if (var_message_limit > 0
+	&& state->act_size > var_message_limit - chunk_size) {
 	state->error_mask |= MAIL_ERROR_POLICY;
 	msg_warn("%s: BDAT request from %s exceeds message size limit",
 		 state->queue_id ? state->queue_id : "NOQUEUE",

Reply to: