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
Attachment:
signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil
---- Cyrus Home Page: http://cyrusimap.web.cmu.edu/ Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html