On Wed, Feb 27, 2013 at 01:45:04PM +0000, Thorsten Glaser wrote:

> > deliveries. Proper SMTP connection caching is not done by the SMTP
> > clients but by a separate process that is queried by SMTP clients.
> 
> If you don't manage to do that with TLS, this statement is plainly wrong.

If you don't understand what you're talking about, you're liable to say
things that are plainly wrong.

> Connection caching is a matter of also being nice to the recipient, who
> doesn't have to spawn many sendmail processes in parallel to handle the
> roughly 500 mails that piled up on the Postfix side, right now.

No, connection caching has nothing to do with concurrency.  Whether
connections are cached, or not, Postfix will attempt parallel
delivery up to the configured concurrency limit:

  http://www.postfix.org/postconf.5.html#transport_destination_concurrency_limit
  http://www.postfix.org/postconf.5.html#smtp_destination_concurrency_limit
  http://www.postfix.org/postconf.5.html#relay_destination_concurrency_limit
  ...

Connection caching is a latency reduction optimization on the SMTP
client to reduce the impact of TCP connect timeouts when a subset
of the MX hosts for a destination is unreachable. The load on the
remote server is identical with and without connection caching.


> If Postfix were able to do proper connection reuse (WITH TLS, of course!)
> the mail delivery wouldn't stop after the first couple of messages was
> submitted (because sendmail stops listening when the load reaches 8)

Don't blame Sendmail design flaws on Postfix. The "RefuseLA" and
"QueueLA" features are fundamentally broken. Set these sufficiently
high that you never hit these in practice, an MTA should never
suspend delivery under high load, that just leads to even higher
load later. 

Sendmail lacks a queue-manager, if you really want to avoid Sendmail
melt-downs under load, deploy Postfix.

> So I request of Postfix to implement connection reuse, supporting TLS
> (that means with*out* the separate d?mon unless you manage to be able
> to do that and still use TLS), by default.

Connection caching without the ability to re-use the connection in
a different delivery-agent process *is* abusive of the remote
system, since you're keeping a remote process occupied and idle, while
making new connections. This will not be implemented.

Migrating TLS sessions between processes is non-trivial due to
understandablel limitations in the OpenSSL API (it is not easy to
completely serialize the cryptographic state of an established SSL
connection).

> Thanks.
> 
> Sorry for my tone, I'm a tad disgruntled right now *and* under pressure
> from my cow-orkers to get the pile of mails delivered.

When disgruntled, especially due to problems with system "A", don't
rant on the mailing list for system "B".

-- 
        Viktor.

Reply via email to