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

mdb.master commit "ITS#7515 fix mdb_dbi_open/close"

openldap-commit2devel@OpenLDAP.org writes:
> commit 48dc782ea612f85e8356a50bfbafe22e5be121cf
> Author: Howard Chu <hyc@symas.com>
> Date:   Thu Jan 31 20:05:48 2013 -0800
>     ITS#7515 fix mdb_dbi_open/close
>     If a DBI handle is opened by a txn that aborts, the DBI handle
>     should no longer be valid.

This change breaks programs which do:

  open  DBI_X;
  abort/reset/failed commit;
  open  DBI_Y; // Now gets the same number as DBI_X
  close DBI_X; // Correct until this, but now closes DBI_Y
  use   DBI_Y;
I prefer the old behavior. Simpler: If mdb_dbi_open() succeeded, we
had a handle to be used in this and future txns, and which could be
closed. Other txns might not (yet) see a database for the handle,
but that also happened when another process dropped the database.