3289 Commits

Author SHA1 Message Date
Леонид Юрьев (Leonid Yuriev)
5ebcb90620 mdbx-cmake: rework linking detection for std::filesystem. 2022-04-07 21:57:49 +03:00
Леонид Юрьев (Leonid Yuriev)
39a4a89650 mdbx++: declare mdbx::filesystem if available. 2022-04-07 18:00:23 +03:00
Леонид Юрьев (Leonid Yuriev)
68ac48235e mdbx-ci: add if-failure step to github-actions to dump all *.err logs. 2022-04-06 12:44:30 +03:00
Леонид Юрьев (Leonid Yuriev)
eb3fc985d6 mdbx-make: refine GNUmakefile to avoid bug of GNU Make 3.81 2022-04-06 12:43:58 +03:00
Леонид Юрьев (Leonid Yuriev)
c9dfb7d8c2 mdbx-cmake: add workaround for LCC 1.25 bug of class inline static constexpr member field definition. 2022-04-06 12:43:58 +03:00
Леонид Юрьев (Leonid Yuriev)
437cd0d3d7 mdbx-cmake: minor refine version detection of Elbrus LCC compiler. 2022-04-06 12:43:58 +03:00
Леонид Юрьев (Leonid Yuriev)
f054ceeab8 mdbx-cmake: add linking with stdc++fs for LCC < 1.26 2022-04-06 12:43:58 +03:00
Леонид Юрьев (Leonid Yuriev)
7b95720f59 mdbx++: add support for legacy experimental/filesystem. 2022-04-05 22:20:39 +03:00
Леонид Юрьев (Leonid Yuriev)
64e23c9be0 mdbx-make: add probe4 prefix for error-log files. 2022-04-05 13:07:54 +03:00
Леонид Юрьев (Leonid Yuriev)
cabead30b5 mdbx: minor cosmetics. 2022-03-31 00:31:49 +03:00
Леонид Юрьев (Leonid Yuriev)
688d4495c5 mdbx: update ChangeLog. 2022-03-30 19:12:42 +03:00
Леонид Юрьев (Leonid Yuriev)
b6d36e2235 mdbx-ci: add 'build by make' step info mingw action. 2022-03-30 18:50:34 +03:00
Леонид Юрьев (Leonid Yuriev)
ebf7bf7583 mdbx-make: support for MinGW. 2022-03-30 18:13:44 +03:00
Леонид Юрьев (Leonid Yuriev)
6f37c8e57f mdbx: resolve all warnings from MinGW. 2022-03-30 18:13:08 +03:00
Leonid Yuriev
21da42d23d mdbx: fix built-in status of MDBX_WITHOUT_MSVC_CRT option. 2022-03-30 18:10:03 +03:00
Леонид Юрьев (Leonid Yuriev)
2497437060 mdbx: mark the parent transaction dirty in case the undo of the geometry update failed during abortion of a nested transaction. 2022-03-29 18:57:35 +03:00
Леонид Юрьев (Leonid Yuriev)
33a9395afe mdbx: use MDBX_EPERM to indicate that the geometry cannot be updated instead of `MDBX_RESULT_TRUE'. 2022-03-29 18:57:26 +03:00
Leonid Yuriev
7654c9d9a1 mdbx-test: handle MDBX_RESULT_TRUE from mdbx_env_set_geometry() under Windows. 2022-03-28 23:57:24 +03:00
Leonid Yuriev
27a513682a mdbx: disable C5105 warning for Visual Studio > 15.7 (MSVC > 19.14). 2022-03-28 23:57:24 +03:00
Leonid Yuriev
92cb0cc0db mdbx-cmake: forcing /INCREMENTAL:NO while using LTO/Interprocedutal optimization. 2022-03-28 23:57:24 +03:00
Leonid Yuriev
cf32f4cdb3 mdbx-cmake: removing /W3 when adding /W4 to avoid stupid MSVC warnings. 2022-03-28 23:57:24 +03:00
Leonid Yuriev
57978b0f7f mdbx-cmake: add remove_flag and remove_compile_flag macros. 2022-03-28 23:57:24 +03:00
Леонид Юрьев (Leonid Yuriev)
eb532b8907 mdbx-tools: add check for log-level. 2022-03-28 23:57:24 +03:00
Леонид Юрьев (Leonid Yuriev)
6f06641bf2 mdbx-tools: handle NULL from memory allocation functions. 2022-03-28 23:44:31 +03:00
Леонид Юрьев (Leonid Yuriev)
1ccc9b3e3b mdbx-make: add missed "--match=v[0-9]*" to git describe. 2022-03-28 09:19:39 +03:00
Леонид Юрьев (Leonid Yuriev)
ec0379ad93 mdbx-cmake: add missed "--match=v[0-9]*" to git describe. 2022-03-28 09:16:15 +03:00
Леонид Юрьев (Leonid Yuriev)
18789654fc mdbx: update ChangeLog. 2022-03-27 16:01:04 +03:00
Леонид Юрьев (Leonid Yuriev)
bac546bdfa mdbx-make: add tools-static target. 2022-03-27 14:01:18 +03:00
Леонид Юрьев (Leonid Yuriev)
a6b506be45 mdbx-test: minor refine Valgrind-suppressions for gcc-isra. 2022-03-25 13:54:34 +03:00
Леонид Юрьев (Leonid Yuriev)
6380f2e844 mdbx: minor reformat (cosmetics). 2022-03-25 13:47:37 +03:00
Леонид Юрьев (Leonid Yuriev)
fef90d2a3c mdbx: add explicit memset() for debugging. 2022-03-25 13:47:37 +03:00
Леонид Юрьев (Leonid Yuriev)
d522069080 mdbx: fix rare SIGSEGV in cursor tracking code.
The error was that the array of pointers in the transaction zeroed by the
value of env->me_numdbs and before txn->mt_numdbs was set to env->me_numdbs.
Thus, a cursor pointer(s) in the starting transaction could uninitialized if
another thread opened a dbi-handle(s) between the two aforementioned events.
2022-03-25 13:05:46 +03:00
Леонид Юрьев (Leonid Yuriev)
d5e4c198d8
mdbx: release v0.11.6
The stable release with the complete workaround for an incoherence flaw of Linux unified page/buffer cache.
Nonetheless the cause for this trouble may be an issue of Intel CPU cache/MESI.
See [issue#269](https://github.com/erthink/libmdbx/issues/269) for more information.

Acknowledgements:
-----------------

 - [David Bouyssié](https://github.com/david-bouyssie) for [Scala bindings](https://github.com/david-bouyssie/mdbx4s).
 - [Michelangelo Riccobene](https://github.com/mriccobene) for reporting and testing.

Fixes:
------

 - [Added complete workaround](https://github.com/erthink/libmdbx/issues/269) for an incoherence flaw of Linux unified page/buffer cache.
 - [Fixed](https://github.com/erthink/libmdbx/issues/272) cursor reusing for read-only transactions.
 - Fixed copy&paste typo inside `mdbx::cursor::find_multivalue()`.

Minors:
-------

 - Minor refine C++ API for convenience.
 - Minor internals refines.
 - Added `lib-static` and `lib-shared` targets for make.
 - Added minor workaround for AppleClang 13.3 bug.
 - Clarified error messages of a signature/version mismatch.

Signed-off-by: Леонид Юрьев (Leonid Yuriev) <leo@yuriev.ru>
v0.11.6
2022-03-24 20:44:21 +03:00
Леонид Юрьев (Leonid Yuriev)
415d0d1dfb mdbx: update ChangeLog. 2022-03-24 19:19:53 +03:00
Леонид Юрьев (Leonid Yuriev)
50d5b2345e mdbx-test: add Valgrind-suppressions for bcmp/memcmp of page-check inside mdbx_iov_write().
Related to https://github.com/erthink/libmdbx/issues/269.
2022-03-24 12:11:50 +03:00
Леонид Юрьев (Leonid Yuriev)
d13534967a mdbx++: fix copy&paste typo inside mdbx::cursor::find_multivalue(). 2022-03-24 12:11:50 +03:00
Леонид Юрьев (Leonid Yuriev)
43070c7b26 mdbx: minor fix meta_checktxnid() for Valgrind/ASAN usage.
Related to https://github.com/erthink/libmdbx/issues/269.
2022-03-24 12:11:50 +03:00
Леонид Юрьев (Leonid Yuriev)
45f8197635 mdbx: clarify/refine error messages of a signature/version mismatch. 2022-03-24 00:19:34 +03:00
Леонид Юрьев (Leonid Yuriev)
3db02d2236 mdbx++: explicitly define noexcept copy-assignment ops as workaround for AppleClang > 13.3 bug.
Try workaround for https://github.com/erthink/libmdbx/issues/278
2022-03-23 18:06:28 +03:00
Леонид Юрьев (Leonid Yuriev)
b79f6712e3 mdbx: refine override_meta() to preserve format-signature for legacy/zero mod_txnid. 2022-03-23 00:48:41 +03:00
Леонид Юрьев (Leonid Yuriev)
de63041b7d mdbx: add MDBX_DBG_DONT_UPGRADE flag. 2022-03-23 00:48:41 +03:00
Леонид Юрьев (Leonid Yuriev)
a5c064c33e mdbx: preserve (don't upgrade) format-signature during turn to a specified meta-page while recovery. 2022-03-23 00:48:41 +03:00
Your Name
9c832c24a6 mdbx: minor fix error-message space. 2022-03-23 00:48:41 +03:00
Леонид Юрьев (Leonid Yuriev)
c4a5325aaf mdbx: check-and-retry against page arrival as a workaround for unified page/buffer cache incoherency.
Part 2 of 2 of the workaround for https://github.com/erthink/libmdbx/issues/269.
2022-03-08 17:09:29 +03:00
Леонид Юрьев (Leonid Yuriev)
93cf99a07c mdbx: drop the previous temporary workaround for unified page/buffer cache incoherency.
Related to https://github.com/erthink/libmdbx/issues/269.
2022-03-06 13:22:57 +03:00
Леонид Юрьев (Leonid Yuriev)
00ed61c685 mdbx: check-and-retry a mvcc-snapshot for unified page/buffer cache coherency.
Part 1 of 2 of the workaround for https://github.com/erthink/libmdbx/issues/269.
2022-03-06 13:22:38 +03:00
Леонид Юрьев (Leonid Yuriev)
f84d9f6208 mdbx++: minor refine mdbx::cursor::erase(). 2022-03-06 00:13:11 +03:00
Леонид Юрьев (Leonid Yuriev)
9569b864ff mdbx-test: fix quoting for tr args inside long_stochastic.sh 2022-03-05 15:37:32 +03:00
Леонид Юрьев (Leonid Yuriev)
8b69be8def mdbx: update ChangeLog. 2022-03-05 15:14:20 +03:00
Леонид Юрьев (Leonid Yuriev)
4c619e32f7 mdbx: move origin to https://gitflic.ru/project/erthink/libmdbx. 2022-03-05 14:39:02 +03:00