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

2.1.9 on SuSE Alpha hangs on make test



Hi,

I am compiling openldap 2.1.9 on a SuSE 7.1 Alpha with
	openssl 0.9.6g (compiled with-threads)
	cyrus-sasl 2.1.10 (compiled with-mysql)
	berkeley-db 4.1.24
The configure and compile commands work without errors. However, when I
do a "make test" it stops at the test-000. It displays the message
"Waiting 5 seconds for slapd to start..." and then nothing.

I have tried various combinations of --enable-??; --disable-??;
--with-??; --without-?? from the simple:
	export CFLAGS='-I/usr/local/BerkeleyDB.4.1/include'
	export CPPFLAGS='-I/usr/local/BerkeleyDB.4.1/include'
	export LDFLAGS='-L/usr/local/BerkeleyDB.4.1/lib'
	export LIBS='-ldb-4.1'
	./configure

to the stripped:
	export CFLAGS='-I/usr/local/BerkeleyDB.4.1/include'
	export CPPFLAGS='-I/usr/local/BerkeleyDB.4.1/include'
	export LDFLAGS='-L/usr/local/BerkeleyDB.4.1/lib'
	export LIBS='-ldb-4.1'
	./configure --disable-ipv6 --without-cyrus-sasl
--without-threads \
	  --without-tls --disable-slurpd --without-wrappers
--enable-bdb

to what I really wanted:
	export CC=/usr/bin/ccc
	export CXX=/usr/bin/cpp
	export CFLAGS='-I/usr/local/BerkeleyDB.4.1/include
-I/usr/local/ssl/include'
	export CPPFLAGS='-I/usr/local/BerkeleyDB.4.1/include
-I/usr/local/ssl/include'
	export LDFLAGS='-L/usr/local/BerkeleyDB.4.1/lib
-L/usr/local/ssl/lib (line break for readability)
	        -L/usr/local/lib/mysql -L/usr/local/lib
-L/usr/local/lib/sasl2'
	export LIBS='-ldb-4.1 -lssl -lsasl2 -lmysqlclient -lsasldb
-lmysql'
	./configure --enable-ipv6 --with-cyrus-sasl --with-threads
--with-tls \
	  --enable-slapd --enable-spasswd --enable-bdb --enable-slurpd
\
	  --enable-local --without-wrappers

all with the same results: compiles fine; just will not run the tests.

The master.log file in tests/test-db says
-----<snip>-----
slapd starting
daemon: conn=0 fd=11 connection from IP=127.0.0.1:32840
(IP=127.0.0.1:9009) acce
pted.
connection_get(11)
connection_get(11): got connid=0
connection_read(11): checking for input on id=0
ber_get_next
ber_get_next: tag 0x30 len 12 contents:
do_bind
ber_scanf fmt ({imt) ber:
ber_scanf fmt (m}) ber:
>>> dnPrettyNormal: <>
<<< dnPrettyNormal: <>, <>
do_bind: version=3 dn="" method=128
conn=0 op=0 BIND dn="" method=128
send_ldap_result: conn=0 op=0 p=3
send_ldap_result: err=0 matched="" text=""
send_ldap_response: msgid=1 tag=97 err=0
ber_flush: 14 bytes to sd 11
conn=0 op=0 RESULT tag=97 err=0 text=
do_bind: v3 anonymous bind
ber_get_next
ber_get_next on fd 11 failed errno=35 (Resource temporarily
unavailable)
connection_get(11)
connection_get(11): got connid=0
connection_read(11): checking for input on id=0
ber_get_next
ber_get_next: tag 0x30 len 56 contents:
do_search
-----<snip>-----

>From a search of the list, it seems that the "ber_get_next ...
errno=35" indicates that the slapd process is waiting on a socket to
accept a connection. I have added slapd to /etc/hosts.allow, but
"--without-wrappers" (the default) it should not matter there. The slapd
processes remain running and the test waits until I hit CTRL-C to stop
it. While it is running, I can issue ldapsearch commands which all
return errors and generate more errno=35's on ber_get_next.

The linux kernel is a 2.4.19 that I compiled to use the DAC-960
controller on the machine. Perhaps I left something obscure out of the
kernel? Both Unix-domain and INET sockets are present. Everything else
works properly (Cyrus-IMAPD, SSH, mysql, openssl -- all compiled from
source; I have not yet compiled Apache since I wanted the LDAP-auth
module, nor sendmail since I want to use auth-ldap there too!).

An strace of the server process (as used in test-000 root-dsn) shows
that it tries IPv6 (Address family not supported by protocol) and then
uses IPv4 properly. The Berkeley databases are all built properly (the
only error is on trying to open "test_db/DB_CONFIG", which does not
exist). After the server is up and running, the strace becomes no more
useful than the log file as the client must be hitting one of the other
processes.

Is there a command line option or slapd.conf command to tell slapd to
start only one server process?

An strace of the ldapsearch client (the command used in test-000
root-dsn) shows it opening the socket:
	socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 3
then:
	gettimeofday({3187196030, 945474}, NULL) = 0
	write(3, "0\f\2\1\1`\7\2\1\3\4\0\200\0", 14) = 14
	select(1024, [3], [], NULL, NULL)       = 1 (in [3])
	read(3, "0\f\2\1\1a\7\n\1\0\4\0\4\0", 16384) = 14
	gettimeofday({3187196030, 949310}, NULL) = 0
	gettimeofday({3187196030, 949667}, NULL) = 0
send the request to the server:
	write(3,
"0@\2\1\2c;\4\2-s\n\1\2\n\1\0\2\1\0\2\1\0\1\1\0\207\vob"..., 66) = 66
	select(1024, [3], [], NULL, NULL)       = 1 (in [3])
read the response:
	read(3, "0\26\2\1\2e\21\n\1\"\4\0\4\ninvalid DN", 16384) = 24
	gettimeofday({3187196030, 952028}, NULL) = 0
send the server response of "Invalid DN syntax" to std error:
	write(2, "Invalid DN syntax (34)\n", 23Invalid DN syntax (34)) =
23
	write(2, "Additional information: invalid "..., 35Additional
information: invalid DN	) = 35
	write(3, "0\5\2\1\3B\0", 7)             = 7
	shutdown(3, 2 /* send and receive */)   = 0
	close(3)                                = 0
	exit(34)                                = ?

Ideas, anyone?