Thank you for your helpful reply. After taking a closer look at some Active Directory attribute values, I discovered a single space character was inserted into several attribute values.
I am able to consistently cause the assertion to occur if a single space character is inserted into either the "homePhone" or "pager" attribute of an Active Directory User object, and then search the meta directory for that object.
Again, the assertion will only occur if "overlay rwm" is used before or within the "database meta" section of my slapd.conf. If I comment or remove the overlay, ldapsearch returns the entry and slapd continues to operate.
ldapsearch -x -W -D 'cn=ef87,ou=users,dc=ad,dc=company,dc=com' -b 'ou=users,dc=ad,dc=company,dc=com' '(uid=ef87)'
gdb /usr/local/libexec/slapd GNU gdb Red Hat Linux (6.5-37.el5_2.2rh) Copyright (C) 2006 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-redhat-linux-gnu"...(no debugging symbols found) Using host libthread_db library "/lib/i686/nosegneg/libthread_db.so.1".
(gdb) r -d0 -h ldap:/// ldaps:/// -f /usr/local/etc/openldap/slapd.conf Starting program: /usr/local/libexec/slapd -d0 -h ldap:/// ldaps:/// -f /usr/local/etc/openldap/slapd.conf (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) [Thread debugging using libthread_db enabled] (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) [New Thread -1208486192 (LWP 9744)] (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) [New Thread -1224119408 (LWP 9747)] [New Thread -1228317808 (LWP 9748)] [New Thread -1232516208 (LWP 9749)] [New Thread -1236714608 (LWP 9750)] [New Thread -1240913008 (LWP 9751)] slapd: attr.c:141: attr_dup: Assertion `j == i' failed.
Program received signal SIGABRT, Aborted. [Switching to Thread -1228317808 (LWP 9748)] 0x00be8402 in __kernel_vsyscall () (gdb) bt full #0 0x00be8402 in __kernel_vsyscall () No symbol table info available. #1 0x0089ef20 in raise () from /lib/i686/nosegneg/libc.so.6 No symbol table info available. #2 0x008a0901 in abort () from /lib/i686/nosegneg/libc.so.6 No symbol table info available. #3 0x008982fb in __assert_fail () from /lib/i686/nosegneg/libc.so.6 No symbol table info available. #4 0x0807dd03 in attr_dup () No symbol table info available. #5 0x0807ddc8 in attrs_dup () No symbol table info available. #6 0x0807e3b4 in entry_dup () No symbol table info available. #7 0x0817d868 in rwm_initialize () No symbol table info available. #8 0x080cc3d2 in glue_sub_add () No symbol table info available. #9 0x0808416f in slap_send_search_entry () No symbol table info available. #10 0x080f84f2 in meta_back_search () No symbol table info available. #11 0x080cc5d1 in overlay_op_walk () No symbol table info available. #12 0x080cc9bd in overlay_destroy_one () No symbol table info available. #13 0x0807716f in fe_op_search () No symbol table info available. #14 0x08077a90 in do_search () No symbol table info available. #15 0x080752d2 in connection2anonymous () No symbol table info available. #16 0x0819d923 in ldap_pvt_thread_pool_submit () No symbol table info available. #17 0x009f2482 in start_thread () from /lib/i686/nosegneg/libpthread.so.0 No symbol table info available. #18 0x00948c8e in clone () from /lib/i686/nosegneg/libc.so.6 No symbol table info available. (gdb)
--- On Wed, 7/16/08, Pierangelo Masarati ando@sys-net.it wrote:
From: Pierangelo Masarati ando@sys-net.it Subject: Re: overlay rwm crashing server To: ef87@yahoo.com Cc: openldap-software@openldap.org Date: Wednesday, July 16, 2008, 11:41 PM Eric wrote:
Oops. I have removed all "overlay rwm"
statements from my slapd.conf that are not following a "database" directive.
That's not strictly needed, as I said. However, I could not reproduce your issue. When you get a crash, you should always provide a stack backtrace, and be prepared to provide information about the contents of the stack. Did you get a core dump, and is it still available? It would be useful to understand what attribute caused the issue you noticed, and as a consequence of what operation.
p.
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 Email: ando@sys-net.it