sync_client stalls the rest of cyrus while 'no route to host'

Bron Gondwana brong at fastmail.fm
Sat Aug 26 20:11:05 EDT 2006


On Sat, 26 Aug 2006 22:22:15 +0200, "Paul Dekkers" <Paul.Dekkers at surfnet.nl> said:
> Hi,
> 
> I don't know if this is a known issue: as soon as I enable replication
> and the sync_client gets a "No route to host" from the replica, the rest
> of the cyrus startup seems to stall: no imap, no lmtp... just because a
> replica is unreachable. (In this case because iptables was to
> restrictive on the replica ;-))
> 
> Aug 26 22:13:19 haver master[24203]: about to exec
> /usr/lib/cyrus-imapd/idled
> Aug 26 22:13:19 haver master[24205]: about to exec
> /usr/lib/cyrus-imapd/sync_client
> Aug 26 22:13:19 haver sync_client[24205]: connect(192.87.109.20) failed:
> No route to host
> Aug 26 22:14:04 haver last message repeated 2 times
> Aug 26 22:17:04 haver last message repeated 2 times
> Aug 26 22:21:04 haver sync_client[24205]: connect(192.87.109.20) failed:
> No route to host
> 
> It takes quite long, not sure if the server will ever respond...

Yeah, tell me about it.  It's "known" in the sense that everyone hits it
at some point.  Unfortunately, the code in sync_client for making and
handling connections is somewhat of a mess (don't just ask me, read the
comments in the code!) and hence it's a pain to factor out.  I did start
working on it, but for now we just kill sync_client by hand if we have to
start with a replica down.  Bit of a pain.

To tell you the truth, I'm seriously considering writing a replacement to
sync_client that does a bunch of different things including multiple
replicas, maintaining log files, etc.  All of this drops out pretty easily
from a pattern which produces a single log file per day and calls the
sync_client fork children with a byte-range on the log file to run rather
than moving the file and then running the copy.

Bron.
-- 
  Bron Gondwana
  brong at fastmail.fm



More information about the Info-cyrus mailing list