Frontend becomes unusable when one backend dies

Wesley Craig wes at umich.edu
Thu Jul 5 10:38:36 EDT 2007


I assume that the frontend is also the murder master?  Other  
pertinent questions are, "How many connection do you normally get?"  
and "In what way is the backend 'down'?"

The client_timeout sets an alarm that interrupts the connect system  
call.  The frontend may try more than once, tho, if the backend has  
more than one address, e.g., IPv4 and IPv6.  Are you observing imapd  
and pop3d on the frontend that are waiting more than client_timeout  
to give up?  As they fail to connect, clients should log:

	connect(server-name) failed: timed out

so you should be able to see just how long they are waiting for the  
connect to fail.

Another possibility is that the clients are poorly behaved, e.g.,  
they are getting an error on SELECT, but don't close the connection  
to the frontend.  The client_timeout is just controlling the timeout  
of the connect from the frontend to the backend, not the duration of  
the life of the frontend processes.  For imapd, the timeout is 30  
*minutes*.

:wes

On 05 Jul 2007, at 06:13, Frank Richter wrote:
> I'm running a simple standard murder environment (v2.3.8 on Linux  
> x86_64)
> - one frontend, two backends. If one of the two backends is down,
> then the frontend (and the whole system) becomes unavailable after  
> some
> minutes:
>
> On the frontend imapd's and pop3d's are started till the maximum
> count (maxchild in cyrus.conf) is reached. It seems that they're still
> trying to reach the "dead" backend server.
>
> Maybe it is a timeout issue - I let the default client_timeout
> (10 seconds) in imapd.conf. Is this value relevant for this behavior?


More information about the Info-cyrus mailing list