[EXIM] exim is going around in circles

Top Page
Delete this message
Reply to this message
Author: Randy Banks
Date:  
To: exim-users
Subject: [EXIM] exim is going around in circles
Dear Exim Gurus -

I've only just joined the list, so apologies in advance if I break in
any rules.

We've been happily running exim 2.05 on all our Sun (SunOS 4.1.4,
Solaris 2.6) systems for quite a while now with no problems. Since
sometime this morning, however, all of our mailers have gone on a go-
slow for no apparent reason (or, at least, none that I can discover).

In particular, when the Exim demon forks a copy of itself to handle an
incoming SMTP request, the forked copy seems to go around in circles
for a significant (up to 5 minutes, so far) amount of time before
deciding to handle the delivery (whether it be local or one to pass
onwards).

I include, at the end of this, snippets of what I think are the
relevent bits of truss-ed output in the hope that someone can tell me
what's happening, why and, more importantly, what I might be able to do
to stop it. (If anyone thinks it might help, I can mail the full
trace).

Many TIA.

randy

----------------------
Randy Banks (randy@???)
ISER, University of Essex
Colchester, Essex, UK CO4 3SQ
tel: +44 (0)1206 873 067; fax: +44 (0)1206 873 151

----- cut here ----

[snipped - PID 28993 is the process forked by the Exim demon]

28993:    sysinfo(SI_SRPC_DOMAIN, "essex.ac.uk", 1024)    = 12
28993:    open("/etc/resolv.conf", O_RDONLY)        = 0
28993:    ioctl(0, TCGETA, 0xEFFFEBFC)            Err#25 ENOTTY
28993:    fstat64(0, 0xEFFFEC70)                = 0
28993:    read(0, " d o m a i n\t e s s e x".., 8192)    = 96
28993:    read(0, 0x0009A9EC, 8192)            = 0
28993:    llseek(0, 0, SEEK_CUR)                = 96
28993:    close(0)                    = 0
28993:    stat("/etc/resolv.conf", 0xEFFFE9D8)        = 0
28993:    stat("/etc/resolv.conf", 0xEFFFE710)        = 0
28993:    so_socket(2, 1, 0, "", 1)            = 0
28993:    sendto(0, "\00101\0\001\0\0\0\0\0\0".., 49, 0, 0x00090060, 16) = 49
28993:    poll(0xEFFFC798, 1, 6000)            = 1
28993:    recv(0, "\0018583\001\0\0\001\0\0".., 1024, 0)    = 110
28993:    close(0)                    = 0
28993:    stat("/etc/resolv.conf", 0xEFFFE9D8)        = 0
28993:    stat("/etc/resolv.conf", 0xEFFFE710)        = 0
28993:    so_socket(2, 1, 0, "", 1)            = 0
28993:    sendto(0, "\00201\0\001\0\0\0\0\0\0".., 49, 0, 0x00090060, 16) = 49
28993:    poll(0xEFFFC798, 1, 6000)    (sleeping...)
28993:        Received signal #16, SIGUSR1, in poll() [caught]
28993:          siginfo: SIGUSR1 pid=29005 uid=0
28993:    poll(0xEFFFC798, 1, 6000)            Err#91 ERESTART
28993:    time()                        = 930069536
28993:    open("/var/spool/exim/logs/processlog", O_WRONLY|O_APPEND) Err#2 ENOENT
28993:    open("/var/spool/exim/logs/processlog", O_WRONLY|O_APPEND|O_CREAT, 0640) = 4
28993:    getuid()                    = 20467 [20467]
28993:    chmod("/var/spool/exim/logs/processlog", 0640)    = 0
28993:    write(4, " 1 9 9 9 - 0 6 - 2 2   1".., 90)    = 90
28993:    close(4)                    = 0
28993:    sigaction(SIGUSR1, 0xEFFFC288, 0x00000000)    = 0
28993:    setcontext(0xEFFFC468)
28993:    sendto(0, "\00201\0\001\0\0\0\0\0\0".., 49, 0, 0x00090070, 16) = 49
28993:    poll(0xEFFFC798, 1, 6000)    (sleeping...)
28993:    poll(0xEFFFC798, 1, 6000)            = 0


