Postfix's smtpd segfaults during LDAP recipient maps lookup (64 bit)
Christoph Brüser
brueser at hia.rwth-aachen.de
Tue Nov 10 09:33:41 CET 2009
Hi all,
I have been setting up a Kolab 2.2.2 server on an Ubuntu 8.04 (64 bit)
server. The machine is a quad-core Xeon running at 2.33 GHz. I built and
bootstrapped Kolab from source which worked flawlessly.
However, I am now experiencing a strange bug in Postfix's smtpd demon.
Whenever a client tries to send an e-mail through the Postfix server the
smtpd process that handles the connection segfaults. The postfix.log
snippet pasted below shows that the demon crashes after/while trying to
connect to the local LDAP server to check the recipient maps.
postfix.log
===========
....
postfix/smtpd[28099]: >>> CHECKING RECIPIENT MAPS <<<
postfix/smtpd[28099]: ctable_locate: leave existing entry key
test1 at medit.intern
postfix/smtpd[28099]: maps_find: recipient_canonical_maps:
test1 at medit.intern: not found
postfix/smtpd[28099]: maps_find: recipient_canonical_maps: test1: not found
postfix/smtpd[28099]: maps_find: recipient_canonical_maps:
@medit.intern: not found
postfix/smtpd[28099]: mail_addr_find: test1 at medit.intern -> (not found)
postfix/smtpd[28099]: maps_find: canonical_maps: test1 at medit.intern: not
found
postfix/smtpd[28099]: maps_find: canonical_maps: test1: not found
postfix/smtpd[28099]: maps_find: canonical_maps: @medit.intern: not found
postfix/smtpd[28099]: mail_addr_find: test1 at medit.intern -> (not found)
postfix/smtpd[28099]: dict_ldap_lookup: In dict_ldap_lookup
postfix/smtpd[28099]: dict_ldap_lookup: No existing connection for LDAP
source /kolab/etc/postfix/ldapdistlist.cf, reopening
postfix/smtpd[28099]: dict_ldap_connect: Connecting to server
ldap://127.0.0.1:389
postfix/master[27949]: warning: process /kolab/libexec/postfix/smtpd pid
28099 killed by signal 11
I have also captured the output of ltrace for the smtpd process which
shows that the cause for the segfault is a memmove() call with a source
adress of -1.
ltrace output
=============
....
strlen("dict_ldap_connect: Connecting to"...) = 61
gettimeofday(0x7fff30585810, NULL) = 0
write(7, "Nov 10 09:14:10 lothlorien <info"..., 117) = 117
setrlimit(1, 0x7fff30586400, 0, -1, 117) = 0
calloc(1, 272) = 0xa919a0
memmove(0xa919a8, 0x9710c0, 168, 0xa91ab8, 0) = 0xa919a8
malloc(16) = 0xa09580
memmove(0xa09580, -1, 16, 0x7f7c27afba50, 0 <unfinished ...>
--- SIGSEGV (Segmentation fault) ---
+++ killed by SIGSEGV +++
Interestingly, the bug only occurs with remote clients, i.e. SMTP
connections from 127.0.0.1 do not cause cause this crash. Hence, sending
mails by means of the webclient works while sending mails through
Outlook and Kontakt does not.
I suppose that this might be a 64 bit issue. Does anybody have any
pointers or possible solutions for this problem?
Any help is greatly appreciated. Thanks!
Best regards
Christoph
--
--------------------------------------------------------------------------
Dipl.-Ing. Christoph Brüser
Lehrstuhl fuer Medizinische Informationstechnik
Helmholtz-Institut fuer Biomedizinische Technik
RWTH Aachen
Pauwelsstr. 20, D-52074 Aachen
---
Web: http://www.medit.hia.rwth-aachen.de/
Tel: +49-(0)241-80 23203
Fax: +49-(0)241-80 82442
email: brueser at hia.rwth-aachen.de
--------------------------------------------------------------------------
More information about the users
mailing list