The stable release with the new implementation of internal DBI-handles cache. 82 files changed, 21842 insertions(+), 12684 deletions(-) New: - Reworked DBI-handles cache to avoid `FPTA_BAD_DBI` error (but `FPTA_SCHEMA_CHANGED` or `FPTA_TARDY_DBI` instead). - Added schema cache. - Added ability to open DB in without-LCK (exclusive read-only) mode in case no permissions to create/write LCK-file. - Removed "the 42" limit of readers (use default value of `MDBX_opt_max_readers` that > 100 on most platforms). - Support for Android, macOS and non-x86 Windows. - Based on libmdbx v0.11.8. Fixes: - Fixed copy&paste bug with could lead to `SIGSEGV` (nullptr dereference) in the exclusive/no-lck mode. - Fixed `SIGSEGV` regression in without-LCK (exclusive read-only) mode. - Fixed `mdbx_check_fs_local()` for CDROM case on Windows. - Fixed nasty typo of typename which caused false `MDBX_CORRUPTED` error in a rare execution path, when the size of the thread-ID type not equal to 8. - Fixed write-after-free memory corruption on latest `macOS` during finalization/cleanup of thread(s) that executed read transaction(s). > The issue was suddenly discovered by a [CI](https://en.wikipedia.org/wiki/Continuous_integration) > after adding an iteration with macOS 11 "Big Sur", and then reproduced on recent release of macOS 12 "Monterey". > The issue was never noticed nor reported on macOS 10 "Catalina" nor others. > Analysis shown that the problem caused by a change in the behavior of the system library (internals of dyld and pthread) > during thread finalization/cleanup: now a memory allocated for a `__thread` variable(s) is released > before execution of the registered Thread-Local-Storage destructor(s), > thus a TLS-destructor will write-after-free just by legitime dereference any `__thread` variable. > This is unexpected crazy-like behavior since the order of resources releasing/destroying > is not the reverse of ones acquiring/construction order. Nonetheless such surprise > is now workarounded by using atomic compare-and-swap operations on a 64-bit signatures/cookies. - Fixed UBSAN warnings. - Fixed Elbrus/E2K LCC 1.26 compiler warnings (memory model for atomic operations, etc). - Fixed warnings while build by MinGW, MSVC 2022, CLANG 14, CLANG 15, GCC 12. - Fixed non-x86 Windows builds. Please refer to the Git' log and [libmdbx' ChangeLog](https://github.com/erthink/libmdbx/blob/master/ChangeLog.md) for more information. Signed-off-by: Леонид Юрьев (Leonid Yuriev) <leo@yuriev.ru>
Этот тег не содержит заметок к релизу