Cyrus and SASL ldapdb = SIGABRT

Rouven Sacha rouven at blinkenmail.de
Thu Jul 19 09:44:44 EDT 2007


Hi,

I experience frequent, reproducible crashes of my Cyrus Imapd 2.2.13 on
an amd64 Etch machine when i try to authenticate against SASL
auxprop:ldapdb.

I can authenticate using imtest with no problems for once. If i try to
connect to the same imapd process the second time, it aborts.

my setup looks like this:

-------< imapd.conf >----------------------------
sasl_minimum_layer: 1
sasl_auxprop_plugin: ldapdb
sasl_log_level: 255
sasl_ldap_search_base: dc=blinkenlichten,dc=de
sasl_ldapdb_uri: ldapi://%2Fvar%2Frun%2Fldapi
sasl_ldapdb_mech: EXTERNAL
-------------------------------------------------

Software versions:

libsasl2-modules:2.1.22
cyrus-imapd: 2.2.13
libnss-ldap: 251
slapd: 2.3.30

I already changed my libnss-ldap configuration to do oneshot
connections, since people on the list experienced similar looking
problems with libnss-ldap (Cyrus + LDAP = death by 13); with no luck.

gdb says the following:

Program received signal SIGABRT, Aborted.
[Switching to Thread 47987135577712 (LWP 12951)]
0x00002ba4dfe8f07b in raise () from /lib/libc.so.6
#0  0x00002ba4dfe8f07b in raise () from /lib/libc.so.6
#1  0x00002ba4dfe9084e in abort () from /lib/libc.so.6
#2  0x00002ba4dfe88af4 in __assert_fail () from /lib/libc.so.6
#3  0x00002ba4e33541f5 in ?? () from /lib/libnss_ldap.so.2
#4  0x00002ba4e3356217 in ?? () from /lib/libnss_ldap.so.2
#5  0x00002ba4e3356ce9 in ?? () from /lib/libnss_ldap.so.2
#6  0x00002ba4e335716e in ?? () from /lib/libnss_ldap.so.2
#7  0x00002ba4e335771f in _nss_ldap_getgrent_r ()
from /lib/libnss_ldap.so.2
#8  0x00002ba4dff3a57c in __nss_database_lookup () from /lib/libc.so.6
#9  0x00002ba4dfeef74c in getgrent_r () from /lib/libc.so.6
#10 0x00002ba4dff3a21b in __nss_database_lookup () from /lib/libc.so.6
#11 0x00002ba4dfeef052 in getgrent () from /lib/libc.so.6
#12 0x000000000044f845 in lock_sigalrm_handler ()
#13 0x000000000043a8cb in mboxlist_findall ()
#14 0x0000000000415782 in idle_update ()
#15 0x00002ba4df480b4f in do_authorization (s_conn=0x60eab0) at
server.c:1185
#16 0x00002ba4df48107a in sasl_server_step (conn=0x60eab0, 
    clientin=0x7fffcb747470 "username=\"rouven\",realm=
\"server1.blinkenlichten.de\",nonce=
\"pZZlyr4/1qVrb7jO09uHKNbx/0jJarqPqFGMQVhM1no=\",cnonce=\"xFZycI5O6Hg=
\",nc=00000001,qop=auth,digest-uri=\"imap/server1.blinkenlichten.de
\",response"..., clientinlen=<value optimized out>,
serverout=0x7fffcb74c9d0, 
    serveroutlen=<value optimized out>) at server.c:1442
#17 0x000000000043c488 in mboxlist_findall ()
#18 0x000000000041605c in idle_update ()
#19 0x000000000041966f in idle_update ()
#20 0x0000000000419c14 in idle_update ()
#21 0x00000000004072d1 in ?? ()
#22 0x00002ba4dfe7c4ca in __libc_start_main () from /lib/libc.so.6
#23 0x0000000000406a7a in ?? ()
#24 0x00007fffcb74f3f8 in ?? ()
#25 0x0000000000000000 in ?? ()

strace shows the following:

connect(15, {sa_family=AF_FILE, path="/var/run/ldapi"}, 110) = 0
fcntl(15, F_GETFL)                      = 0x802 (flags O_RDWR|
O_NONBLOCK)
fcntl(15, F_SETFL, O_RDWR)              = 0
getpeername(15, {sa_family=AF_FILE, path="/var/run/slapd/ldapi"},
[27735455688556567]) = 0
uname({sys="Linux", node="server1.blinkenlichten.de", ...}) = 0
getegid()                               = 8
geteuid()                               = 102
time(NULL)                              = 1184851022
write(15, "0\30\2\1\1`\23\2\1\3\4\0\243\f\4\10EXTERNAL\4\0", 26) = 26
select(256, [15], [], NULL, NULL)       = 1 (in [15])
read(15, "0\f\2\1\1a\7\n", 8)           = 8
read(15, "\1\0\4\0\4\0", 6)             = 6
time(NULL)                              = 1184851022
time(NULL)                              = 1184851022
write(15, "0I\2\1\2w\31\200\0271.3.6.1.4.1.4203.1.11.3"..., 75) = 75
select(256, [15], [], NULL, NULL)       = 1 (in [15])
read(15, "0B\2\1\2x=\n", 8)             = 8
read(15, "\1\0\4\0\4\0\2134dn:cn=rouven sacha,ou=pe"..., 60) = 60
time(NULL)                              = 1184851022
time(NULL)                              = 1184851022
write(15, "0\201\324\2\1\3cx\0041cn=rouven sacha,ou=peo"..., 215) = 215
select(256, [15], [], NULL, NULL)       = 1 (in [15])
read(15, "0V\2\1\3dQ\4", 8)             = 8
read(15, "1cn=Rouven Sacha,ou=people,dc=bl"..., 80) = 80
select(256, [15], [], NULL, NULL)       = 1 (in [15])
read(15, "0\f\2\1\3e\7\n", 8)           = 8
read(15, "\1\0\4\0\4\0", 6)             = 6
time(NULL)                              = 1184851022
write(15, "0\5\2\1\4B\0", 7)            = 7
close(15)                               = 0
open("/etc/group", O_RDONLY)            = 15
fcntl(15, F_GETFD)                      = 0
fcntl(15, F_SETFD, FD_CLOEXEC)          = 0
lseek(15, 0, SEEK_CUR)                  = 0
fstat(15, {st_mode=S_IFREG|0644, st_size=692, ...}) = 0
mmap(NULL, 692, PROT_READ, MAP_SHARED, 15, 0) = 0x2ad70dca1000
lseek(15, 692, SEEK_SET)                = 692
fstat(15, {st_mode=S_IFREG|0644, st_size=692, ...}) = 0
rt_sigaction(SIGPIPE, {SIG_IGN}, {SIG_IGN}, 8) = 0
rt_sigaction(SIGPIPE, {SIG_IGN}, NULL, 8) = 0
rt_sigaction(SIGPIPE, {SIG_IGN}, {SIG_IGN}, 8) = 0
geteuid()                               = 102
write(2, "imapd: ldap-nss.c:1374: do_init:"..., 108) = 108
rt_sigprocmask(SIG_UNBLOCK, [ABRT], NULL, 8) = 0
tgkill(12959, 12959, SIGABRT)           = 0
--- SIGABRT (Aborted) @ 0 (0) ---
Process 12959 detached

Any hint would be appreciated!

Greets,

Rouven

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Dies ist ein digital signierter Nachrichtenteil
Url : http://lists.andrew.cmu.edu/pipermail/info-cyrus/attachments/20070719/8bf73348/attachment.bin 


More information about the Info-cyrus mailing list