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

Possible memory leak?


I have an openldap installation setup which appears to have a memory leak which I have not been able to solve by upgrading software etc. which is why I'm submitting this, if this is the wrong list, please let me know.

The setup is:
- OpenLDAP server running 2.4.26, compiled against db-5.2.28, heimdal 1.2.1.
- Server is SunOS servername 5.10 Generic_141445-09 i86pc i386 i86pc, 6GB of RAM and 5GB of swap (in a VMWare ESX environment)

I have the following in my DB_CONFIG file:
set_cachesize   0       52428800        0
set_lg_regionmax        1048576
set_lg_max              10485760
set_lg_bsize            2097152
set_lg_dir              /pack/openldap/var/openldap-crl-logs

In my slapd.conf I have the following entries (I stripped out some restricts and other irrelevant lines)

include         /pack/openldap/etc/openldap/schema/core.schema
include         /pack/openldap/etc/openldap/schema/entrust.attributes.cfg
include         /pack/openldap/etc/openldap/schema/entrust.objectclasses.cfg
idletimeout 300
pidfile         /pack/openldap/var/run/slapd-crl.pid
argsfile        /pack/openldap/var/run/slapd-crl.args
threads 4
database        bdb
suffix          "c=DK"
directory       /pack/openldap/var/openldap-crl
index   objectClass,entryCSN,entryUUID  eq
checkpoint      128 1
overlay syncprov
syncprov-checkpoint 100 10
syncprov-sessionlog 100
serverID        2
monitoring off 
idletimeout 10

Just FYI, the server is a clone of another server currently running syncprov replication between two nodes, hence the syncprov lines. This server has the same databases as the production ones, but I just moved it to isolated area and removed all sync options from slapd.

My database is rather big:
vs24n02z2.prl1:/pack/openldap/var/openldap-crl root$ du -sh *.bdb
 961M   dn2id.bdb
 162M   entryCSN.bdb
  67M   entryUUID.bdb
  10G   id2entry.bdb
 4.0M   objectClass.bdb

but I'd imagine this not beeing a problem (other than some performance issues, but this is not the problem here).

Now, when I start up my slapd, it consumes around 6MB RAM, all is fine, I can perform searches and updates without problems. But my memory consumption is going through the roof! 

If I perform a search through the part of the database having alot of data, I suddenly find slapd using 500+ MB of memory...

In our production setup, we actually see that after a couple of weeks, slapd is consuming 3+ GB of memory, and then at some point hits a Out of memory, and crashes.

Our production setup is infact a openldap 2.4.22 with berkeley db 4.6.21, and my test server (cloned in a vmware environment) has just upgraded this environment by this recipe:

Using db-4.6.21
* db_checkpoint -1 
* db_recover -h <path to bdb files>

install db-5.2.28
* Loop through all bdb files: db_upgrade <bdb file>
* install openldap 2.4.26 (compiled against db-5.2.28)
* start slapd

The server which updates the LDAP is performing many search and updates, which is probably why memory consumption is exploding after restarts?

Now, my main concern is, how (if possible) can we procede with this? We really need to find the problem as this causes production problems whenever the ldap crashes.