We've seen this problem before on Solaris - a fix went in at some
point (fix #5 in 4.22 I think), but I'm pretty sure we've seen it
since on Solaris (9/Sparc) and we're now seeing it FreeBSD 4.8 w/ exim
4.42.
Attaching gdb and dumping a bunch of stuff:
(gdb) down
#0 0x28367a48 in sigsuspend () from /usr/lib/libc.so.4
(gdb) info locals
No symbol table info available.
(gdb) up
#1 0x805b961 in milliwait (itval=0xbfbff010) at exim.c:214
214 in exim.c
(gdb) info locals
itval = (struct itimerval *) 0xbfbff010
sigmask = {__bits = {4294959103, 4294967295, 4294967295, 4294967295}}
old_sigmask = {__bits = {0, 0, 0, 0}}
(gdb) up
#2 0x805babf in exim_wait_tick (then_tv=0x80e4578, resolution=5000)
at exim.c:322
322 in exim.c
(gdb) info locals
itval = {it_interval = {tv_sec = 0, tv_usec = 0}, it_value = {tv_sec = 147,
tv_usec = -106474}}
resolution = 5000
now_tv = {tv_sec = 1096389257, tv_usec = 895000}
now_true_usec = 896474
(gdb) up
#3 0x8082908 in receive_msg (extract_recip=0) at receive.c:2870
2870 receive.c: No such file or directory.
(gdb) info locals
i = 1
rc = 135219160
msg_size = 875
process_info_len = 87
error_rc = 1
header_size = 256
start = 134795658
end = 1
domain = -1077939652
size = 0
sptr = 1
id_resolution = 5000
had_zero = 0
ptr = 12
contains_resent_headers = 0
extracted_ignored = 0
first_line_ended_crlf = 1
smtp_yield = 1
yield = 0
resents_exist = 0
resent_prefix = (uschar *) 0x80cdc26 ""
blackholed_by = (uschar *) 0x0
lock_data = {l_start = 0, l_len = 19, l_pid = 100, l_type = 3, l_whence = 0}
bad_addresses = (error_block *) 0x0
frozen_by = (uschar *) 0x0
queued_by = (uschar *) 0x0
errmsg = (uschar *) 0x280f9000 "z�P�\001"
s = (uschar *) 0xc <Error reading address 0xc: Bad address>
statbuf = {st_dev = 134412, st_ino = 2128481, st_mode = 33184, st_nlink = 1,
st_uid = 27, st_gid = 27, st_rdev = 8661440, st_atimespec = {
tv_sec = 1096389404, tv_nsec = 0}, st_mtimespec = {tv_sec = 1096389257,
tv_nsec = 0}, st_ctimespec = {tv_sec = 1096389257, tv_nsec = 0},
st_size = 878338, st_blocks = 1760, st_blksize = 16384, st_flags = 0,
st_gen = 0, st_lspare = 0, st_qspare = {0, 0}}
smtp_reply = (uschar *) 0x0
h = (header_line *) 0x0
next = (header_line *) 0x0
date_header_exists = 1
from_header = (header_line *) 0x80f4260
subject_header = (header_line *) 0x80f42f0
msgid_header = (header_line *) 0x80f4358
received_length = 177
received = (uschar *) 0x1 <Error reading address 0x1: Bad address>
timestamp = (uschar *) 0x80f47d8 "Tue, 28 Sep 2004 16:34:17 +0000"
--
Alex Kiernan