Leonid Yuriev
514910621e
mdbx: return MDBX_CORRUPTED
instead of MDBX_PAGE_NOTFOUND
for invalid pages.
2021-10-15 01:11:20 +03:00
Leonid Yuriev
7251f47d5b
mdbx: fix typo which lead any error conversion to the 1
.
2021-10-14 20:03:37 +03:00
Leonid Yuriev
4632df5661
mdbx: cleanup non-persistent flags from meta-model.
2021-10-13 16:34:53 +03:00
Leonid Yuriev
11a5c50591
mdbx: fix turn_for_recovery()
for possibility of meta-pages clashing after turn to a particular meta-page.
2021-10-13 16:34:53 +03:00
Leonid Yuriev
3092078709
mdbx: refine handling of weak or invalid meta-pages while a DB opening.
2021-10-13 16:34:53 +03:00
Leonid Yuriev
cbb71058ca
mdbx: refine providing information for the @MAIN and @GC sub-databases of a last committed modification transaction's ID.
2021-10-13 16:34:25 +03:00
Leonid Yuriev
30745e0621
mdbx: refix #pragma pack
for modern compilers and aligned-required arches (hotfix).
...
Fix a regression after the https://github.com/erthink/libmdbx/issues/235
2021-10-13 16:13:22 +03:00
Leonid Yuriev
64e6fa93fd
mdbx: fix #pragma pack
to avoid misalignment for some compilers.
...
Fixes https://github.com/erthink/libmdbx/issues/235 .
2021-10-09 12:36:40 +03:00
Leonid Yuriev
fa0a38c1ac
mdbx: avoid single-page (too small) shrink threshold by default when MDBX_DEBUG > 0
.
2021-10-09 12:30:39 +03:00
Leonid Yuriev
fe0ec8ceca
mdbx: fix and refine mdbx_update_gc()
to avoid infinite looping possibility (squashed).
2021-10-09 12:29:10 +03:00
Leonid Yuriev
fe7186d549
mdbx: reflow comment (cosmetic).
2021-09-30 16:38:07 +03:00
Leonid Yuriev
d2cba98f70
mdbx: always setup madvise while opening DB.
...
This partially revert 7da64b725d920b1602ec0d307581a6cdca997d05.
Hope fix https://github.com/erthink/libmdbx/issues/231
2021-08-25 14:13:07 +03:00
Leonid Yuriev
99b75b5004
mdbx: fix/model minor Coverity issues.
2021-08-16 23:45:56 +03:00
Leonid Yuriev
42d545e579
mdbx: fix minor zero-length memcmp()
UB.
2021-08-14 17:46:34 +03:00
Leonid Yuriev
b6ffec12e4
"mdbx: ignore legacy P_DIRTY
flag (0x10
) for nested/sub-pages.
2021-08-11 15:49:46 +03:00
Leonid Yuriev
65fa0cf8ed
mdbx++: revive encode/decode to hex/base58/base64 (squashed).
2021-07-26 03:53:11 +03:00
Leonid Yuriev
046dc02f73
mdbx: make MDBX_STRINGIFY
macro public.
2021-07-26 03:53:11 +03:00
Leonid Yuriev
e731260056
mdbx: fix SIGSEGV regression while copying DB with enabled audit.
2021-07-26 02:24:15 +03:00
Leonid Yuriev
7759e52850
mdbx-windows: use MachineGuid
of any size for bootid
generation.
2021-07-19 12:07:45 +03:00
Leonid Yuriev
e7336e1d5e
mdbx: add checks for unexpected LEAF2-pages.
...
The fourth case of https://github.com/erthink/libmdbx/issues/217 .
2021-07-19 12:06:08 +03:00
Leonid Yuriev
68aef96f0a
mdbx-tool: minor clarify mdbx_chk' logic key/data checks.
2021-07-19 12:06:08 +03:00
Leonid Yuriev
0b120b8fa9
mdbx-windows: fix bootid
generation for case of change system' time.
2021-07-19 12:05:55 +03:00
Leonid Yuriev
28c36af67c
mdbx: refine built-in ASAN option.
2021-07-16 16:04:09 +03:00
Leonid Yuriev
d67b9eaf17
mdbx: fix ASAN-regression after 1740043678951c5a1a088e6572722de438162ab2.
...
Related to https://github.com/erthink/libmdbx/issues/217
2021-07-16 16:03:49 +03:00
Leonid Yuriev
6034985686
mdbx: add MDBX_ASAN_(UN)POISON_MEMORY_REGION()
macros.
2021-07-16 16:03:49 +03:00
Leonid Yuriev
7da64b725d
mdbx: perform madvise only for the first process opens a DB.
2021-07-16 16:03:49 +03:00
Leonid Yuriev
8aaf5d071b
mdbx: fix pagecheck()
.
...
Added a check that the data of the BIGDATA node (containing the target page number) is located within the boundaries of the page being checked.
The third case of https://github.com/erthink/libmdbx/issues/217 .
2021-07-16 15:55:18 +03:00
Leonid Yuriev
b6233ae2e5
mdbx-tools: minor fix/unify error counters.
2021-07-14 10:29:54 +03:00
Leonid Yuriev
fe5f008d39
mdbx-tools: skip iteration & checking records if corresponding tree is corrupted.
...
Hope final for https://github.com/erthink/libmdbx/issues/217
2021-07-14 03:59:56 +03:00
Leonid Yuriev
c8743cb9c4
mdbx: fix null-deref while override invalid meta-pages.
...
Related to https://github.com/erthink/libmdbx/issues/217
2021-07-14 03:59:52 +03:00
Leonid Yuriev
4de2dcebb5
mdbx: increase the MDBX_READERS_LIMIT
to 32767
.
...
Fixes https://github.com/erthink/libmdbx/issues/219 .
2021-07-11 02:44:19 +03:00
Leonid Yuriev
678a80dd19
mdbx: fix hang/shutdown on big-endian platforms without __cxa_thread_atexit()
.
...
Change-Id: I1bf706abaaf42d5b40751d85ed7c7a83d02acaf5
2021-07-11 02:25:39 +03:00
Leonid Yuriev
c18bf4f898
mdbx: minor clarify mdbx_mapresize()
.
2021-07-11 02:25:39 +03:00
Leonid Yuriev
728e7f92b2
mdbx: minor fix mdbx_mresize()
to preserve result code for read-only cases.
2021-07-11 02:25:39 +03:00
Leonid Yuriev
1740043678
mdbx: minimize the size of poisoned/unpoisoned regions to avoid ASAN hangs.
...
More for second case of https://github.com/erthink/libmdbx/issues/217
2021-07-11 02:25:26 +03:00
Leonid Yuriev
891d68838a
mdbx: return MDBX_TOO_LARGE
under Valgrind/ASAN if being opened DB is 100 larger than RAM.
...
More for second case of https://github.com/erthink/libmdbx/issues/217
2021-07-11 02:25:07 +03:00
Leonid Yuriev
108398c213
mdbx: refine rollback while opening weak/invalid DB.
...
More for https://github.com/erthink/libmdbx/issues/217
2021-07-11 02:24:51 +03:00
Leonid Yuriev
8bdee27248
mdbx: create/refactoring override_meta()
.
2021-07-11 02:24:51 +03:00
Leonid Yuriev
00c6dc9788
mdbx: re-verify head
and steady
meta-pages while opening db by the first process.
...
Basic fix for https://github.com/erthink/libmdbx/issues/217
2021-07-11 02:24:06 +03:00
Leonid Yuriev
fb67682a79
mdbx: refine mdbx_validate_meta()
.
2021-07-10 17:24:26 +03:00
Leonid Yuriev
5ed50a4739
mdbx: remove filesize
arg from header/meta read functions (refactoring).
2021-07-10 16:10:30 +03:00
Leonid Yuriev
c30c3def8b
mdbx: the filesize
field of mdbx_mmap_t
now is not specific for Windows.
2021-07-10 16:10:30 +03:00
Леонид Юрьев (Leonid Yuriev)
2f74f405ae
mdbx: avoid returning MDBX_TXN_FULL
error when possible.
2021-07-09 18:29:31 +03:00
Leonid Yuriev
39c5e66ed1
mdbx: fix safe64_reset()
for platforms without atomic 64-bit compare-and-swap.
2021-07-09 17:44:27 +03:00
Leonid Yuriev
bd2bb51f0f
mdbx++: rework buffer::silo
to avoid use std::string
.
2021-07-06 13:45:26 +03:00
Leonid Yuriev
cf5f31c577
mdbx: make __cold
attribute first (cosmetic).
2021-07-03 01:51:04 +03:00
Leonid Yuriev
fa49e5a57b
mdbx++: rename slice::from/to_FOO_bytes()
to `slice::envisage_from/to_FOO_length()'.
2021-07-02 21:20:04 +03:00
Leonid Yuriev
5d4281fbbe
mdbx: minor fix spelling.
2021-06-26 18:54:00 +03:00
Leonid Yuriev
a5e10b4ea1
mdbx: minor refine mdbx_cursor_eof()
.
2021-06-18 01:17:48 +03:00
Leonid Yuriev
b8e621cb2f
mdbx: mdbx: avoid log a warning about empty header during DB creation.
...
Resolve https://github.com/erthink/libmdbx/issues/205 .
2021-06-18 01:09:26 +03:00