Леонид Юрьев (Leonid Yuriev)
6eefa05f3d
mdbx: minor refine CC_RETIRING
handling.
2022-07-07 14:10:19 +03:00
Леонид Юрьев (Leonid Yuriev)
ca3f188370
mdbx: extend CHECK_LEAF_TYPE()
by adding CC_OVERFLOW
.
2022-07-07 14:10:19 +03:00
Леонид Юрьев (Leonid Yuriev)
498514dae1
mdbx: remove unneeded CC_COPYING
.
2022-07-07 14:10:19 +03:00
Леонид Юрьев (Leonid Yuriev)
1740f8227a
mdbx: rework copy-with-compactification.
...
Кроме небольшого рефакторинга здесь реализуется более регулярный способ
обхода дерева при копировании с компактификаций. В частности, полная
инициализация курсоров позволяет выполнять больше проверок/контроля
структуры БД и избавиться от флажка CC_COPYING.
Beside a small refactoring, a more regular way of traversing the tree
when copying with compactification is implemented here. In particular,
full initialization of cursors allows to perform more checks/control of
the DB structure and get rid of the CC_COPYING flag.
2022-07-07 14:10:19 +03:00
Леонид Юрьев (Leonid Yuriev)
2d300d807b
mdbx: extract node_read_bigdata()
.
2022-07-07 14:10:19 +03:00
Леонид Юрьев (Leonid Yuriev)
d4ef9bf233
mdbx: rework page validation/checking, add MDBX_VALIDATION
option (squashed).
...
Здесь основная часть изменений преобразующих отладочную проверку страниц
в регулярный и доступный пользователю осторожный/безопасный режим работы
с потенциально поврежденной БД.
Here the major part of the changes that transform a debugging check of
pages into a regular and user-accessible careful/safe mode for working
with a potentially corrupted database.
2022-07-07 14:10:09 +03:00
Леонид Юрьев (Leonid Yuriev)
6c5ff863ff
mdbx: remove pp_txnid4chk()
, preparing to rework of page checking/validation.
2022-07-05 15:32:09 +03:00
Леонид Юрьев (Leonid Yuriev)
48c6051482
mdbx: minor fix meta_checktxnid()
to avoid assertion in debug mode.
2022-06-29 13:37:26 +03:00
Леонид Юрьев (Leonid Yuriev)
23bbceb367
mdbx: minor fix EINVAL
from mdbx_env_set_geometry()
.
...
Silently growth `size_lower` to the `MIN_PAGENO` instead of returning `MDBX_EINVAL`.
2022-06-27 13:55:44 +03:00
Леонид Юрьев (Leonid Yuriev)
065e5849da
mdbx: speedup GC-related pnl-merge and sequence-search.
2022-06-27 12:37:29 +03:00
Леонид Юрьев (Leonid Yuriev)
e3a09db3da
mdbx: always coalescing GC records, regardless to MDBX_COALESCE
flag.
2022-06-27 12:37:29 +03:00
Леонид Юрьев (Leonid Yuriev)
ece2fe2514
mdbx: split page_alloc()
and page_new()
to fast- and slow/rare- parts.
2022-06-27 12:37:29 +03:00
Леонид Юрьев (Leonid Yuriev)
f1ccc717b4
mdbx: add update-gc context (extracted from bigfoot
).
2022-06-27 11:27:05 +03:00
Леонид Юрьев (Leonid Yuriev)
3817236b68
mdbx: avoid memory-model from variables for C11 atomics (workaround for lcc 1.26).
2022-06-12 20:04:35 +03:00
Леонид Юрьев (Leonid Yuriev)
c082eb7d8a
mdbx: use _tlv_atexit()
on Darwin/MacOSX.
2022-06-11 21:16:29 +03:00
Леонид Юрьев (Leonid Yuriev)
abac366eac
mdbx: rework/fix rthc-cleanup using pthread' tsd to avoid write-after-free (critical).
2022-06-11 21:16:29 +03:00
Леонид Юрьев (Leonid Yuriev)
63f8eb253d
mdbx: do not enable ASAN.detect_leaks in macOS since unsupported.
2022-06-10 17:26:10 +03:00
Леонид Юрьев (Leonid Yuriev)
117be44c44
mdbx: fix nasty typename typo.
...
Спасибо Станиславу Очеретному за сообщение о проблеме.
2022-06-08 20:57:42 +03:00
Леонид Юрьев (Leonid Yuriev)
cdb16c9f00
mdbx: minor fix/clarify internal comment.
2022-06-07 18:13:49 +03:00
Леонид Юрьев (Leonid Yuriev)
d1e67645a2
mdbx: refine handling EACCESS
while trying create LCK-file on a read-only filesystem.
2022-06-04 02:04:55 +03:00
Леонид Юрьев (Leonid Yuriev)
a4da10bc62
mdbx: minor fix LCK-initialization.
2022-06-03 22:40:18 +03:00
Леонид Юрьев (Leonid Yuriev)
e795fe7c3e
mdbx: fix without-LCK (exclusive + readonly) mode.
2022-06-03 22:39:11 +03:00
Леонид Юрьев (Leonid Yuriev)
d9407ee648
mdbx: minor refine page_alloc()
internal logging.
2022-05-31 17:48:23 +03:00
Леонид Юрьев (Leonid Yuriev)
c7bde8be8d
mdbx: rework internal DBI-handles serials, validation and import into a txn (squashed).
2022-05-31 17:48:10 +03:00
Леонид Юрьев (Leonid Yuriev)
21e1dc3248
mdbx: fix minor warnings from modern Apple's CLANG.
2022-05-15 23:42:57 +03:00
Леонид Юрьев (Leonid Yuriev)
5cd4190f2d
mdbx: fix copy&paste bug.
...
Resolves https://gitflic.ru/project/erthink/libmdbx/issue/5
2022-05-12 14:21:19 +03:00
Леонид Юрьев (Leonid Yuriev)
405de05ca9
mdbx: return MDBX_RESULT_TRUE
on empty transaction commit.
2022-05-12 13:11:59 +03:00
Леонид Юрьев (Leonid Yuriev)
548d0a50b8
mdbx: minor refine logging inside page_alloc()
.
2022-05-04 19:07:33 +03:00
Леонид Юрьев (Leonid Yuriev)
f57ca4fbf6
mdbx: minor refine logging inside fetch_sdb()
.
2022-05-04 18:00:54 +03:00
Леонид Юрьев (Leonid Yuriev)
838f8d8fab
mdbx: move most of transactions flags to public API.
2022-05-03 11:49:28 +03:00
Леонид Юрьев (Leonid Yuriev)
447d6bfca5
mdbx: add logging to mdbx_fetch_sdb()
to help users debugging complex DBI use cases.
2022-05-01 12:02:40 +03:00
Леонид Юрьев (Leonid Yuriev)
bb377fd20e
mdbx: merge branch master
into devel
.
2022-04-21 15:44:23 +03:00
Леонид Юрьев (Leonid Yuriev)
a2aa6667e1
mdbx: avoid 32-bit Bionic/Android hang within pthread_mutex_lock()
.
2022-04-21 15:41:25 +03:00
Леонид Юрьев (Leonid Yuriev)
6d15836171
mdbx: use todo4recovery://erased_by_github/
for dead (or temporarily lost) resources.
2022-04-21 15:34:53 +03:00
Леонид Юрьев (Leonid Yuriev)
ed23956e11
mdbx: basic cleanup from dead github and another corrupted services.
2022-04-20 06:42:16 +03:00
Леонид Юрьев (Leonid Yuriev)
9fa4e21165
mdbx: fix assertion regression.
...
Fixes https://github.com/ledgerwatch/erigon/issues/3874 .
This was a minor regression after the c4a5325aafd3f03ce7520731b9da7253d7d178f0
that affects only debug builgs (with enabled assertions) and only when the added
code catch a incoherency of unified page/buffer cache.
2022-04-11 21:52:46 +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)
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)
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)
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