https://bugs.openldap.org/show_bug.cgi?id=9842
--- Comment #3 from stephan.j.bircher@gmail.com --- (In reply to Howard Chu from comment #1)
(In reply to stephan.j.bircher from comment #0)
The documentation for the function mdb_cursor_put states for MDB_RESERVE the following: "return a pointer to the reserved space, which the caller can fill in later". However this seems only to be valid if no other operation is performed on the cursor. Once the cursor is moved the page where the reserved data resides on might become untracked and therefore eligible to be spilled at any time.
True. Any data pointed to by a cursor is only valid while the cursor points to it. There's no bug here.
Thank you for confirming. Maybe a small note for clarification in the documentation would help as "fill in later" is not that obvious. One as I did could think the data could be filled in as long as the transaction is open. My code actually was based on that assumption and all went fine until the transaction became bigger.