Cyrus 2.1.15 blocking connections after upgrade

Mike Brodbelt m.brodbelt at
Mon Feb 9 09:49:11 EST 2004


I've just upgraded a 50 user Cyrus installation from 2.0.16 to 2.1.15,
and users are now having problems connecting.

Some connections behave as expected, but some connections to port 143
just hang. Using telnet to connect to the port shows that the TCP
connection is established, but the Cyrus banner never appears, and
eventually the connection times out. Once a connection has been
established successfully, things seem to be OK. Restarting cyrus seems
to make it easier to get connections, for a while. The Cyrus POP3 daemon
does not appear to have this problem, but cyradm hangs before bringing
up the password prompt.

I at first through that this was related to /dev/random running out of
entropy, but I've recompiled SASL 2 with --with-random-dev=/dev/urandom,
and it seems to have made no difference.

Looking at the server, it appears that for "hanging" connections, master
is not spawning an imapd child process off correctly. I've tried running
strace on master, and I'm seeing stuff like this:-

gettimeofday({1076337274, 210239}, NULL) = 0
gettimeofday({1076337274, 210265}, NULL) = 0
time(NULL)                              = 1076337274
select(21, [8 11 14 16 17 20], NULL, NULL, {3, 0}) = 0 (Timeout)
time(NULL)                              = 1076337277
gettimeofday({1076337277, 207307}, NULL) = 0
gettimeofday({1076337277, 207550}, NULL) = 0
time(NULL)                              = 1076337277
select(21, [8 11 14 16 17 20], NULL, NULL, {10, 0}) = 0 (Timeout)
time(NULL)                              = 1076337287
gettimeofday({1076337287, 207523}, NULL) = 0
gettimeofday({1076337287, 207766}, NULL) = 0
time(NULL)                              = 1076337287

I hope that may shed some light on it.

I'd very much appreciate any help/ideas on this. I've got no idea why
it's happening at this point, and if I can't get it fixed in 24-48 hours
I'm going to have to back out the upgrade, which I'd rather not do if
there's any way to fix this.



P.S. This looks like the /dev/random problem to me in many ways, but
given the fact I've recompiled SASL, I can't see how it could be. Is
there anything else that tries to use /dev/random directly?

Home Page:
List Archives/Info:

More information about the Info-cyrus mailing list