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

Re: (ITS#7515) Nested liblmdb transaction bugs



mdb_txn_commit(nested transaction) has more problems:
- If the commit fails, it may modify the parent txn anyway.
- The code to merge dirty_list into the parent is strange.  I think it
  assumes that the dirty pages are either dirty in the parent, or have
  a higher page numbers than the parent's dirty pages parent. That can
  be wrong if a new freelist entry was used, or a "multi-page page".

Branch mdb/tweaks2 in <http://folk.uio.no/hbf/OpenLDAP/openldap.git>
includes a suggested fix, but could use some review - and testing by
someone who actually uses nested txns.

-- 
Hallvard