[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
(ITS#5169) Test0001 - segmentation fault - slapd
Full_Name: Andrew N Parker
Version: 2.3.38
OS: RHEL 4.2 32 bit
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (194.60.106.5)
Running the standard installtion script; make test.
tes001-slapadd fails with a segmentation fault from slapd.
Compiled with OpenSSl 0.9.8e & BerkeleyDB 4.6.19. O/S RHEL 4.2, hardware Intel
(arch command gives string i686). The same software combination seems to work on
RHEL 4.2 64 bit.
Here is the stack trace:
<<< dnPrettyNormal: <cn=Start,cn=Time,cn=Monitor>,
<cn=start,cn=time,cn=monitor>
>>> dnNormalize: <>
<<< dnNormalize: <>
>>> dnNormalize: <>
<<< dnNormalize: <>
<= str2entry(cn=Start,cn=Time,cn=Monitor) -> 0x97dc658
=> str2entry: "dn: cn=Current,cn=Time,cn=Monitor
objectClass: monitoredObject
structuralObjectClass: monitoredObject
cn: Current
monitorTimestamp: 20071004185030Z
creatorsName:
modifiersName:
createTimestamp: 20071004185030Z
modifyTimestamp: 20071004185030Z
"
>>> dnPrettyNormal: <cn=Current,cn=Time,cn=Monitor>
<<< dnPrettyNormal: <cn=Current,cn=Time,cn=Monitor>,
<cn=current,cn=time,cn=monitor>
>>> dnNormalize: <>
<<< dnNormalize: <>
>>> dnNormalize: <>
<<< dnNormalize: <>
<= str2entry(cn=Current,cn=Time,cn=Monitor) -> 0x97dca60
=> str2entry: "dn: cn=Read,cn=Waiters,cn=Monitor
objectClass: monitorCounterObject
structuralObjectClass: monitorCounterObject
cn: Read
creatorsName:
modifiersName:
createTimestamp: 20071004185030Z
modifyTimestamp: 20071004185030Z
"
>>> dnPrettyNormal: <cn=Read,cn=Waiters,cn=Monitor>
<<< dnPrettyNormal: <cn=Read,cn=Waiters,cn=Monitor>,
<cn=read,cn=waiters,cn=monitor>
>>> dnNormalize: <>
<<< dnNormalize: <>
>>> dnNormalize: <>
<<< dnNormalize: <>
<= str2entry(cn=Read,cn=Waiters,cn=Monitor) -> 0x97dce70
=> str2entry: "dn: cn=Write,cn=Waiters,cn=Monitor
objectClass: monitorCounterObject
structuralObjectClass: monitorCounterObject
cn: Write
creatorsName:
modifiersName:
createTimestamp: 20071004185030Z
modifyTimestamp: 20071004185030Z
"
>>> dnPrettyNormal: <cn=Write,cn=Waiters,cn=Monitor>
<<< dnPrettyNormal: <cn=Write,cn=Waiters,cn=Monitor>,
<cn=write,cn=waiters,cn=monitor>
>>> dnNormalize: <>
<<< dnNormalize: <>
>>> dnNormalize: <>
<<< dnNormalize: <>
<= str2entry(cn=Write,cn=Waiters,cn=Monitor) -> 0x97dd580
slapd starting
[New Thread 26901424 (LWP 9269)]
>>> slap_listener(ldap://localhost:9011)
connection_get(14): got connid=0
connection_read(14): checking for input on id=0
ber_get_next
ber_get_next: tag 0x30 len 12 contents:
[New Thread 128756656 (LWP 9285)]
ber_get_next
do_bind
ber_scanf fmt ({imt) ber:
ber_scanf fmt (m}) ber:
>>> dnPrettyNormal: <>
<<< dnPrettyNormal: <>, <>
do_bind: version=3 dn="" method=128
send_ldap_result: conn=0 op=0 p=3
send_ldap_response: msgid=1 tag=97 err=0
ber_flush: 14 bytes to sd 14
do_bind: v3 anonymous bind
connection_get(14): got connid=0
connection_read(14): checking for input on id=0
ber_get_next
ber_get_next: tag 0x30 len 54 contents:
ber_get_next
do_search
ber_scanf fmt ({miiiib) ber:
>>> dnPrettyNormal: <dc=example,dc=com>
<<< dnPrettyNormal: <dc=example,dc=com>, <dc=example,dc=com>
ber_scanf fmt (m) ber:
ber_scanf fmt ({M}}) ber:
==> limits_get: conn=0 op=1 dn="[anonymous]"
=> bdb_search
bdb_dn2entry("dc=example,dc=com")
=> bdb_dn2id("dc=example,dc=com")
<= bdb_dn2id: got id=0x00000001
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 128756656 (LWP 9285)]
0x006fb87c in __lock_get_internal ()
from /usr/local/berkeleydb4619/lib/libdb-4.6.so
(gdb) bt full
#0 0x006fb87c in __lock_get_internal ()
from /usr/local/berkeleydb4619/lib/libdb-4.6.so
No symbol table info available.
#1 0x006fc6eb in __lock_get ()
from /usr/local/berkeleydb4619/lib/libdb-4.6.so
No symbol table info available.
#2 0x00731ea9 in __db_lget ()
from /usr/local/berkeleydb4619/lib/libdb-4.6.so
No symbol table info available.
#3 0x006a6316 in __bam_get_root ()
from /usr/local/berkeleydb4619/lib/libdb-4.6.so
No symbol table info available.
#4 0x006a6633 in __bam_search ()
from /usr/local/berkeleydb4619/lib/libdb-4.6.so
No symbol table info available.
#5 0x00698d70 in __bamc_search ()
from /usr/local/berkeleydb4619/lib/libdb-4.6.so
No symbol table info available.
#6 0x00699f3c in __bamc_get ()
from /usr/local/berkeleydb4619/lib/libdb-4.6.so
No symbol table info available.
#7 0x007244b4 in __dbc_get ()
from /usr/local/berkeleydb4619/lib/libdb-4.6.so
No symbol table info available.
#8 0x0072efb2 in __dbc_get_pp ()
from /usr/local/berkeleydb4619/lib/libdb-4.6.so
No symbol table info available.
#9 0x080de047 in bdb_id2entry (be=0x69, tid=0x0, locker=26, id=1,
e=0x7a08e1c) at id2entry.c:125
bdb = (struct bdb_info *) 0x97780c0
db = (DB *) 0x97c9ce8
key = {data = 0x7a08d7c, size = 4, ulen = 0, dlen = 0, doff = 0,
---Type <return> to continue, or q <return> to quit---
app_data = 0x0, flags = 4}
data = {data = 0x0, size = 0, ulen = 0, dlen = 0, doff = 0,
app_data = 0x0, flags = 8}
cursor = (DBC *) 0x97cae48
bv = {bv_len = 0, bv_val = 0x182 <Address 0x182 out of bounds>}
rc = 0
nid = 16777216
#10 0x080d7d39 in bdb_cache_find_id (op=0x97ded30, tid=0x0, id=1,
eip=0x7a08ea8, islocked=0, locker=26, lock=0x7a09080) at cache.c:760
bdb = (struct bdb_info *) 0x97780c0
ep = (Entry *) 0x0
rc = 0
load = 1
ei = {bei_parent = 0x0, bei_id = 1, bei_lockpad = 0 '\0',
bei_state = 0, bei_nrdn = {bv_len = 0, bv_val = 0x0}, bei_e = 0x0,
bei_kids = 0x0, bei_kids_mutex = {__m_reserved = 0, __m_count = 0,
__m_owner = 0x0, __m_kind = 0, __m_lock = {__status = 0,
__spinlock = 0}}, bei_lrunext = 0x0, bei_lruprev = 0x0}
#11 0x080db009 in bdb_dn2entry (op=0x97ded30, tid=0x0, dn=0x97ded4c,
e=0x7a08fc8, matched=1, locker=26, lock=0x7a09080) at dn2entry.c:68
ei = (EntryInfo *) 0x97defc0
rc = 0
rc2 = Variable "rc2" is not available.
(gdb) thread apply all bt
Thread 3 (Thread 128756656 (LWP 9285)):
#0 0x006fb87c in __lock_get_internal ()
from /usr/local/berkeleydb4619/lib/libdb-4.6.so
#1 0x006fc6eb in __lock_get ()
from /usr/local/berkeleydb4619/lib/libdb-4.6.so
#2 0x00731ea9 in __db_lget ()
from /usr/local/berkeleydb4619/lib/libdb-4.6.so
#3 0x006a6316 in __bam_get_root ()
from /usr/local/berkeleydb4619/lib/libdb-4.6.so
#4 0x006a6633 in __bam_search ()
from /usr/local/berkeleydb4619/lib/libdb-4.6.so
#5 0x00698d70 in __bamc_search ()
from /usr/local/berkeleydb4619/lib/libdb-4.6.so
#6 0x00699f3c in __bamc_get ()
from /usr/local/berkeleydb4619/lib/libdb-4.6.so
#7 0x007244b4 in __dbc_get ()
from /usr/local/berkeleydb4619/lib/libdb-4.6.so
#8 0x0072efb2 in __dbc_get_pp ()
from /usr/local/berkeleydb4619/lib/libdb-4.6.so
#9 0x080de047 in bdb_id2entry (be=0x69, tid=0x0, locker=26, id=1,
e=0x7a08e1c) at id2entry.c:125
#10 0x080d7d39 in bdb_cache_find_id (op=0x97ded30, tid=0x0, id=1,
eip=0x7a08ea8, islocked=0, locker=26, lock=0x7a09080) at cache.c:760
#11 0x080db009 in bdb_dn2entry (op=0x97ded30, tid=0x0, dn=0x97ded4c,
e=0x7a08fc8, matched=1, locker=26, lock=0x7a09080) at dn2entry.c:68
#12 0x080c6439 in bdb_search (op=0x97ded30, rs=0x7aca220) at search.c:374
#13 0x0806fc6a in fe_op_search (op=0x97ded30, rs=0x7aca220) at search.c:355
#14 0x0806f569 in do_search (op=0x97ded30, rs=0x7aca220) at search.c:217
#15 0x0806e058 in connection_operation (ctx=0x7aca2b0, arg_v=0x97ded30)
at connection.c:1133
#16 0x00f787fb in ldap_int_thread_pool_wrapper (xpool=0x9752020)
---Type <return> to continue, or q <return> to quit---
at tpool.c:478
#17 0x00ae9341 in start_thread () from /lib/tls/libpthread.so.0
#18 0x00a546fe in clone () from /lib/tls/libc.so.6
Thread 2 (Thread 26901424 (LWP 9269)):
#0 0x009747a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
#1 0x00a54d7e in epoll_wait () from /lib/tls/libc.so.6
#2 0x0806a5a7 in slapd_daemon_task (ptr=0x0) at daemon.c:2174
#3 0x00ae9341 in start_thread () from /lib/tls/libpthread.so.0
#4 0x00a546fe in clone () from /lib/tls/libc.so.6
Thread 1 (Thread -1208018720 (LWP 9266)):
#0 0x009747a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
#1 0x00aea06d in pthread_join () from /lib/tls/libpthread.so.0
#2 0x00f79202 in ldap_pvt_thread_join (thread=26901424, thread_return=0x0)
at thr_posix.c:193
#3 0x0806bb45 in slapd_daemon () at daemon.c:2579
#4 0x0805ccb7 in main (argc=8, argv=0xbfeff084) at main.c:859
Here is the output from the test run (I had to modify it slightly to get the gdb
output):
description: This object contains information about this server.
description: Most of the information is held in operational attributes, which
must be explicitly requested.
creatorsName:
modifiersName:
createTimestamp: 20071004182607Z
modifyTimestamp: 20071004182607Z
monitoredInfo: OpenLDAP: slapd 2.3.38 (Oct 4 2007 17:10:33)
entryDN: cn=Monitor
subschemaSubentry: cn=Subschema
hasSubordinates: TRUE
>>>>> Test succeeded
>>>>> ./scripts/test000-rootdse completed OK.
>>>>> waiting 10 seconds for things to exit
>>>>> Starting test001-slapadd ...
running defines.sh
Running slapadd to build slapd database...
Starting slapd on TCP/IP port 9011...
../servers/slapd/slapd -s0 -f ./testrun/slapd.1.conf -h ldap://localhost:9011/
-d 1
(The above line is an echo of the script line)
(read statement in here)
(Now I start gdb etc and run your slapd in the tests area).
Using ldapsearch to retrieve all the entries...
/tmp/openldap-2.3.38/tests
../clients/tools/ldapsearch -P 3 -x -LLL
./testrun/ldapsearch.out
Now I obtain the failure in gdb. I can repeat this.
Here is my build script:
export CPPFLAGS="-I/usr/local/openssl098e/include -I/usr/kerberos/include
-I/usr/local/berkeleydb4619/include"
export LDFLAGS="-L/usr/lib -L/lib -L/lib/tls -L/usr/local/openssl098e/lib
-L/usr/local/berkeleydb4619/lib"
export LD_LIBRARY_PATH="/usr/local/berkeleydb4619/lib;/usr/local/openssl098e/lib"
StdMsg -i "OpenLDAP - Running configure: CPPFLAGS=${CPPFLAGS}."
StdMsg -i "OpenLDAP - Running configure: LDFLAGS=${LDFLAGS}."
StdMsg -i "OpenLDAP - Running configure:
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}."
./configure \
--x-includes=/usr/include \
--x-includes=/usr/include/openssl/ssl \
--x-includes=/usr/include/openssl \
--x-libraries=/usr/lib \
--x-libraries=/lib \
--x-libraries=/lib/tls \
--prefix=${TARGET} \
--enable-debug \
--enable-dynamic \
--enable-syslog \
--enable-proctitle \
--enable-ipv6 \
--enable-local \
--with-cyrus-sasl \
--with-threads \
--with-tls \
--with-yielding-select \
--enable-overlays \
--enable-slapd \
--enable-slapi \
--enable-cleartext \
--enable-crypt \
--enable-spasswd \
--enable-lmpasswd \
--enable-aci \
--enable-modules \
--enable-rewrite \
--enable-rlookups \
--enable-wrappers \
--enable-bdb \
--enable-dnssrv=mod \
--enable-ldap \
--enable-passwd=mod \
--enable-perl=mod \
--enable-shell=mod \
--enable-dyngroup \
--enable-proxycache \
--enable-slurpd \
--enable-hdb=mod \
--enable-ldbm=mod \
--enable-ldbm-api=auto \
--enable-ldbm-type=auto \
--enable-meta=mod \
--enable-null=mod \
--enable-static \
--enable-shared | \
tee -a $Log_File
If you need more info, just ask.
Andrew N Parker