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

Re: Plugin configuration problem



On Mon, 2005-08-08 at 22:36 +0200, Pierangelo Masarati wrote:
> Samuel Tran wrote:
> 
> >On Fri, 2005-08-05 at 08:21 +0200, Pierangelo Masarati wrote:
> >  
> >
> >>Don't take it 100% sure because I haven't checked yet, but I fear slapi 
> >>is broken in 2.3.4; in 2.3.5 likely its new implementation will be 
> >>released, where the entire slapi framework actually has become an 
> >>overlay (that will be automatically instantiated the first time a plugin 
> >>is loaded).  If you feel like, I suggest you check HEAD code.  I don't 
> >>guarantee everything to work like a charm, because development is right 
> >>underway, but most of it should be done, and you could provide valuable 
> >>feedback.
> >>
> >>    
> >>
> >
> >Pierangelo,
> >
> >Today I checked out HEAD code and compiled it with '--enable-modules'
> >and '--enable-slapi'. Then I tried my plugin from P-Synch. Likewise when
> >the preoperation type plugin is called (when I change the userPassword
> >attribute for a given user) slapd just crashes with the following error
> >message:
> >
> >[snip]
> >do_modify: dn (uid=joesmith,ou=people,dc=example,dc=com)
> >ber_scanf fmt ({i{m[W]}}) ber:
> >ber_dump: buf=0x082551b0 ptr=0x082551de end=0x082551ff len=33
> >  0000:  30 1f 0a 01 02 30 1a 04  0c 75 73 65 72 70 61 73
> >0....0...userpas  
> >  0010:  73 77 6f 72 64 31 0a 04  08 37 75 38 69 39 6f 30
> >sword1...7u8i9o0  
> >  0020:  70
> >p                 
> >  
> >
> >>>>dnPrettyNormal: <uid=joesmith,ou=people,dc=example,dc=com>
> >>>>        
> >>>>
> >=> ldap_bv2dn(uid=joesmith,ou=people,dc=example,dc=com,0)
> >ldap_err2string
> ><= ldap_bv2dn(uid=joesmith,ou=people,dc=example,dc=com)=0 Success
> >=> ldap_dn2bv(272)
> >ldap_err2string
> ><= ldap_dn2bv(uid=joesmith,ou=people,dc=example,dc=com)=0 Success
> >=> ldap_dn2bv(272)
> >ldap_err2string
> ><= ldap_dn2bv(uid=joesmith,ou=people,dc=example,dc=com)=0 Success
> ><<< dnPrettyNormal: <uid=joesmith,ou=people,dc=example,dc=com>,
> ><uid=joesmith,ou=people,dc=example,dc=com>
> >modifications:
> >        replace: userpassword
> >                one value, length 8
> >bdb_dn2entry("uid=joesmith,ou=people,dc=example,dc=com")
> >ch_strdup((null)) failed
> >slapd: ch_malloc.c:122: ch_strdup: Assertion `0' failed.
> >Aborted
> >
> >Any idea of what is wrong?
> >  
> >
> 
> You should follow instructions at 
> <http://www.openldap.org/faq/data/cache/59.html> and report the problem 
> with as much useful information as possible.  In this specific case, the 
> file/line number of the assertion is nearly useless, but failed 
> assertions, when trapped from inside a debugger, or when inspecting a 
> core file, allow to backtrace to the real cause of the problem, or at 
> least to the point where it happened.
> 

I got a 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