I forgot this thread...
On 22/12/15 16:39, Howard Chu wrote:
Not malicious. Omit some commits like slapadd -q does, and it can happen naturally. Maybe slapadd -q can do just that with large IDLs.
The change in question was for msync, which is only used for MDB_WRITEMAP.
True, I missed that.
Regular fdatasync doesn't require a length parameter, so it's irrelevant.
I think MDB_meta and MDB_txn need "last written page" maintained by mdb_page_flush(). Can VL32 wait for MDB_DATA_VERSION > 1?
mdb_page_flush() already maintains last_pgno for MDB_VL32.
Yes, but it initializes mt_last_pgno = meta->mm_last_pg, which can be beyond the filesize.
I mean to get back to that test program and test it on Windows with bigger memory chunks, but I don't seem to be getting around to it...