-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Stefan de Konink wrote: > Hi, > > > Some background; a Windows user of my open source ETL software complained > about the huge files. Under Linux I don't have any issues, but I wanted to > resolve this issue by implementing automatic growth via a pattern: > MapFullError, set_mapsize, apply writing batch again. > > This week I entered a bug[1] which was stated as not a bug in LMDB. Today I > ended up in build/lib/mdb.c:5966: Assertion 'IS_LEAF(mp)' failed in > mdb_cursor_next() which also seem I am not the only one hitting, and several > fixes have been introduced. > > The issue does not occur every time when the resize takes place, but can be > consistently reproduced given the same input. The error will then occur at the > same place. When my initial size is big enough, not to resize there is no > issue. > > > In short I am using py-lmdb to access a read only env, and in a second thread > a write function is launched which reads out a queue. Upon the MapFullError I > am linearly increasing the mapsize, and continue with the failed batch. I > have four dupSort tables, the rest is ordinary. > > I was pointed in the bug at the documentation. One sentence struck me: > > "It may be called at later times if no transactions are active in this > process." > > My assumption was that if I would have two independent env's I could do > whatever I wanted in the first, and the second could do its resize. Does the > documentation suggest that the full application must finish all its > transactions independent of env?
Sounds like you're misusing the API still. There is no such thing as 2 independent envs in the same process. http://www.lmdb.tech/doc/ Do not have open an LMDB database twice in the same process at the same time. > > > [1] https://bugs.openldap.org/show_bug.cgi?id=10316 > - -- -- Howard Chu CTO, Symas Corp. http://www.symas.com Director, Highland Sun http://highlandsun.com/hyc/ Chief Architect, OpenLDAP http://www.openldap.org/project/ -----BEGIN PGP SIGNATURE----- iF0EAREKAB0WIQSUBGGam6fLX3meDqH9KnC0SrEbpwUCZ9GUkwAKCRD9KnC0SrEb pwDBAJ91rxE7KPe1DOz7vaNvspICm6qh4gCgly0fFbJ/1nVnB1l4DKXRpn9BKhs= =tcai -----END PGP SIGNATURE-----
