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

Re: (ITS#8737) LMDB allows creation of multiple databases in same directory



--94eb2c075988d198060559c39077
Content-Type: text/plain; charset="UTF-8"

On Wed, Sep 20, 2017 at 7:28 PM, Howard Chu <hyc@symas.com> wrote:

> aleksey.kamensky@gmail.com wrote:
>
>> Full_Name: Alexey Kamenskiy
>> Version: 2.4.45
>> OS: CentOS Linux release 7.3.1611 (Core)
>> URL: ftp://ftp.openldap.org/incoming/
>> Submission from: (NULL) (220.248.35.50)
>>
>>
>> Setting up fresh 2.4.45 with MDB noticed that MDB does allow to create
>> multiple
>> databases in the same directory (noticed by mistake of creating multiple
>> MDBs in
>> default /var/lib/ldap).
>>
>> It shows no error and no any warning. After this ALL of the databases are
>> writeable and readable. On reading the results returned for all 3
>> databases (and
>> not for the DIT specified in ldapsearch -b).
>>
>
> None of the other backends protect from this either. (Nor can they, since
> any individual backend doesn't know anything about any other backend's
> configuration.) Not a bug.


You are right that other backends (I am talking here hdb/bdb) do not
explicitly check for this, but those backends will produce error on attempt
to read/write into database created in the directory where DB already
exists. LMDB just works in this case and returns bad results if try to read.

Even if not intentionally those errors serve as a reminder that one should
not create two DBs in same directory.

And on the other hand saying "not an issue because no one else does it this
way" is not a good approach IMO as it only stimulates copying and does not
help those offering improvements.

--94eb2c075988d198060559c39077
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Wed, Sep 20, 2017 at 7:28 PM, Howard Chu <span dir=3D"ltr">&lt;<a hr=
ef=3D"mailto:hyc@symas.com"; target=3D"_blank">hyc@symas.com</a>&gt;</span> =
wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bord=
er-left:1px #ccc solid;padding-left:1ex"><a href=3D"mailto:aleksey.kamensky=
@gmail.com" target=3D"_blank">aleksey.kamensky@gmail.com</a> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">
Full_Name: Alexey Kamenskiy<br>
Version: 2.4.45<br>
OS: CentOS Linux release 7.3.1611 (Core)<br>
URL: <a href=3D"ftp://ftp.openldap.org/incoming/"; rel=3D"noreferrer" target=
=3D"_blank">ftp://ftp.openldap.org/incomin<wbr>g/</a><br>
Submission from: (NULL) <a href=3D"tel:%28220.248.35.50" value=3D"+12202483=
550" target=3D"_blank">(220.248.35.50</a>)<br>
<br>
<br>
Setting up fresh 2.4.45 with MDB noticed that MDB does allow to create mult=
iple<br>
databases in the same directory (noticed by mistake of creating multiple MD=
Bs in<br>
default /var/lib/ldap).<br>
<br>
It shows no error and no any warning. After this ALL of the databases are<b=
r>
writeable and readable. On reading the results returned for all 3 databases=
 (and<br>
not for the DIT specified in ldapsearch -b).<br>
</blockquote>
<br>
None of the other backends protect from this either. (Nor can they, since a=
ny individual backend doesn&#39;t know anything about any other backend&#39=
;s configuration.) Not a bug.</blockquote><div><br></div><div>You are right=
 that other backends (I am talking here hdb/bdb) do not explicitly check fo=
r this, but those backends will produce error on attempt to read/write into=
 database created in the directory where DB already exists. LMDB just works=
 in this case and returns bad results if try to read.</div><div><br></div><=
div>Even if not intentionally those errors serve as a reminder that one sho=
uld not create two DBs in same directory.</div><div><br></div><div>And on t=
he other hand saying &quot;not an issue because no one else does it this wa=
y&quot; is not a good approach IMO as it only stimulates copying and does n=
ot help those offering improvements.</div><div>=C2=A0</div></div></div></di=
v>

--94eb2c075988d198060559c39077--