28993:    sendto(0, "\00201\0\001\0\0\0\0\0\0".., 49, 0, 0x00090080, 16) = 49
28993:    poll(0xEFFFC798, 1, 6000)    (sleeping...)
28993:    poll(0xEFFFC798, 1, 6000)            = 0
28993:    sendto(0, "\00201\0\001\0\0\0\0\0\0".., 49, 0, 0x00090060, 16) = 49
28993:    poll(0xEFFFC798, 1, 4000)    (sleeping...)
28993:    poll(0xEFFFC798, 1, 4000)            = 0
28993:    sendto(0, "\00201\0\001\0\0\0\0\0\0".., 49, 0, 0x00090070, 16) = 49
28993:    poll(0xEFFFC798, 1, 4000)    (sleeping...)
28993:    poll(0xEFFFC798, 1, 4000)            = 0
28993:    sendto(0, "\00201\0\001\0\0\0\0\0\0".., 49, 0, 0x00090080, 16) = 49
28993:    poll(0xEFFFC798, 1, 4000)    (sleeping...)
28993:    poll(0xEFFFC798, 1, 4000)            = 0
28993:    sendto(0, "\00201\0\001\0\0\0\0\0\0".., 49, 0, 0x00090060, 16) = 49
28993:    poll(0xEFFFC798, 1, 8000)    (sleeping...)
28993:    poll(0xEFFFC798, 1, 8000)            = 0
28993:    sendto(0, "\00201\0\001\0\0\0\0\0\0".., 49, 0, 0x00090070, 16) = 49
28993:    poll(0xEFFFC798, 1, 8000)    (sleeping...)
28993:    poll(0xEFFFC798, 1, 8000)            = 0
28993:    sendto(0, "\00201\0\001\0\0\0\0\0\0".., 49, 0, 0x00090080, 16) = 49
28993:    poll(0xEFFFC798, 1, 8000)    (sleeping...)
28993:    poll(0xEFFFC798, 1, 8000)            = 0
28993:    sendto(0, "\00201\0\001\0\0\0\0\0\0".., 49, 0, 0x00090060, 16) = 49
28993:    poll(0xEFFFC798, 1, 16000)    (sleeping...)
28993:    poll(0xEFFFC798, 1, 16000)            = 1
28993:    recv(0, "\0028182\001\0\0\0\0\0\0".., 1024, 0)    = 49
28993:    close(0)                    = 0
28993:    stat("/etc/resolv.conf", 0xEFFFE9D8)        = 0
28993:    stat("/etc/resolv.conf", 0xEFFFE710)        = 0
28993:    so_socket(2, 1, 0, "", 1)            = 0
28993:    sendto(0, "\00301\0\001\0\0\0\0\0\0".., 47, 0, 0x00090060, 16) = 47
28993:    poll(0xEFFFC798, 1, 6000)    (sleeping...)
28993:    poll(0xEFFFC798, 1, 6000)            = 0
28993:    sendto(0, "\00301\0\001\0\0\0\0\0\0".., 47, 0, 0x00090070, 16) = 47
28993:    poll(0xEFFFC798, 1, 6000)    (sleeping...)
28993:    poll(0xEFFFC798, 1, 6000)            = 0
28993:    sendto(0, "\00301\0\001\0\0\0\0\0\0".., 47, 0, 0x00090080, 16) = 47
28993:    poll(0xEFFFC798, 1, 6000)    (sleeping...)
28993:    poll(0xEFFFC798, 1, 6000)            = 0
28993:    sendto(0, "\00301\0\001\0\0\0\0\0\0".., 47, 0, 0x00090060, 16) = 47
28993:    poll(0xEFFFC798, 1, 4000)    (sleeping...)
28993:    poll(0xEFFFC798, 1, 4000)            = 0
28993:    sendto(0, "\00301\0\001\0\0\0\0\0\0".., 47, 0, 0x00090070, 16) = 47
28993:    poll(0xEFFFC798, 1, 4000)    (sleeping...)
28993:    poll(0xEFFFC798, 1, 4000)            = 0
28993:    sendto(0, "\00301\0\001\0\0\0\0\0\0".., 47, 0, 0x00090080, 16) = 47
28993:    poll(0xEFFFC798, 1, 4000)    (sleeping...)
28993:    poll(0xEFFFC798, 1, 4000)            = 0
28993:    sendto(0, "\00301\0\001\0\0\0\0\0\0".., 47, 0, 0x00090060, 16) = 47
28993:    poll(0xEFFFC798, 1, 8000)    (sleeping...)
28993:    poll(0xEFFFC798, 1, 8000)            = 0
28993:    sendto(0, "\00301\0\001\0\0\0\0\0\0".., 47, 0, 0x00090070, 16) = 47
28993:    poll(0xEFFFC798, 1, 8000)    (sleeping...)
28993:    poll(0xEFFFC798, 1, 8000)            = 0
28993:    sendto(0, "\00301\0\001\0\0\0\0\0\0".., 47, 0, 0x00090080, 16) = 47
28993:    poll(0xEFFFC798, 1, 8000)    (sleeping...)
28993:    poll(0xEFFFC798, 1, 8000)            = 0
28993:    sendto(0, "\00301\0\001\0\0\0\0\0\0".., 47, 0, 0x00090060, 16) = 47
28993:    poll(0xEFFFC798, 1, 16000)            = 1
28993:    recv(0, "\0038182\001\0\0\0\0\0\0".., 1024, 0)    = 47
28993:    close(0)                    = 0


[snipped - PID 28993 now gets its skates on an processes the message ]


--
*** Exim information can be found at http://www.exim.org/ ***