Hello,
This CPU bug is occurring in our installation and thus
far we've been unable to locate the source of the
error.
Randomly and quite rarely, but often enough to prevent
a full production launch, a dbmail-imapd process takes
99% of the CPU.
We're running Dbmail 2.0.4 on Debian Linux
2.6.12-1-686-smp with MySQL 4.0.26 on Dell 1850 with 2
* Xeon 3.20 and 3GB RAM.
We spent some time patching Dbmail to fit with our
database etc, and we've spent a long time trying to
troubleshoot the CPU bug.
We've compiled Dbmail with CFLAGS="-Wall -O3 -g" as
recommended here.
Here is some debug output. Any insights you're able to
provide would be greatly appreciated.
Debug output 1
==============
Attaching to process 847
Reading symbols from
/usr/local/sbin/dbmail-imapd...done.
Reading symbols from
/usr/local/lib/libdbmail.0...done.
Loaded symbols for /usr/local/lib/libdbmail.0
Reading symbols from
/usr/local/lib/dbmail/libmysqldbmail.0...done.
Loaded symbols for
/usr/local/lib/dbmail/libmysqldbmail.0
Reading symbols from
/usr/local/lib/dbmail/libsortdbmail.0...done.
Loaded symbols for
/usr/local/lib/dbmail/libsortdbmail.0
Reading symbols from
/usr/local/lib/dbmail/libauthdbmail.0...done.
Loaded symbols for
/usr/local/lib/dbmail/libauthdbmail.0
Reading symbols from
/usr/lib/libmysqlclient.so.10...done.
Loaded symbols for /usr/lib/libmysqlclient.so.10
Reading symbols from /usr/lib/libz.so.1...done.
Loaded symbols for /usr/lib/libz.so.1
Reading symbols from /lib/libcrypt.so.1...done.
Loaded symbols for /lib/libcrypt.so.1
Reading symbols from /lib/libnsl.so.1...done.
Loaded symbols for /lib/libnsl.so.1
Reading symbols from /lib/libm.so.6...done.
Loaded symbols for /lib/libm.so.6
Reading symbols from /lib/libc.so.6...done.
Loaded symbols for /lib/libc.so.6
Reading symbols from /lib/ld-linux.so.2...done.
Loaded symbols for /lib/ld-linux.so.2
Reading symbols from /lib/libnss_files.so.2...done.
Loaded symbols for /lib/libnss_files.so.2
Reading symbols from /lib/libnss_db.so.2...done.
Loaded symbols for /lib/libnss_db.so.2
Reading symbols from /usr/lib/libdb3.so.3...done.
Loaded symbols for /usr/lib/libdb3.so.3
Reading symbols from /lib/libnss_dns.so.2...done.
Loaded symbols for /lib/libnss_dns.so.2
Reading symbols from /lib/libresolv.so.2...done.
Loaded symbols for /lib/libresolv.so.2
0xb7d5f4f0 in malloc () from /lib/libc.so.6
(gdb) bt full
#0 0xb7d5f4f0 in malloc () from /lib/libc.so.6
No symbol table info available.
#1 0xb7d5f074 in malloc () from /lib/libc.so.6
No symbol table info available.
#2 0x0804de68 in build_args_array_ext (
originalString=0xbfee486b "FETCH 215071
(BODYSTRUCTURE BODY.PEEK[HEADER])", ci=0xb7eec600)
at imaputil.c:1639
nargs = 6
inquote = 0
quotestart = 0
paridx = 2
argstart = 38
i = 44
parlist = "\0\001\002\001", '\0' ,
"\031£Ð·H\216à·ü9î¿H\216à·H\216à·\030Ç\f\b\0 ", '\0' ,
"\031£Ð·H\216à·\\:î¿H\216à·H\216à·
û\a\b,:î¿^·Õ·\003\0\0\0\021\0\0\0\\:î¿=ÃÕ·H\216à·\030Ç\f\b\0\0\0\0Z
Õ·\0\0\0\0\0\020\0\0¼:î¿q
Õ·\030Ç\f\b\0\200°·\0\220°·\001\0\0\0H\216à·\030Ç\f\b",
'\0' ,
"\021\b\0\0\0\0\0\0\0\0\0\0¡D\001\0\200\201\0\0\001\0\0\0\b\0\0\0\b",
'\0' ...
s = "FETCH 215071 (BODYSTRUCTURE
BODY.PEEK[HEADER])", '\0'
tmp = 0xb7e066c0
"¸fà·¸fà·Èz\v\b\020gà·Ð½\a\bX½\a\bh\024\016\bh\024\016\bØfà·Øfà·àfà·àfà·èfà·èfà·ðfà·ðfà·øfà·øfà·"
lastchar = 0x0
quotedSize = 0
cnt = 7
dataidx = 0
argsize = 6
#3 0x0804ae92 in IMAPClientHandler (ci=0x0) at
imap4.c:322
line = '\0' , "7K\0\0\0\0\0\0\0\0\0\07I", '\0'
, "UPDATE quotas SET traf_imap = traf_imap + '10550'
WHERE uid = '341863'\0ecent_flag,
DATE_FORMAT(FROM_UNIXTIME(date), '%Y-%m-%d %T'), size
, id FROM messages_871 msg"...
tag = 0x0
cpy = 0xbfee486b "FETCH 215071 (BODYSTRUCTURE
BODY.PEEK[HEADER])"
args = (char **) 0x8066ec0
command = 0x0
done = 0
result = -1074902886
i = 3
nfaultyresponses = 0
ud = (imap_userdata_t *) 0x0
newmailbox = {uid = 0, msguidnext = 0, exists
= 0, recent = 0, unseen = 0, flags = 0,
permission = 0, seq_list = 0x0, folder_name = 0x0,
messages_table = 0x0, owner_id = 0}
this_was_noop = 0
#4 0x0807e710 in ?? ()
No symbol table info available.
#5 0xb7e00048 in sys_nerr () from /lib/libc.so.6
No symbol table info available.
Cannot access memory at address 0x43544546
Debug output 2
==============
Attaching to process 19748
Reading symbols from
/usr/local/sbin/dbmail-imapd...done.
Reading symbols from
/usr/local/lib/libdbmail.0...done.
Loaded symbols for /usr/local/lib/libdbmail.0
Reading symbols from
/usr/local/lib/dbmail/libmysqldbmail.0...done.
Loaded symbols for
/usr/local/lib/dbmail/libmysqldbmail.0
Reading symbols from
/usr/local/lib/dbmail/libsortdbmail.0...done.
Loaded symbols for
/usr/local/lib/dbmail/libsortdbmail.0
Reading symbols from
/usr/local/lib/dbmail/libauthdbmail.0...done.
Loaded symbols for
/usr/local/lib/dbmail/libauthdbmail.0
Reading symbols from
/usr/lib/libmysqlclient.so.10...done.
Loaded symbols for /usr/lib/libmysqlclient.so.10
Reading symbols from /usr/lib/libz.so.1...done.
Loaded symbols for /usr/lib/libz.so.1
Reading symbols from /lib/libcrypt.so.1...done.
Loaded symbols for /lib/libcrypt.so.1
Reading symbols from /lib/libnsl.so.1...done.
Loaded symbols for /lib/libnsl.so.1
Reading symbols from /lib/libm.so.6...done.
Loaded symbols for /lib/libm.so.6
Reading symbols from /lib/libc.so.6...done.
Loaded symbols for /lib/libc.so.6
Reading symbols from /lib/ld-linux.so.2...done.
Loaded symbols for /lib/ld-linux.so.2
Reading symbols from /lib/libnss_files.so.2...done.
Loaded symbols for /lib/libnss_files.so.2
Reading symbols from /lib/libnss_db.so.2...done.
Loaded symbols for /lib/libnss_db.so.2
Reading symbols from /usr/lib/libdb3.so.3...done.
Loaded symbols for /usr/lib/libdb3.so.3
Reading symbols from /lib/libnss_dns.so.2...done.
Loaded symbols for /lib/libnss_dns.so.2
Reading symbols from /lib/libresolv.so.2...done.
Loaded symbols for /lib/libresolv.so.2
0xb7e2f4f6 in malloc () from /lib/libc.so.6
(gdb) bt full
#0 0xb7e2f4f6 in malloc () from /lib/libc.so.6
No symbol table info available.
#1 0xb7e2f074 in malloc () from /lib/libc.so.6
No symbol table info available.
#2 0xb7e28152 in open_memstream () from
/lib/libc.so.6
No symbol table info available.
#3 0xb7e8d8ee in vsyslog () from /lib/libc.so.6
No symbol table info available.
Server log for debug output 2
=============================
Feb 17 21:09:31 fenris dbmail/imap4d[19748]:
PerformChildTask(): incoming connection from
[194.46.248.45
(host-194-46-248-45.dsl-ie.utvinternet.net)]
Feb 17 21:09:31 fenris dbmail/imap4d[19748]: COMMAND:
[131 CAPABILITY]
Feb 17 21:09:31 fenris dbmail/imap4d[19748]: COMMAND:
[132 LOGIN xxxxxxxx xxxxxxxx]
Feb 17 21:09:31 fenris dbmail/imap4d[19748]:
authsql.c,auth_validate,175312: logined userid:
Feb 17 21:09:31 fenris dbmail/imap4d[19748]:
_ic_login(): user (id:175312, name xxxxxxxx) tries
login
Feb 17 21:09:31 fenris dbmail/imap4d[19748]:
_ic_login(): user (id 175312, name xxxxxxxx) login
accepted @ 2006-02-17 21:09:31
Feb 17 21:09:31 fenris dbmail/imap4d[19748]: COMMAND:
[133 SELECT INBOX/AUR]
Feb 17 21:09:32 fenris dbmail/imap4d[19748]: COMMAND:
[134 UID FETCH 1:* (UID FLAGS RFC822.SIZE
RFC822.HEADER)]
Feb 17 22:16:26 fenris dbmail/imap4d[19748]:
serverchild.c,active_child_sig_handler: got signal
[14]
Best regards,
Tom Andersen
Paul J Stevens wrote:
> Richard,
>
> At first glance this doesn't look like a loop to me.
I'm sure I don't
> understand the current mime-parsing code (nobody
does really), but still
> I don't see anything obviously suspicious here. If I
read this right I
> see two messages being retreived.
> Next time perhaps you could attach a strace to the
runaway process, or
> better yet, recompile with the -g switch and attach
a gdb session.
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com