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

(ITS#3924) slapd dies when using SLAPI plugins



Full_Name: Samuel Tran
Version: 2.3.4 and HEAD as of 08/08/2005
OS: Debian Linux Sarge
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (66.114.85.133)


I compiled OpenLDAP with '--enable-modules' and '--enable-slapi'.

Then in slapd.conf I configured my p-synch (MTech) plugins for password change
synchronization:

plugin preoperation "/usr/local/psunix/passwdop/passwdop.openldap.linux.x86"
prepasswd_init "-cfgfile /etc/psynch.conf" "-debuglevel debug" "-logfile
/var/log/psynch_ldap.log"

plugin postoperation "/usr/local/psunix/passwdop/passwdop.openldap.linux.x86"
postpasswd_init "-cfgfile /etc/psynch.conf" "-debuglevel debug" "-logfile
/var/log/psynch_ldap.log"

The first plugin performs a password strength check via the p-synch server while
the second plugin synch performs the password propagation to the other
directories via the p-synch server.

When I change the userPassword attribute for a given user slapd just crashes.
Here is the stack back trace using gdb:

stran@educ236:/usr/local/src/openldap_2.3.x_20050808/servers/slapd/.libs
$ sudo gdb ./slapd
GNU gdb 6.3-debian
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you
are
welcome to change it and/or distribute copies of it under certain
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for
details.
This GDB was configured as "i386-linux"...Using host libthread_db
library "/lib/tls/libthread_db.so.1".

(gdb) set width 70
(gdb) run -d 0 -f /etc/openldap/slapd.conf
Starting
program: /usr/local/src/openldap_2.3.x_20050808/servers/slapd/.libs/slapd -d 0
-f /etc/openldap/slapd.conf
[Thread debugging using libthread_db enabled]
[New Thread 1078075520 (LWP 3347)]
/etc/openldap/slapd.conf: line 178: warning: cannot assess the validity
of the ACL scope within backend naming context
/etc/openldap/slapd.conf: line 207: warning: cannot assess the validity
of the ACL scope within backend naming context
/etc/openldap/slapd.conf: line 244: warning: cannot assess the validity
of the ACL scope within backend naming context
[New Thread 1088740272 (LWP 3350)]
[New Thread 1097128880 (LWP 3351)]
slapd: ch_malloc.c:122: ch_strdup: Assertion `0' failed.

Program received signal SIGABRT, Aborted.
[Switching to Thread 1097128880 (LWP 3351)]
0x402fd83b in raise () from /lib/tls/libc.so.6
(gdb) bt full
#0  0x402fd83b in raise () from /lib/tls/libc.so.6
No symbol table info available.
#1  0x402fefa2 in abort () from /lib/tls/libc.so.6
No symbol table info available.
#2  0x402f72df in __assert_fail () from /lib/tls/libc.so.6
No symbol table info available.
#3  0x080852af in ch_strdup (string=0x0) at ch_malloc.c:122
        new = 0x0
#4  0x081225bf in slapi_int_modifications2ldapmods (
    pmodlist=0x82565cc) at slapi_utils.c:2723
        ml = (Modifications *) 0x82552e0
        modlist = (Modifications *) 0x8255278
        mods = (LDAPMod **) 0x8255440
        i = 1
        j = 1
#5  0x08119d6e in pblock_get (pb=0x825b3e8, param=90, 
    value=0x4164b344) at slapi_pblock.c:610
        attrs = (char **) 0x81f8a40
        rc = 0
#6  0x40503551 in FilterMod ()
   from /usr/local/psunix/passwdop/passwdop.openldap.linux.x86
No symbol table info available.
#7  0x4050394c in PasswordStrengthCheck ()
   from /usr/local/psunix/passwdop/passwdop.openldap.linux.x86
No symbol table info available.
#8  0x08119008 in slapi_int_call_plugins (be=0x0, funcType=-96, 
    pPB=0x825b3e8) at plugin.c:605
        rc = 0
        pGetPlugin = (SLAPI_FUNC *) 0x8255430
        tmpPlugin = (SLAPI_FUNC *) 0x8255430
#9  0x08127c54 in slapi_op_func (op=0x82565a8, rs=0x4164d8b0)
    at slapi_overlay.c:603
        pb = (Slapi_PBlock *) 0x825b3e8
        which = op_modify
        opinfo = (struct slapi_op_info *) 0x8183dd0
        rc = 80
        oi = (slap_overinfo *) 0x6
        on = (slap_overinst *) 0x0
        cb = {sc_next = 0x4164c440, 
  sc_response = 0x8127a20 <slapi_over_response>, 
  sc_cleanup = 0x8127ac0 <slapi_over_cleanup>, 
  sc_private = 0x825b3e8}
        internal_op = 0
        preop_type = 6
        postop_type = 505
        be = (BackendDB *) 0x4164c450
#10 0x080bb9f5 in overlay_op_walk (op=0x82565a8, rs=0x4164d8b0, 
    which=op_modify, oi=0x0, on=0x81f83b8) at backover.c:480
        func = (BI_op_bind **) 0x6
        rc = 32768
#11 0x080bbacd in over_op_func (op=0x82565a8, rs=0x0, which=op_bind)
    at backover.c:540
        oi = (slap_overinfo *) 0x6
        on = (slap_overinst *) 0x81f83b8
        be = (BackendDB *) 0x81ce130
        db = {bd_info = 0x81f83b8, 
  be_ctrls = "\000\001\000\000\000\001\000\000\001\000\000\001\001\000
\001", '\0' <repeats 17 times>, "\001", be_flags = 256, 
  be_restrictops = 0, be_requires = 0, be_ssf_set = {sss_ssf = 0, 
    sss_transport = 0, sss_tls = 0, sss_sasl = 0, 
    sss_update_ssf = 0, sss_update_transport = 0, 
    sss_update_tls = 0, sss_update_sasl = 0, sss_simple_bind = 0}, 
  be_suffix = 0x81f56e8, be_nsuffix = 0x81f5960, be_schemadn = {
    bv_len = 0, bv_val = 0x0}, be_schemandn = {bv_len = 0, 
    bv_val = 0x0}, be_rootdn = {bv_len = 25, 
    bv_val = 0x81ce598 "cn=Manager,dc=example,dc=com"}, be_rootndn = {
    bv_len = 25, bv_val = 0x81ce5d0 "cn=manager,dc=example,dc=com"}, 
  be_rootpw = {bv_len = 38, 
    bv_val = 0x81f42c0 "{SSHA}xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}, 
  be_max_deref_depth = 15, be_def_limit = {lms_t_soft = 3600, 
    lms_t_hard = 0, lms_s_soft = 5000, lms_s_hard = 0, 
    lms_s_unchecked = -1, lms_s_pr = 0, lms_s_pr_hide = 0, 
    lms_s_pr_total = 0}, be_limits = 0x0, be_acl = 0x81ceb78, 
  be_dfltaccess = ACL_READ, be_replica = 0x0, be_replogfile = 0x0, 
  be_update_ndn = {bv_len = 0, bv_val = 0x0}, be_update_refs = 0x0, 
  be_pending_csn_list = 0x82487a8, be_pcl_mutex = {__m_reserved = 0, 
    __m_count = 0, __m_owner = 0x0, __m_kind = 0, __m_lock = {
      __status = 0, __spinlock = 0}}, be_pcl_mutexp = 0x81ce200, 
  be_syncinfo = 0x0, be_pb = 0x81f84b8, be_cf_ocs = 0x8183540, 
  be_private = 0x81ce238, be_next = {stqe_next = 0x0}}
        cb = {sc_next = 0x4164c5d0, 
  sc_response = 0x80bb380 <over_back_response>, sc_cleanup = 0, 
  sc_private = 0x81f82c0}
        rc = 0
#12 0x080bbc01 in over_op_modify (op=0x0, rs=0x0) at backover.c:574
No locals.
#13 0x08081a59 in fe_op_modify (op=0x82565a8, rs=0x4164d8b0)
    at modify.c:419
        cb = {sc_next = 0x0, 
  sc_response = 0x8079ac0 <slap_replog_cb>, sc_cleanup = 0, 
  sc_private = 0x0}
        repl_user = 0
        tmp = (Modifications *) 0x100
        manageDSAit = 256
        modlist = (Modifications *) 0x8255278
        modtail = (Modifications **) 0x8255290
        increment = 0
        textbuf = '\0' <repeats 132 times>, "x/\033\b\f\000\000\000÷Q%
\b", '\0' <repeats 12 times>, "\n\000\000\000\021\000\000\000\b\000\000
\000\a\000\000\000xR%\b¨e%\b\220R%\bøÖdA)(\b\b \216\032\bØ\204%
\bÄØdA0×dA\030R%\bÈÖdA_\220:@\a\000\000\000\200\034\023\bØÖdAH0\033\bðñ
\a\b\a\000\000\000\000Ä\t\b\001\000\000\0004âdA"
#14 0x0808122b in do_modify (op=0x82565a8, rs=0x4164d8b0)
    at modify.c:200
        mop = 2
        tmp = {sml_mod = {sm_op = 0, sm_flags = 0, 
    sm_desc = 0x812cbc9, sm_type = {bv_len = 12, 
      bv_val = 0x82551f7 "userpassword"}, sm_values = 0x82584d8, 
    sm_nvalues = 0x0}, sml_next = 0x0}
        mod = (Modifications *) 0xd17
        dn = {bv_len = 37, 
  bv_val = 0x82551c7 "uid=joesmith,ou=people,dc=example,dc=com"}
        last = 0x825520f ""
        tag = 0
        len = 31
        modlist = (Modifications *) 0x8255278
        modtail = (Modifications **) 0x8255290
        increment = 0
        textbuf = "Dx4@\000\000\000\000\016\000\000\000\230x@@@x@@
\210x@@@x@@@x@@°\210%\b\003\000\000\000\020\000\000\000@x@@\200n@@@x@@
\001\000\000\000¸×dACl4@@x@@\b\000\000\000\004\035'@X\t%@\b\000\000\000H
\001\000\000oD\032@\b\000\000\000@x@@\004\035'@£@\032@\b\000\000\000X\t%
@H\001\000\000\br\006@À\210%\b\000\v\v\bð×dA\004\035'@\020T\033\b\001
\000\000\000X\t%@ô\031\034@\b\000\000\000X\t%@H\001\000\000L±\006@°\204%
\bÈf%\b(ØdA\000\000\000\000À\210%\b\000\000\000\000"...
#15 0x0806d0ff in connection_operation (ctx=0x4164d940, 
    arg_v=0x82565a8) at connection.c:1049
        rc = 0
        rs = {sr_type = REP_RESULT, sr_tag = 0, sr_msgid = 0, 
  sr_err = 0, sr_matched = 0x0, sr_text = 0x0, sr_ref = 0x0, 
  sr_ctrls = 0x0, sr_un = {sru_sasl = {r_sasldata = 0x0}, 
    sru_extended = {r_rspoid = 0x0, r_rspdata = 0x0}, sru_search = {
      r_entry = 0x0, r_attr_flags = 0, r_operational_attrs = 0x0, 
      r_attrs = 0x0, r_nentries = 0, r_v2ref = 0x0}}, sr_flags = 0}
        tag = 102
        opidx = 5
        conn = (Connection *) 0x405f4520
        memctx = (void *) 0x8255218
        memctx_null = (void *) 0x0
#16 0x4002f888 in ldap_int_thread_pool_wrapper (xpool=0x81b51e0)
    at tpool.c:478
        ctx = (ldap_int_thread_ctx_t *) 0x8254f30
        ltc_key = {{ltk_key = 0x80b0b00, ltk_data = 0x8255218, 
    ltk_free = 0x80b09d0 <slap_sl_mem_destroy>}, {
    ltk_key = 0x8253668, ltk_data = 0x11, 
    ltk_free = 0x80e6180 <bdb_locker_id_free>}, {
    ltk_key = 0x8253669, ltk_data = 0x8256d70, 
    ltk_free = 0x80e5ee0 <bdb_txn_free>}, {ltk_key = 0x80ae0e0, 
    ltk_data = 0x0, ltk_free = 0}, {ltk_key = 0x80cac90, 
    ltk_data = 0x4174f008,    ltk_free = 0x80cac70 <search_stack_free>},
{ltk_key = 0x0, 
    ltk_data = 0x0, ltk_free = 0} <repeats 27 times>}
        tid = 1097128880
        i = 136662832
        keyslot = 560
        hash = 3351
#17 0x402cab63 in start_thread () from /lib/tls/libpthread.so.0
No symbol table info available.
#18 0x403ad18a in clone () from /lib/tls/libc.so.6
No symbol table info available.


Sam