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

Re: Antw: Cannot add to mdb



Hi!

"Error accessing memory address 0x7ffff73ed000: Bad address." looks like either corrupted stack, or compiler optimization to me. Maybe you could try to compile with -O0, just for debugging purposes. Also as there a many threads active, you could try for each thread:
"thread n" where n is the thread ID of gdb
"bt"

Regards,
Ulrich

>>> Da Rock <openldap-technical@herveybayaustralia.com.au> schrieb am 29.11.2014 um
13:49 in Nachricht <5479C0C5.4040506@herveybayaustralia.com.au>:
> On 27/11/2014 01:39, Ulrich Windl wrote:
>> If gdb is attached to the process ("attach <PID>"), you can examine the CPU 
> registers and the memory. Specifically the call stack. If a specific routine 
> uses all the CPU, it's very likely that gdb will find that active routine and 
> where it was called from. Together with local variables (info locals), a 
> developer could find out what's wrong. Maybe you'll have to combine "-g" with 
> "-O0" for more reliable results.
>>
>> You'll get a coredump by something like kill -BUS <pid> (check ulimit -c also 
> before starting the process), and you can detach gdb from the process after 
> inspection.
> Apologies for the delay - had some technical difficulties to take care of.
> 
> So here's what I have so far:
> 
> GNU gdb 6.1.1 [FreeBSD]
> 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 "amd64-marcel-freebsd"...(no debugging 
> symbols found)...
> Attaching to program: /usr/local/libexec/slapd, process 1326
> Reading symbols from /usr/local/lib/libldap_r-2.4.so.2...(no debugging 
> symbols found)...done.
> Loaded symbols for /usr/local/lib/libldap_r-2.4.so.2
> Reading symbols from /usr/local/lib/liblber-2.4.so.2...(no debugging 
> symbols found)...done.
> Loaded symbols for /usr/local/lib/liblber-2.4.so.2
> Reading symbols from /usr/local/lib/libltdl.so.7...(no debugging symbols 
> found)...done.
> Loaded symbols for /usr/local/lib/libltdl.so.7
> Reading symbols from /usr/local/lib/libdb-5.3.so.0...(no debugging 
> symbols found)...done.
> Loaded symbols for /usr/local/lib/libdb-5.3.so.0
> Reading symbols from /usr/local/lib/libsasl2.so.3...(no debugging 
> symbols found)...done.
> Loaded symbols for /usr/local/lib/libsasl2.so.3
> Reading symbols from /lib/libcrypt.so.5...(no debugging symbols 
> found)...done.
> Loaded symbols for /lib/libcrypt.so.5
> Reading symbols from /usr/lib/libwrap.so.6...(no debugging symbols 
> found)...done.
> Loaded symbols for /usr/lib/libwrap.so.6
> Reading symbols from /usr/local/lib/libssl.so.8...(no debugging symbols 
> found)...done.
> Loaded symbols for /usr/local/lib/libssl.so.8
> Reading symbols from /usr/local/lib/libcrypto.so.8...(no debugging 
> symbols found)...done.
> Loaded symbols for /usr/local/lib/libcrypto.so.8
> Reading symbols from /lib/libthr.so.3...(no debugging symbols found)...done.
> [New Thread 802ce9800 (LWP 100233/slapd)]
> [New Thread 802ce9400 (LWP 100232/slapd)]
> [New Thread 802ce9000 (LWP 100231/slapd)]
> [New Thread 802ce8c00 (LWP 100230/slapd)]
> [New Thread 802ce8800 (LWP 100229/slapd)]
> [New Thread 802ce8400 (LWP 100228/slapd)]
> [New Thread 802ce8000 (LWP 100227/slapd)]
> [New Thread 802ce7c00 (LWP 100226/slapd)]
> [New Thread 8093a3400 (LWP 100210/slapd)]
> [New Thread 802ce7800 (LWP 100209/slapd)]
> [New Thread 802ce7400 (LWP 100197/slapd)]
> [New Thread 802ce7000 (LWP 100196/slapd)]
> [New Thread 802ce6c00 (LWP 100194/slapd)]
> [New Thread 802ce6800 (LWP 100090/slapd)]
> [New Thread 802ce6400 (LWP 100089/slapd)]
> [New Thread 802c0dc00 (LWP 100088/slapd)]
> [New Thread 802c07400 (LWP 100081/slapd)]
> Loaded symbols for /lib/libthr.so.3
> Reading symbols from /lib/libc.so.7...(no debugging symbols found)...done.
> Loaded symbols for /lib/libc.so.7
> Reading symbols from /usr/lib/libssl.so.6...(no debugging symbols 
> found)...done.
> Loaded symbols for /usr/lib/libssl.so.6
> Reading symbols from /lib/libcrypto.so.6...(no debugging symbols 
> found)...done.
> Loaded symbols for /lib/libcrypto.so.6
> Reading symbols from /usr/local/lib/sasl2/libanonymous.so.3...(no 
> debugging symbols found)...done.
> Loaded symbols for /usr/local/lib/sasl2/libanonymous.so.3
> Reading symbols from /usr/local/lib/sasl2/libcrammd5.so.3...(no 
> debugging symbols found)...done.
> Loaded symbols for /usr/local/lib/sasl2/libcrammd5.so.3
> Reading symbols from /usr/local/lib/sasl2/libdigestmd5.so.3...(no 
> debugging symbols found)...done.
> Loaded symbols for /usr/local/lib/sasl2/libdigestmd5.so.3
> Reading symbols from /usr/local/lib/sasl2/liblogin.so.3...(no debugging 
> symbols found)...done.
> Loaded symbols for /usr/local/lib/sasl2/liblogin.so.3
> Reading symbols from /usr/local/lib/sasl2/libscram.so.3...(no debugging 
> symbols found)...done.
> Loaded symbols for /usr/local/lib/sasl2/libscram.so.3
> Reading symbols from /usr/local/lib/sasl2/libntlm.so.3...(no debugging 
> symbols found)...done.
> Loaded symbols for /usr/local/lib/sasl2/libntlm.so.3
> Reading symbols from /usr/local/lib/sasl2/libotp.so.3...(no debugging 
> symbols found)...done.
> Loaded symbols for /usr/local/lib/sasl2/libotp.so.3
> Reading symbols from /usr/lib/libopie.so.7...(no debugging symbols 
> found)...done.
> Loaded symbols for /usr/lib/libopie.so.7
> Reading symbols from /lib/libmd.so.5...(no debugging symbols found)...done.
> Loaded symbols for /lib/libmd.so.5
> Reading symbols from /usr/local/lib/sasl2/libplain.so.3...(no debugging 
> symbols found)...done.
> Loaded symbols for /usr/local/lib/sasl2/libplain.so.3
> Reading symbols from /usr/local/lib/sasl2/libsasldb.so.3...(no debugging 
> symbols found)...done.
> Loaded symbols for /usr/local/lib/sasl2/libsasldb.so.3
> Reading symbols from /usr/local/lib/sasl2/libgssapiv2.so...(no debugging 
> symbols found)...done.
> Loaded symbols for /usr/local/lib/sasl2/libgssapiv2.so
> Reading symbols from /usr/lib/libgssapi.so.10...(no debugging symbols 
> found)...done.
> Loaded symbols for /usr/lib/libgssapi.so.10
> Reading symbols from /usr/lib/libheimntlm.so.10...(no debugging symbols 
> found)...done.
> Loaded symbols for /usr/lib/libheimntlm.so.10
> Reading symbols from /usr/local/lib/libkrb5.so...(no debugging symbols 
> found)...done.
> Loaded symbols for /usr/local/lib/libkrb5.so
> Reading symbols from /usr/lib/libhx509.so.10...(no debugging symbols 
> found)...done.
> Loaded symbols for /usr/lib/libhx509.so.10
> Reading symbols from /usr/local/lib/libcom_err.so...(no debugging 
> symbols found)...done.
> Loaded symbols for /usr/local/lib/libcom_err.so
> Reading symbols from /usr/lib/libasn1.so.10...(no debugging symbols 
> found)...done.
> Loaded symbols for /usr/lib/libasn1.so.10
> Reading symbols from /usr/lib/libroken.so.10...(no debugging symbols 
> found)...done.
> Loaded symbols for /usr/lib/libroken.so.10
> Reading symbols from /usr/lib/libkrb5.so.10...(no debugging symbols 
> found)...done.
> Loaded symbols for /usr/lib/libkrb5.so.10
> Reading symbols from /usr/local/lib/libk5crypto.so...(no debugging 
> symbols found)...done.
> Loaded symbols for /usr/local/lib/libk5crypto.so
> Reading symbols from /usr/local/lib/libkrb5support.so...(no debugging 
> symbols found)...done.
> Loaded symbols for /usr/local/lib/libkrb5support.so
> Reading symbols from /usr/local/lib/libintl.so.9...(no debugging symbols 
> found)...done.
> Loaded symbols for /usr/local/lib/libintl.so.9
> Reading symbols from /usr/lib/libcom_err.so.5...(no debugging symbols 
> found)...done.
> Loaded symbols for /usr/lib/libcom_err.so.5
> Reading symbols from /usr/local/lib/libiconv.so.3...(no debugging 
> symbols found)...done.
> Loaded symbols for /usr/local/lib/libiconv.so.3
> Reading symbols from /usr/local/libexec/openldap/back_mdb-2.4.so.2...(no 
> debugging symbols found)...done.
> Loaded symbols for /usr/local/libexec/openldap/back_mdb-2.4.so.2
> Reading symbols from /usr/local/libexec/openldap/back_bdb-2.4.so.2...(no 
> debugging symbols found)...done.
> Loaded symbols for /usr/local/libexec/openldap/back_bdb-2.4.so.2
> Reading symbols from /usr/local/libexec/openldap/back_hdb-2.4.so.2...(no 
> debugging symbols found)...done.
> Loaded symbols for /usr/local/libexec/openldap/back_hdb-2.4.so.2
> Reading symbols from 
> /usr/local/libexec/openldap/back_ldap-2.4.so.2...(no debugging symbols 
> found)...done.
> Loaded symbols for /usr/local/libexec/openldap/back_ldap-2.4.so.2
> Reading symbols from /usr/lib/libz.so...(no debugging symbols found)...done.
> Loaded symbols for /usr/lib/libz.so
> Reading symbols from /libexec/ld-elf.so.1...(no debugging symbols 
> found)...done.
> Loaded symbols for /libexec/ld-elf.so.1
> [Switching to Thread 802ce9800 (LWP 100233/slapd)]
> 0x000000080200187c in pthread_kill () from /lib/libthr.so.3
> (gdb) bt
> #0  0x000000080200187c in pthread_kill () from /lib/libthr.so.3
> #1  0x0000000801ffbb25 in pthread_getschedparam () from /lib/libthr.so.3
> #2  0x0000000802003c8d in pthread_cond_signal () from /lib/libthr.so.3
> #3  0x000000080097c868 in ldap_pvt_thread_pool_submit ()
>     from /usr/local/lib/libldap_r-2.4.so.2
> #4  0x0000000801ffa0a4 in pthread_getprio () from /lib/libthr.so.3
> #5  0x0000000000000000 in ?? ()
> Error accessing memory address 0x7ffff73ed000: Bad address.
> 
> That occurs before and after adding the new data.
> 
> I'm assuming now that I have to rebuild with debug, but I'm not sure 
> exactly how I do that with ports yet and that will take more time. I 
> also can't seem to remember how to access threads... or at least 
> determine which one to follow.
> 
> At any rate, is any of this looking familiar at all?
> 
>>>>> Da Rock <openldap-technical@herveybayaustralia.com.au> schrieb am 26.11.2014 um
>> 10:41 in Nachricht <5475A053.7060209@herveybayaustralia.com.au>:
>>> On 26/11/2014 18:23, Ulrich Windl wrote:
>>>> What you could try is (assuming you have debug symbols in your binary)
>>> attaching gdb to the running slapd to see where it is spending CPU time. I
>>> can't remember the commands precisely, but "bt (backtrace)" and "info
>>> threads" should point you in the right direction.
>>>> Note that slapd will likely stop responding while gdb is attached, so you
>>> could also try to force a core dump for offline examination.
>>> I'm not sure I follow here. How would this work? I attach gdb to the
>>> running slapd I get, but if it stops how does that help me? I've only
>>> had a little bit of experience with gdb...
>>>
>>> How would I get a core dump, as well? That sounds like it might be more
>>> useful.
>>>> Maybe the gurus get a clue what may be wrong then...
>>>>
>>>> Regards,
>>>> Ulrich
>>>>
>>>>>>> Da Rock <openldap-technical@herveybayaustralia.com.au> schrieb am 26.11.2014 um
>>>> 01:31 in Nachricht <54751F73.3080902@herveybayaustralia.com.au>:
>>>>> I'm trying to get openldap to play nice with mdb given that it is the
>>>>> "recommended" database backend for it now- although the conf wasn't an
>>>>> issue excepting I'm playing with the new cn=config setup we're expected
>>>>> to use now as well (even though it is mainly broken).
>>>>>
>>>>> My issue is that it seems to not respond like the older bdb/hdb
>>>>> databases. And when I say respond, I mean it hangs the ldapadd and makes
>>>>> slapd go into conniptions. I see slapd go to 100% WCPU and not come down
>>>>> as well as going into a uwait state. I've left it going for 10 minutes
>>>>> or more with no change, and I'm only adding 1 small entry of less the 10
>>>>> lines. Strangely, I can still view other entries in the specific db as
>>>>> well access the rest of the server, which I won't complain about (aren't
>>>>> threads a wonderful invention? ).
>>>>>
>>>>> So coming to the experts - got a fix at all? Or should I just go back to
>>>>> ye olde db backends? At this point I have a db I can't add anything to.
>>>>>
>>>>> And before anyone asks, there is practically nothing in the logs that I
>>>>> can see; and I set the logging to everything (-1). I see recognition of
>>>>> the user in the acl and then nothing. The only possible curious entry is
>>>>> some blank lines and a number (that changes each time), so nothing
>>>>> informative.
>>>>>
>>>>> I set it up using the cn=config (and I'm still not entirely convinced
>>>>> that I will keep cn=config, but apparently it could be gone next version
>>>>> according to the grapevine, so the consensus is to suck it up and get
>>>>> used to it or your panties will get in a bunch and around your ankles
>>>>> when the upgrade comes along), and I've got only olcDBMaxSize.
>>>>> olcSizeLimit (not sure exactly which of these 2 can go just yet),
>>>>> olcDBMode, olcDBDirectory, and olcDatabase and the obviously root attrs.
>>>>> My max size I've set larger than 50M (so 7 digits) which is larger than
>>>>> what I have in another db so far, and I figure I can add more if needed
>>>>> - currently it is sitting at 64k.
>>>>>
>>>>> I'm using FreeBSD 9.1, ports Openldap version is 2.4.40_1 with bdb/hdb
>>>>> and mdb set in config. But I notice lmdb is not installed as a
>>>>> dependency - is this right?
>>>>>
>>>>> I've been on this for near a week now with no further advancement so any
>>>>> help would be very welcome at this point. No googling seems to find
>>>>> anything remotely similar either.
>>>>>
>>>>> TIA
>>>>
>>>>
>>
>>