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

Re: (ITS#5940) crash in slapo-rwm when modifying olcRwmRewrite



At a very quick glance of your backtrace, info == 0; you didn´t olcRwmRewiteEngine TRUE?  If it´s the case, the code needs to be reworked in this area.  I can´t look at this now, in the meanwhile try to set it to TRUE as your first slapo-rmw statement.

p.


----- jclarke@linagora.com wrote:
> Full_Name: Jonathan Clarke
> Version: RE24
> OS: CentOS
> URL: ftp://ftp.openldap.org/incoming/
> Submission from: (NULL) (213.41.243.192)
> 
> 
> Hi,
> 
> Given a simple setup involving back-ldap with slapo-rwm on top, modifying the
> attribute "olcRwmRewrite" causes a crash. This seems to happen both while
> modifying an existing value, or when deleting one.
> 
> The config:
> 8<----------------------------
> # {1}ldap, config
> dn: olcDatabase={1}ldap,cn=config
> objectClass: olcDatabaseConfig
> objectClass: olcLDAPConfig
> olcDatabase: {1}ldap
> olcSuffix: o=proxy
> olcAddContentAcl: FALSE
> olcLastMod: FALSE
> olcMaxDerefDepth: 15
> olcReadOnly: FALSE
> olcMonitoring: FALSE
> olcDbURI: "ldap://server.lan";
> olcDbStartTLS: none
> olcDbIDAssertBind: mode=none flags=prescriptive bindmethod=simple timeout=0 ne
>  twork-timeout=0 binddn="cn=administrateur,cn=users,dc=otherdemo,dc=lan" creden
>  tials="secret"
> olcDbRebindAsUser: FALSE
> olcDbChaseReferrals: TRUE
> olcDbTFSupport: no
> olcDbProxyWhoAmI: FALSE
> olcDbSingleConn: FALSE
> olcDbCancel: abandon
> olcDbUseTemporaryConn: FALSE
> olcDbConnectionPoolMax: 16
> olcDbNoRefs: FALSE
> olcDbNoUndefFilter: FALSE
> 
> # {0}rwm, {1}ldap, config
> dn: olcOverlay={0}rwm,olcDatabase={1}ldap,cn=config
> objectClass: olcOverlayConfig
> objectClass: olcRwmConfig
> olcOverlay: {0}rwm
> olcRwmRewrite: {0}rwm-suffixmassage "o=proxy" "dc=otherdemo,dc=lan"
> olcRwmTFSupport: false
> olcRwmNormalizeMapped: FALSE
> 8<----------------------------
> 
> The operation:
> 8<----------------------------
> dn: olcOverlay={0}rwm,olcDatabase={1}ldap,cn=config
> changeType: modify
> replace: olcRwmRewrite
> olcRwmRewrite: {0}rwm-suffixmassage "o=proxy" "dc=demo,dc=lan"
> 
> 8<----------------------------
> 
> 
> GDB output:
> 8<----------------------------
> conn=4 fd=12 ACCEPT from IP=127.0.0.1:45843 (IP=0.0.0.0:389)
> conn=4 op=0 BIND dn="cn=config" method=128
> conn=4 op=0 BIND dn="cn=config" mech=SIMPLE ssf=0
> conn=4 op=0 RESULT tag=97 err=0 text=
> conn=4 op=1 MOD dn="olcOverlay={0}rwm,olcDatabase={1}ldap,cn=config"
> conn=4 op=1 MOD attr=olcRwmRewrite
> slapd: config.c:59: rewrite_parse: Assertion `info != ((void *)0)' failed.
> 
> Program received signal SIGABRT, Aborted.
> [Switching to Thread 1106893120 (LWP 31852)]
> 0x0000003411a30155 in raise () from /lib64/libc.so.6
> (gdb) bt
> #0  0x0000003411a30155 in raise () from /lib64/libc.so.6
> #1  0x0000003411a31bf0 in abort () from /lib64/libc.so.6
> #2  0x0000003411a295d6 in __assert_fail () from /lib64/libc.so.6
> #3  0x00000000004ea899 in rewrite_parse (info=0x0, fname=0x555ec5 "<suffix
> massage>", lineno=1, argc=2, argv=0x41f9a180) at config.c:59
> #4  0x00000000004df8fe in rwm_suffix_massage_config (info=0x7c6a,
> pvnc=0x41f9a220, nvnc=<value optimized out>, prnc=0x41f9a1f0, nrnc=<value
> optimized out>)
>     at rwmconf.c:326
> #5  0x00000000004dc1bd in rwm_suffixmassage_config (be=<value optimized out>,
> fname=0x523789 "slapd", lineno=0, argc=<value optimized out>, 
>     argv=<value optimized out>) at rwm.c:1662
> #6  0x00000000004dc632 in rwm_cf_gen (c=0x41f9a620) at rwm.c:2076
> #7  0x0000000000414b7b in config_set_vals (Conf=0x7abc00, c=0x7c6c) at
> config.c:314
> #8  0x000000000041835d in config_parse_add (ct=0x7abc00, c=0x41f9a620,
> valx=<value optimized out>) at config.c:642
> #9  0x000000000040e63f in config_modify_add (ct=0x7abc00, ca=0x41f9a620,
> ad=<value optimized out>, i=0) at bconfig.c:4806
> #10 0x0000000000410b03 in config_back_modify (op=0x1c8bf360, rs=0x41f9cc20) at
> bconfig.c:5039
> #11 0x0000000000434317 in fe_op_modify (op=0x1c8bf360, rs=0x41f9cc20) at
> modify.c:301
> #12 0x0000000000434a72 in do_modify (op=0x1c8bf360, rs=0x41f9cc20) at
> modify.c:175
> #13 0x000000000041dd2b in connection_operation (ctx=0x41f9cd70, arg_v=<value
> optimized out>) at connection.c:1097
> #14 0x000000000041e207 in connection_read_thread (ctx=0x41f9cd70, argv=<value
> optimized out>) at connection.c:1223
> #15 0x00000000004f906a in ldap_int_thread_pool_wrapper (xpool=0x1c83c2d0) at
> tpool.c:663
> #16 0x00002b6a8d3532f7 in start_thread () from /lib64/libpthread.so.0
> #17 0x0000003411ad1e3d in clone () from /lib64/libc.so.6
> 8<----------------------------
> 
> Let me know if you need any more details, or output from GDB.
> 
> Regards,
> Jonathan
> 
> 



Ing. Pierangelo Masarati
OpenLDAP Core Team

SysNet s.r.l.
via Dossi, 8 - 27100 Pavia - ITALIA
http://www.sys-net.it
-----------------------------------
Office:  +39 02 23998309
Mobile:  +39 333 4963172
Fax:     +39 0382 476497
Email:   ando@sys-net.it
-----------------------------------