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

Re: JNDI and multiple adds corrupts DB (ITS#2152)



I have been bitten by this same problem under a slightly different
setup.

> Version: 2.1.5
> OS: Solaris 8

I use 2.1.8 on (intel) Linux and OSX.  (Also observed under 2.1.6)

> Berkeley DB 4.0.14 + Openldap suggested patches

and bdb 4.1.24

> I attach the whole code. The crash happens at the red line. Could
> you try to add same given name twice? Maybe the same value caused
> the crash. The different value works. I should try to avoid it in
> the program, but it is better not crash the directory. Some Error
> message will be better.

Heh, "red line" doesn't work so well through email, but I think I
follow.

> When JNDI is used to perform an add when a value already exists (In
> this case, givenName is already in the directory entry), slapd dies,
> and the DB is corrupted.  Obviously, you would expect someone to use
> replace instead of add.  Doing this on the command line properly
> comes back with an error message.

I encountered this same problem when software tried to add additional
values to an existing multivalued attribute.

This was done using Net::LDAP rather than Java...  I really doubt the
API used makes any difference.

I was able to get core dumps from when slapd segfaults, but all they
revealed was that slapd choked on an already corrupted database.  (The
DN's it was pulling up were garbage)

I'd have said something sooner, but I seemed to be the only one having
this problem...  sorry about that.

As I'm using 2.1.8, this was all done using v3 binds.  Has anyone
tested this on v2 binds or openldap-2.0.x?

Matthew Backes
lucca@csun.edu