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

(ITS#5841) slapd hanging upon shutdown



Full_Name: Ralf Haferkamp
Version: HEAD, RE24
OS: 
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (89.166.134.124)


After doing these two ldapmodify calls, shutting down slapd while the indexing
task is running does not work anymore. slapd just keeps hanging.


# ldapmodify -H ldapi:///
dn: olcDatabase={1}hdb,cn=config
add: olcDbIndex
olcDbIndex: cn eq,sub

The above modification will trigger the indexing task.

# ldapmodify -H ldapi:///
dn: cn=config                                                                   
                                      
replace: olcSizeLimit                                                           
                                      
olcSizeLimit: 10000

When this operation is send while the indexing task is still running, it will
wait for the task to complete. When slapd is shutdown during this timeframe, it
will just lock up. Here is the backtrace of the hanging process:

Thread 3 (Thread 0x7ff2ca2a5950 (LWP 13006)):
#0  0x00007ff2ce07fd59 in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib64/libpthread.so.0
No symbol table info available.
#1  0x00007ff2d02f24fb in ldap_pvt_thread_pool_destroy (tpool=0x853688,
run_pending=1) at ../../../libraries/libldap_r/tpool.c:570
        pool = <value optimized out>
        pptr = (struct ldap_int_thread_pool_s *) 0x885540
        task = <value optimized out>
#2  0x0000000000431f9f in slapd_daemon_task (ptr=<value optimized out>) at
../../../servers/slapd/daemon.c:2591
        l = 2
        last_idle_check = 0
        ebadf = 0
#3  0x00007ff2ce07c070 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#4  0x00007ff2cddef0ed in clone () from /lib64/libc.so.6
No symbol table info available.
#5  0x0000000000000000 in ?? ()
No symbol table info available.

Thread 2 (Thread 0x7ff2c9aa4950 (LWP 13007)):
#0  0x00007ff2ce07fd59 in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib64/libpthread.so.0
No symbol table info available.
#1  0x00007ff2d02f2a4d in ldap_int_thread_pool_wrapper (xpool=<value optimized
out>) at ../../../libraries/libldap_r/tpool.c:654
        pool = (struct ldap_int_thread_pool_s *) 0x885540
        task = (ldap_int_thread_task_t *) 0x0
        work_list = (ldap_int_tpool_plist_t *) 0x1c
        ctx = {ltu_id = 140680742193488, ltu_key = {{ltk_key = 0x4337e0,
ltk_data = 0xb0ee20, ltk_free = 0x4338b0 <conn_counter_destroy>}, {
      ltk_key = 0x488c10, ltk_data = 0xb0ef30, ltk_free = 0x488710
<slap_sl_mem_destroy>}, {ltk_key = 0x4478f0, ltk_data = 0xb0e9d0,
      ltk_free = 0x4476d0 <slap_op_q_destroy>}, {ltk_key = 0x0, ltk_data = 0x0,
ltk_free = 0} <repeats 29 times>}}
        kctx = <value optimized out>
        keyslot = 829
        hash = <value optimized out>
        __PRETTY_FUNCTION__ = "ldap_int_thread_pool_wrapper"
#2  0x00007ff2ce07c070 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#3  0x00007ff2cddef0ed in clone () from /lib64/libc.so.6
No symbol table info available.
#4  0x0000000000000000 in ?? ()
No symbol table info available.

Thread 1 (Thread 0x7ff2d0714710 (LWP 12992)):
#0  0x00007ff2ce07c7b5 in pthread_join () from /lib64/libpthread.so.0
No symbol table info available.
#1  0x000000000042ee3c in slapd_daemon () at
../../../servers/slapd/daemon.c:2656
        listener_tid = 140680750586192
        rc = 0
#2  0x000000000041cd95 in main (argc=7, argv=0x7fffd874b9e8) at
../../../servers/slapd/main.c:948
        i = <value optimized out>
        no_detach = 1
        rc = -12
        urls = 0x854030 "ldap:/// ldapi:///"
        username = 0x0
        groupname = 0x0
        sandbox = 0x0
        syslogUser = 160
        configfile = 0x0
        configdir = 0x854010 "/etc/openldap/slapd.d"
        serverName = 0x7fffd874d63b "lt-slapd"
        scp = <value optimized out>
        scp_entry = <value optimized out>
        debug_unknowns = (char **) 0x0
        syslog_unknowns = (char **) 0x0
        slapd_pid_file_unlink = 1
        slapd_args_file_unlink = 1
        firstopt = <value optimized out>
        __PRETTY_FUNCTION__ = "main"