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

Fwd: adding support to mdb

Dear gentleman/madam,

as you may be aware i am having hard times trying to get qmail+ldap working on my OpenBSD 5.2 amd64. While after installation OLDAP works 100% (I am using BDB as backend). When i start qmail, every query sent by qmail to the OLDAP server increases memory up to a point OLDAP needs to be restarted.

I emailed misc@openbsd.org. I got responses. Here i pass them to the OLDAP developer: After some advice from Mr. Quanah, i gave up BDB and would like to give MDB a try. Here is what i got from the misc@openbsd.org

I believe the OLDAP developer should know:

---------- Forwarded message ----------
From: Stuart Henderson <stu@spacehopper.org>
Date: Mon, Jan 14, 2013 at 8:47 PM
Subject: Re: adding support to mdb
To: Friedrich Locke <friedrich.locke@gmail.com>
Cc: ports@openbsd.org

On 2013/01/14 19:18, Friedrich Locke wrote:
> Hi folks,
> this is my first message to this list. I am writing because i am in need to
> use openldap from ports.
> Initially i tried openldap with support to BDB, but it is buggy.
> I was suggest to try mdb, but openldap's Makefile have the --disable-mdb
> instruction.
> Since i do need to get a directory service and have no knownledge on
> openldap internals, i come to you
> in order to suggest how could i help in order to get mdb supported by
> OpenBSD Ports OpenLDAP.
> Thank you a lot for your time and cooperation.
> Best regards,
> Fried.

So this is a memory-mapped database; there have been problems with these in
the past (e.g. in Cyrus imapd and Dovecot) but I am not sure of all the
details. The port diff is easy enough but I would really like some advice
from someone who is knowledgeable about the mmap issues as to whether or
not it's safe to use this on OpenBSD.

A bit more info from slides at http://www.openldap.org/pub/hyc/mdm-slides.pdf :-

-- -- -- -- --
* Uses a read-only memory map

* Protects the database structure from corruption due to stray writes
in memory

* Any attempts to write to the map will cause a SEGV, allowing
immediate identification of software bugs

* There's no point in making the pages writable anyway, since only
existing pages may be written. Growing the database requires file
ops (write, ftruncate) so for uniformity, file ops are also used for
-- -- -- -- --

I *think* the problems were only with mmap writes, if this is correct
then they seem to be sidestepping the problems by doing this.

BTW I'm using OpenLDAP 2.4 with BDB here and haven't noticed issues
however it is not under extreme load..