https://bugs.openldap.org/show_bug.cgi?id=9619
--- Comment #8 from Howard Chu hyc@openldap.org --- (In reply to Srinarasi from comment #7)
I still get an assert `mdb_cassert(mc, mp->mp_pgno != pgno);` in `mdb_page_touch()` on `mdb_put()` after compaction in some of my tests. My guess is that it's because `mp_pgno` is not set to the new compact `pgno` in `mdb_env_cwalk()`. I have attached a patch which seems to solve the problem in my tests. But I don't understand the code well enough to know if I'm missing something.
Thanks, the patch makes sense.
Missed it because of some other in-progress work to remove the page headers from the overflow pages.