On 9/28/2012 12:44 PM, Jack Bates wrote:
On 9/28/2012 11:37 AM, Jack Bates wrote:
On 9/27/2012 3:30 PM, Jack Bates wrote:
Version: 2.1.9
Connecting directly to the proxy server on the LMTP port, issue
lhlo, mail from, rcpt to, data. After the . closing of data, it just
hangs there. The logs on the proxy server show:
Further testing shows that the connection fails are normally handled
after the DATA block. It works perfectly if you only fail one
recipient. If all recipients are failed, the code locks up instead of
telling the client that they are all failed.
Now to find out where between lmtp_client_fail() and some other part
of the code, we aren't treating it right. :(
It appears that the callbacks for the proxy connections are handled in
the ioloop stuff. If you have at least one valid proxy session open,
then proxy_try_finish will get called and all the replies are sent. The
problem appears to be if all backend proxy sessions are bad (ie single
recipient, proxy server down), there is nothing for ioloop to callback
to. proxy_try_finish will never get called, and we end up locking up at
epoll_wait as there are no events for us to process.
Code needs to be written to handle the special case of us not having any
proxy callbacks as they are all bad.
Jack