On 2011-08-30 at 11:49 -0400, Dean Brooks wrote:
> What you are seeing in Exim with regards to having to set
> connection_max_messages=1 in order to ensure that the interface=
> transport option is honored properly is indeed the case. Without it,
> other messages waiting on the queue will get sent down the open
> socket even if the interface= values dont match.
>
> We ran into this several years ago (not on cpanel), investigated it
> internally, and made the appropriate changes to our configuration.
>
> The code in src/deliver.c appears to attempt to reuse an existing
> socket if the transport name and hostnames match, but it probably
> needs to also ensure that any interface= value also matches. I looked
> at the code and I think it might be fairly straightforward to fix, but
> it's been a long time since I've delved into Exim code and not sure
> what negative ramifications it might have.
>
> I'm not aware of another workaround other than setting
> connection_max_messages=1 at this point. If someone else is familiar
> with this code, it might be able to be fixed(?), or I could try and
> take a stab at it in the near future since we have a configuration
> that would benefit from it as well.
Oh dear; thanks for this analysis.
http://bugs.exim.org/show_bug.cgi?id=1141 filed.
There's a work-around, so this isn't critical enough to mandate a new
release "soon", but this definitely needs to be fixed before the next
release. I've assigned the bug to me, but I'm not sure when I'll get
time to take a look.
Matt: the config looked fairly sane, thanks. (Normally, reports like
this turn out to be configuration mistakes).
-Phil