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

Re: Resizing of LMDB map



Daniel Kraft wrote:
> Hi!
> 
> I'm trying to use LMDB in a way that automatically resizes the map
> whenever it becomes too small, i.e. a function fails with MDB_MAP_FULL.
> I've created and attached a program that resembles my real usecase in a
> very simplified fashion:  It just writes data to the database, and tries
> to double the map size whenever MDB_MAP_FULL is received.
> 
> However, for me this program (as well as my real code) produces a
> segfault in the mdb_put call that follows after the first resize.  What
> am I doing wrong here, and how can I correctly implement a resize when full?

You're attempting to use the txn after committing it. This is basically
a use-after-free attempt, which is why you get a SEGV.

-- 
  -- Howard Chu
  CTO, Symas Corp.           http://www.symas.com
  Director, Highland Sun     http://highlandsun.com/hyc/
  Chief Architect, OpenLDAP  http://www.openldap.org/project/