Heed strive to pursue opening LMDB safely, so a database environment must be opened only once inside a process address space.
Any subsequent opening shall return the corresponding already opened environment.
It was done with Path Canonization but it fails to tackle symlinks, hardlinks and renaming/move of the whole database environment (both locks and database).
In an ideal world the environment already open checking must prevail:
Heed strive to pursue opening LMDB safely, so a database environment must be opened only once inside a process address space.
Any subsequent opening shall return the corresponding already opened environment.
It was done with
Path
Canonization but it fails to tackle symlinks, hardlinks and renaming/move of the whole database environment (both locks and database).In an ideal world the environment already open checking must prevail:
Related pull requests/ Issue
179
Open question
Is Canonization still pertinant if we check already-openned by Unix: (device/inode) Windows: (Driver/fileID) through same_file?
How to do it compatible with windows without lefting file open.
Problems
Lmdb rely on Unixes on posix filelocking through fnctl