https://bugs.openldap.org/show_bug.cgi?id=9378
--- Comment #24 from Howard Chu hyc@openldap.org --- (In reply to stefan.bruens from comment #23)
That means baloo_file has opened the same env twice in the same process
We've expanded the logging to include PIDs so we can more definitively show what's happening. But the problem remains:
... Process 514137 has an active write transaction, but process 594170 successfully opens a new write transaction. That can only happen if LMDB's write mutex has been removed out from under it.
So it actually never was an duplicated open from the same process, but multiple opens from different processes, correct?
Correct. My initial guess was based on the wild assumption that nobody would be stupid enough to actually delete the lockfile.
The caveat was always clear:
* Otherwise just make all programs using the database close it; * the lockfile is always reset on first open of the environment.
You never had to do anything special, regardless of whether robust mutexes were in use or not. Once all processes using the DB exit, the lockfile doesn't matter any more.