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

openldap-2.4.19 backsql with oracle and slap_sl_malloc of 56 bytes failed, using ch_malloc error



We have installed openldap-2.4.19  backsql and oracle  as RDMS.
Everthing works fine when I search for a specific entry.

But If I open a LDAP beowser  and expand the tree.  It tries to run
the following query to load all the entries for ObjectClass
NetAcadPerson .
 Unfortunately this query (this Objectclass has) returns almost one
million records.

SELECT DISTINCT
ldap_entries.id,NetacadPersons.NetAcadUserID,'NetAcadPerson'
objectClass,ldap_entries.dn  dn FROM ldap_entries,NetacadPersons WHERE
NetacadPersons.NetAcadUserID=ldap_entries.keyval AND
ldap_entries.oc_map_id=? AND ldap_entries.parent=? AND 3=3

It was able to load 1000+ records with the following info in the logs ....

backsql_oc_get_candidates(): added entry id=471024, keyval=470924
dn="uid=xxxxx,ou=people,dc=netacad,dc=net"
>>> dnPrettyNormal: <uid=xxxxx,ou=people,dc=netacad,dc=net>
<<< dnPrettyNormal: <uid=xxxxx,ou=people,dc=netacad,dc=net>,
<uid=xxxxxx,ou=people,dc=netacad,dc=net>
backsql_oc_get_candidates(): added entry id=471024, keyval=470924
dn="uid=xxxxx,ou=people,dc=netacad,dc=net"
>>> dnPrettyNormal: <uid=xxxxx,ou=people,dc=netacad,dc=net>
<<< dnPrettyNormal: <uid=xxxxx,ou=people,dc=netacad,dc=net>,
<uid=xxxxxx,ou=people,dc=netacad,dc=net>

But after loaading some of them I get the following error ...telling
me that the memory allocation falied....

slap_sl_malloc of 16 bytes failed, using ch_malloc
slap_sl_malloc of 32 bytes failed, using ch_malloc
slap_sl_malloc of 56 bytes failed, using ch_malloc

My questions is - is it possible to restrict number of rows by using
"rownum" special ORACLE feature.

By appending some thing like below to the query above.

"AND rownum < 100 "

If it is possible to configure above query, please let me know what
slapd configuration I should use. I read all the options in the
following man page - http://linux.die.net/man/5/slapd-sql

Let me know if I have any other options to prevent this from happening.

Thanks a lot in advance.

-Nikethan