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

RE: endless loop when adding 100000 entries (ITS#1939)



> -----Original Message-----
> From: owner-openldap-bugs@OpenLDAP.org
> [mailto:owner-openldap-bugs@OpenLDAP.org]On Behalf Of karl@ktauber.com

> > Thanks for the detailed report. This error should not occur because the
> > cursor->get operation should only return a (key,data) pair that matches
the
> > current key. Could be a Berkeley DB bug, will require more investigation.

> The documentation of c_get( DB_LAST ) says that it sets the cursor to the
> last key/data pair of the database and returns key and data. But the last
> key must not equal to the current value of the key variable.

That sentence does not apply since the index databases use duplicate keys.
Read the doc again and you'll see my statement is correct.

> Please note that I have no idea what bdb_idl_insert_key() exactly does and
> whether my change is correct or not.

As should now be obvious, your change is wrong.

> To make testing easier, I have changed BDB_IDL_DB_SIZE to ((1<<3)-2) and
> BDB_IDL_UM_SIZE to ((1<<4)-2).

This is how idl.c was tested before, and it works correctly on Unix. I
suggest you run the Berkeley DB test suite (from the Berkeley source) on your
Windows box and make sure it passes before proceeding any further. Very
likely the library was not ported correctly to your platform.

  -- Howard Chu
  Chief Architect, Symas Corp.       Director, Highland Sun
  http://www.symas.com               http://highlandsun.com/hyc
  Symas: Premier OpenSource Development and Support