followup: stuck lmtpd processes
Etienne Goyer
etienne.goyer at linuxquebec.com
Thu Sep 25 12:11:34 EDT 2003
On Wed, Sep 24, 2003 at 08:01:11PM +0100, Patrick Welche wrote:
> I don't understand. The only alarm() business I can see in imap/fud.c
> is around recvfrom which at least according to its man page says
>
> [EINTR] The receive was interrupted by delivery of a signal
> before any data were available.
>
> What "system call"s are there? I was looking for syscall()...
Sorry, I may have got the nomenclature wrong since I am not very
familiar with Unix C programming.
However, the man page is wrong about EINTR at least as far as RedHat 7.x
is concerned. In a murder environnement, when following a referral :
1. The alarm() is set
2. recvfrom() connect to referred by UDP
3. If the referred is not answering :
3.1 The SIG_ALRM handler is eventually executed
3.2 fud goes back to waiting after recvfrom and deadlock
This is reproducible in my environment. Maybe I got something wrong in
my crude syslog() debugging, but I am confident that this is what
happen. The patch I posted earlier fix the problem for me.
--
Etienne Goyer Linux Québec Technologies Inc.
http://www.LinuxQuebec.com etienne.goyer at linuxquebec.com
More information about the Info-cyrus
mailing list