[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: slapd-ldap killed by a broken client (ITS#4117)
On Lun 7 novembre 2005 17:29, Pierangelo Masarati wrote:
>
>> On Ven 4 novembre 2005 19:17, Kurt@OpenLDAP.org wrote:
>>> Before running slapd in the gdb, you should tell the
>>> gdb to pass all (excepting those gdb uses) to the
>>> program without stopping. That is,
>>> handle all pass nostop
>>> You might also want to avoid printing certain signals,
>>> that is,
>>> handle SIGHUP noprint
>>> handle SIGPIPE noprint
>>
>> I tried that, but I didn't get any really useful information:
>>
>> slapd: io.c:210: ber_flush: Assertion `( (sb)->sb_opts.lbo_valid == 0x3
>> )'
>
>
> I saw these issues quite a while a go, when I started a big project based
> on back-ldap and back-meta; it resulted in lots of work in libldap to
> prevent concurrency issues and more, which eventually made it into HEAD
> and RE23. I definitely suggest you try 2.3.11, which is way more robust
> with respect to reentrancy of libldap; moreover, all the proxy code is
> much better. I'd appreciate if you could try HEAD code as well; there are
> more improvements which should make it into 2.3.12 shortly. If the
> problem persists, we can further investigate the issue.
It seems to work with 2.3.11, but I can't exactly reproduce my configuration:
- if I launch slapd with -h "ldap://*:389 ldaps://*:636" I can't open any
connection. My ldapsearch client is hanged in ldap_int_select. Note that I
haven't any TLS directive in my slapd.conf (ok, it is strange, but it used
to work in 2.2.28) [*]
- if I launch slapd with -h "ldap://*:389 ldap://*:636" (stupid, just for
testing purpose), all works fine.
Raphael Ouazana.
[*] If I hit Ctrl-C, I can have some debugging info :
Program received signal SIGINT, Interrupt.
[Switching to Thread -1218521408 (LWP 7111)]
0x006d8c68 in pthread_join () from /lib/tls/libpthread.so.0
(gdb) thread apply all bt
Thread 2 (Thread -1218905168 (LWP 7118)):
#0 0x006dc7f9 in __lll_mutex_lock_wait () from /lib/tls/libpthread.so.0
#1 0x006d97e7 in _L_mutex_lock_28 () from /lib/tls/libpthread.so.0
#2 0x00000000 in ?? ()
Thread 1 (Thread -1218521408 (LWP 7111)):
#0 0x006d8c68 in pthread_join () from /lib/tls/libpthread.so.0
#1 0x08059595 in slapd_daemon () at daemon.c:2056
#2 0x0804cba4 in main (argc=7, argv=0xbfffa7b4) at main.c:767
(gdb) thread apply all bt full
Thread 2 (Thread -1218905168 (LWP 7118)):
#0 0x006dc7f9 in __lll_mutex_lock_wait () from /lib/tls/libpthread.so.0
No symbol table info available.
#1 0x006d97e7 in _L_mutex_lock_28 () from /lib/tls/libpthread.so.0
No symbol table info available.
#2 0x00000000 in ?? ()
No symbol table info available.
Thread 1 (Thread -1218521408 (LWP 7111)):
#0 0x006d8c68 in pthread_join () from /lib/tls/libpthread.so.0
No symbol table info available.
#1 0x08059595 in slapd_daemon () at daemon.c:2056
listener_tid = 3076062128
rc = 0
#2 0x0804cba4 in main (argc=7, argv=0xbfffa7b4) at main.c:767
def_ctx = (void *) 0x0
i = 7
no_detach = 1
rc = 1
urls = 0xa070008 "ldap://*:389 ldaps://*:636"
username = 0x0
groupname = 0x0
sandbox = 0x0
syslogUser = 160
configfile = 0xa070028 "/tmp/openldap-2.3.11/slapd.conf"
configdir = 0x0
serverName = 0xbfffdbec "slapd"
scp = (struct sync_cookie *) 0x7
scp_entry = (struct sync_cookie *) 0xfffffffc
l = 168708056