[Date Prev][Date Next] [Chronological] [Thread] [Top]

(ITS#3802) Assertion() fails in connection_get()



Full_Name: Sang-Seok Lim
Version: HEAD
OS: SUSE Linux
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (129.34.20.23)


I generated ldap search requests as fast as possible to measure throughput of an
epoll() enabled slapd. Two concurrent connections were established to the slapd
and "bind->single search->unbind" pattern requests were sent to the slapd
repeatedly. Then the slapd compiled with epoll() stopped running abruptly,
showing following assertion fails. 
In addition, there are two notes:
1) When "many search requests/single bind" pattern is used, it works without
fails.
2) slapd compiled with select() fails to complete bind()ing to clients
significant number of times when "bind->single search->unbind" is used. But the
slapd keeps working without any failure.

Stack trace of epoll() version

[New Thread 1074023392 (LWP 27192)]
[New Thread -1209730272 (LWP 27195)]
[New Thread -1205535968 (LWP 27196)]
[New Thread -1191896288 (LWP 27197)]
slapd: ../../../openldap/servers/slapd/connection.c:254: connection_get:
Assertion `c->c_struct_state != 0x00' failed.

Program received signal SIGABRT, Aborted.
[Switching to Thread -1209730272 (LWP 27195)]
0x0fd1e76c in raise () from /lib/tls/libc.so.6
(gdb) thread apply all bt

Thread 4 (Thread -1191896288 (LWP 27197)):
#0  0x0fe3dad4 in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib/tls/libpthread.so.0
#1  0x0fe3dab8 in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib/tls/libpthread.so.0
#2  0x10163900 in ldap_int_thread_pool_wrapper ()
#3  0x0fe3aff4 in start_thread () from /lib/tls/libpthread.so.0
#4  0x0fdb1dc4 in clone () from /lib/tls/libc.so.6

Thread 3 (Thread -1205535968 (LWP 27196)):
#0  0x0fe3dad4 in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib/tls/libpthread.so.0
#1  0x0fe3dab8 in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib/tls/libpthread.so.0
#2  0x10163900 in ldap_int_thread_pool_wrapper ()
#3  0x0fe3aff4 in start_thread () from /lib/tls/libpthread.so.0
#4  0x0fdb1dc4 in clone () from /lib/tls/libc.so.6

Thread 2 (Thread -1209730272 (LWP 27195)):
#0  0x0fd1e76c in raise () from /lib/tls/libc.so.6
#1  0x0fd2007c in abort () from /lib/tls/libc.so.6
#2  0x0fd173b0 in __assert_fail () from /lib/tls/libc.so.6
#3  0x1004492c in connection_get ()
#4  0x100470a0 in connection_read ()
#5  0x10043ab0 in slapd_daemon_task ()
#6  0x0fe3aff4 in start_thread () from /lib/tls/libpthread.so.0
#7  0x0fdb1dc4 in clone () from /lib/tls/libc.so.6

Thread 1 (Thread 1074023392 (LWP 27192)):
#0  0x0fe3b670 in pthread_join () from /lib/tls/libpthread.so.0
#1  0x10164e50 in ldap_pvt_thread_join ()
#2  0x10043e1c in slapd_daemon ()
#3  0x1002d3fc in main ()