[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Segmentaion fault with ldap backend (ITS#3021)
Full_Name: John C.Y. Lee
Version: 2.1.25
OS: RedHat 7.3
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (61.218.72.138)
While using ldap backend, I found that the front slapd will get
segmentation fault on severeal occasion.
The front ldap server: (refer to back ldap server, WITH "suffix massage"
suffixmassage "dc=my-domain,dc=com" "dc=JohnLee-Fedora")
[root@JohnLee-rh73 slapd]# ./slapd -4 -d 256
bdb_initialize: Sleepycat Software: Berkeley DB 4.2.52: (December 3, 2003)
slapd starting
conn=0 fd=9 ACCEPT from IP=127.0.0.1:32778 (IP=0.0.0.0:389)
conn=0 op=0 BIND dn="" method=128
deferring operation
conn=0 op=0 RESULT tag=97 err=0 text=
conn=0 op=1 SRCH base="dc=my-domain,dc=com" scope=2 filter="(objectClass=*)"
request 1 done
Segmentation fault
[root@JohnLee-rh73 slapd]#
The client reads:
...
# Protocols, my-domain.com
dn: ou=Protocols,dc=my-domain,dc=com
ou: Protocols
objectClass: top
objectClass: organizationalUnit
# Networks, my-domain.com
dn: ou=Networks,dc=my-domain,dc=com
ou: Networks
objectClass: top
objectClass: organizationalUnit
# root, Group, my-domain.com
dn: cn=root,ou=Group,dc=my-domain,dc=com
objectClass: posixGroup
objectClass: top
cn: root
ldap_result: Can't contact LDAP server (81)
If I search the real back ldap server, the result is:
...
# root, Group, JohnLee-Fedora
dn: cn=root,ou=Group,dc=JohnLee-Fedora
objectClass: posixGroup
objectClass: top
cn: root
gidNumber: 0
# bin, Group, JohnLee-Fedora
dn: cn=bin,ou=Group,dc=JohnLee-Fedora
objectClass: posixGroup
objectClass: top
cn: bin
gidNumber: 1
memberUid: daemon
memberUid: root
...
If I run the front ldap server WITHOUT massage, everything seems right.
...
# Networks, JohnLee-Fedora
dn: ou=Networks,dc=JohnLee-Fedora
ou: Networks
objectClass: top
objectClass: organizationalUnit
# root, Group, JohnLee-Fedora
dn: cn=root,ou=Group,dc=JohnLee-Fedora
objectClass: posixGroup
objectClass: top
cn: root
# bin, Group, JohnLee-Fedora
dn: cn=bin,ou=Group,dc=JohnLee-Fedora
objectClass: posixGroup
objectClass: top
cn: bin
...
So I tried to back trace it, and find the following:
Program received signal SIGSEGV, Segmentation fault.
0x4015d0c7 in pthread_mutex_lock () from /lib/i686/libpthread.so.0
(gdb) bt
#0 0x4015d0c7 in pthread_mutex_lock () from /lib/i686/libpthread.so.0
#1 0x4207ac18 in free () from /lib/i686/libc.so.6
#2 0x080bbced in ber_bvarray_free (a=0x81c6e58) at memory.c:658
#3 0x08089b9a in ldap_send_entry (be=0x8192098, op=0x81c6458, lc=0x81c6868,
e=0x81c6ba0, attrs=0x0, attrsonly=0) at search.c:636
#4 0x08089529 in ldap_back_search (be=0x8192098, conn=0x40183c68,
op=0x81c6458, base=0x40dcd87c, nbase=0x40dcd884, scope=2, deref=0,
slimit=0, tlimit=0, filter=0x81c6568, filterstr=0x40dcd86c, attrs=0x0,
attrsonly=0) at search.c:292
#5 0x0805339e in do_search (conn=0x40183c68, op=0x81c6458) at search.c:401
#6 0x08051936 in connection_operation (ctx=0x81c6300, arg_v=0x81c6458)
at connection.c:943
#7 0x0809ebe9 in ldap_int_thread_pool_wrapper (xpool=0x8184d60) at tpool.c:432
#8 0x4015bfef in pthread_start_thread () from /lib/i686/libpthread.so.0
#9 0x4015c0df in pthread_start_thread_event () from /lib/i686/libpthread.so.0
Seems like something wrong in "ldap_send_entry".
Then I thought it might because some attributes are undefined in the front
ldap server, so I tried to include the same schema on both server. (just
like ITS#1366)
Now it runs a little further, but still dies at last.
front server:
[root@JohnLee-rh73 slapd]# ./slapd -4 -d 256
bdb_initialize: Sleepycat Software: Berkeley DB 4.2.52: (December 3, 2003)
slapd starting
conn=0 fd=9 ACCEPT from IP=127.0.0.1:32789 (IP=0.0.0.0:389)
conn=0 op=0 BIND dn="" method=128
deferring operation
conn=0 op=0 RESULT tag=97 err=0 text=
conn=0 op=1 SRCH base="dc=my-domain,dc=com" scope=2 filter="(objectClass=*)"
request 1 done
request 2 done
Segmentation fault
client:
...
# tester, People, my-domain.com
dn: uid=tester,ou=People,dc=my-domain,dc=com
uid: tester
cn: a test account
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
loginShell: /bin/bash
uidNumber: 2000
gidNumber: 100
homeDirectory: /home/tester
gecos: a test account
shadowLastChange: 12446
ldap_result: Can't contact LDAP server (81)
the real back ldap server result:
...
# tester, People, JohnLee-Fedora
dn: uid=tester,ou=People,dc=JohnLee-Fedora
uid: tester
cn: a test account
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
loginShell: /bin/bash
uidNumber: 2000
gidNumber: 100
homeDirectory: /home/tester
gecos: a test account
shadowLastChange: 12446
# search result
search: 2
result: 0 Success
# numResponses: 126
# numEntries: 125
I'll try to gather more information about this. Thanks for your
effort to develop such a nice software.