https://bugs.openldap.org/show_bug.cgi?id=9429
Issue ID: 9429 Summary: LMDB mdb_del and mdb_cursor_del cause MDB_MAP_FULL on Apple M1 Product: LMDB Version: 0.9.26 Hardware: Other OS: Mac OS Status: UNCONFIRMED Severity: normal Priority: --- Component: liblmdb Assignee: bugs@openldap.org Reporter: simonleier@gmail.com Target Milestone: ---
I discovered that deleting data from the database causes MDB_MAP_FULL on my MacBook Pro with M1 chip. The same code works fine on an Intel Mac.
I think there is no special code required to reproduce this. Open a db, put something, try to delete it and LMDB crashes.
https://bugs.openldap.org/show_bug.cgi?id=9429
Howard Chu hyc@openldap.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |WONTFIX Status|UNCONFIRMED |RESOLVED
--- Comment #1 from Howard Chu hyc@openldap.org --- (In reply to simonleier from comment #0)
I discovered that deleting data from the database causes MDB_MAP_FULL on my MacBook Pro with M1 chip. The same code works fine on an Intel Mac.
I think there is no special code required to reproduce this. Open a db, put something, try to delete it and LMDB crashes.
As I recall, the M1 uses a 64KB pagesize by default, and you're probably hitting ITS#7713. You need to recompile LMDB after changing the "#define PAGEBASE" definition to PAGEHDRSZ. Note that making this change will make the DB files incompatible with other LMDB 0.9 builds. This setting is however the default in LMDB 1.0.
https://bugs.openldap.org/show_bug.cgi?id=9429
--- Comment #2 from simonleier@gmail.com --- Unfortunately it still happens after changing PAGEBASE to PAGEHDRSZ and also with MDB_DEVEL set to 2.
https://bugs.openldap.org/show_bug.cgi?id=9429
--- Comment #3 from Howard Chu hyc@openldap.org --- (In reply to simonleier from comment #2)
Unfortunately it still happens after changing PAGEBASE to PAGEHDRSZ and also with MDB_DEVEL set to 2.
Ah that's too bad. Won't be able to investigate since we don't have any M1 hardware here.