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

OpenLDAP / AIX: ch_malloc failed


When the number of connection raises (performing read operations), slapd
crashes saying

ch_malloc of 8388608 bytes failed
Assertion failed: __EX, file  ch_malloc.c, line 62
IOT/Abort trap(coredump)

This happens on AIX 5.3 ML 3 (on AIX 5.2, too)
With openldap 2.3.20, 2.3.21 or 2.2.30
Using BerkeleyDB 4.3 or 4.4

This is one of many tries how it is compiled (using gcc 3.3.2):

CPPFLAGS="-I/stage/libs/include -I/stage/libs/BerkeleyDB.4.4/include  \
LDFLAGS="-L/stage/libs/lib -L/stage/libs/ssl/lib
-L/stage/libs/BerkeleyDB.4.4/lib -lpthread" \
./configure --enable-dynamic \
--enable-bdb --enable-crypt --enable-slapd --enable-slurpd \
--with-tls=openssl --enable-rlookups \
--with-threads=posix --prefix=/stage/libs \
--enable-shared=no --enable-static=yes

make depend
make install

Make test is succesful.

The problem occurs when there the amount of connections (triggered by
java programs) has risen high within a short time (about 200 connections
in 1 minute).
The problem does not occur on Linux.

Does someone perhaps have any clue what might be wrong here? 

At the bottom I attach a bit more of the log.

Thanks you in advance and best regards,

ber_flush: 14 bytes to sd 14
connection_get(14): got connid=163
connection_read(14): checking for input on id=163
ber_get_next: tag 0x30 len 81 contents:
ber_get_next on fd 14 failed errno=11 (Resource temporarily unavailable)
ber_scanf fmt ({miiiib) ber:
>>> dnPrettyNormal: <o=company,c=com>
=> ldap_bv2dn(o=company,c=com,0)
<= ldap_bv2dn(o=company,c=com)=0 Success
=> ldap_dn2bv(272)
<= ldap_dn2bv(o=company,c=com)=0 Success
=> ldap_dn2bv(272)
<= ldap_dn2bv(o=company,c=com)=0 Success
<<< dnPrettyNormal: <o=company,c=com>, <o=company,c=com>
ber_scanf fmt ({mm}) ber:
ber_scanf fmt ({M}}) ber:
=> get_ctrls
ber_scanf fmt ({m) ber:
=> get_ctrls: oid="2.16.840.1.113730.3.4.2" (noncritical)
<= get_ctrls: n=1 rc=0 err=""
=> bdb_search
search_candidates: base="o=company,c=com" (0x00000001) scope=2
ch_malloc of 8388608 bytes failed
Assertion failed: __EX, file  ch_malloc.c, line 62
IOT/Abort trap(coredump)

Dieses Dokument ist vertraulich und ausschliesslich fuer den Adressaten bestimmt. Falls Sie diese E-Mail versehentlich bekommen haben, informieren Sie uns bitte unverzueglich und loeschen Sie diese Nachricht von Ihrem Computer. Jegliche Art von Reproduktion, Verbreitung, Vervielfaeltigung, Modifikation, Verteilung und/oder Publikation dieser E-Mail Nachricht ist untersagt. 
Die in dieser E-Mail enthaltenen Angaben und Erklaerungen sind unverbindlich. Haftungsansprueche des Empfaengers jeglicher Art werden ausgeschlossen. Die GZS schliesst ausser fuer den Fall von Vorsatz oder grober Fahrlaessigkeit die Haftung fuer jeglichen Verlust oder Schaeden durch virenbefallene Software oder E-Mails aus.
This message contains confidential information and is intended only for the named individual. If you are not the named addressee, you should not disseminate, distribute or copy this e-mail. Please notify the sender immediately by e-mail if you have received this message in error and delete this e-message from your system.
No reliance may be placed on this message without written confirmation of its contents from an authorized representative. GZS accepts no liability for loss or damage caused by software viruses except in case of gross negligence or willful behaviour.