On 20 Mar 2002, Jason Stratford wrote:
> The problem is that when sending a message to one user that is CC'd to
> another in the same domain, the first message gets delivered, but the
> second one is deferred due to a failed LDAP lookup during the delivery
> phase.
Could you send me the configuration of your transport, please?
> I have tracked this down to the search_tidyup() function being called at
> the end of the delivery fork code, which appears to be clearing the
> connection to the LDAP before the second delivery has finished using it,
> but _after_ the second delivery has determined that it is using a pooled
> connection. Result, second delivery goes bang.
It isn't quite like that, but I can see where there might be a problem,
which is why I'd like to see your transport.
> The following patch appears to fix this problem, but I do not have
> enough working knowledge of the code yet to know if this breaks
> anything, or introduces leaks.
It isn't right, because it leaves open any connections that the
transport establishes in the subprocess. (This may not be the case in
your configuration, but it is in some.)
I think the fix might be to call search_tidyup() just before the fork(),
but I want to be sure (by looking at your transport) before recommending
that you try that.
Philip
--
Philip Hazel University of Cambridge Computing Service,
ph10@??? Cambridge, England. Phone: +44 1223 334714.