Skip to content

Commit 9dfe32d

Browse files
safe (#42)
1 parent cef882b commit 9dfe32d

1 file changed

Lines changed: 26 additions & 6 deletions

File tree

mdbx/mdbx.c

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
* <http://www.OpenLDAP.org/license.html>. */
1313

1414
#define xMDBX_ALLOY 1
15-
#define MDBX_BUILD_SOURCERY 268e19480a95f8af62408394a79062c88b08bf4199e0200629bf1c06b484c27c_v0_11_0_0_gfcb8cd21
15+
#define MDBX_BUILD_SOURCERY e5282b30d89e877fff2a5d79d89fc4ade5841a57bccc0bd61d79cbb4e8cf271f_v0_11_1_0_g113162b6
1616
#ifdef MDBX_CONFIG_H
1717
#include MDBX_CONFIG_H
1818
#endif
@@ -68,7 +68,7 @@
6868
#endif
6969
#ifndef _CRT_SECURE_NO_WARNINGS
7070
#define _CRT_SECURE_NO_WARNINGS
71-
#endif
71+
#endif /* _CRT_SECURE_NO_WARNINGS */
7272
#if _MSC_VER > 1800
7373
#pragma warning(disable : 4464) /* relative include path contains '..' */
7474
#endif
@@ -551,7 +551,7 @@ extern "C" {
551551
#if defined(_WIN32) || defined(_WIN64)
552552
#if !defined(_CRT_SECURE_NO_WARNINGS)
553553
#define _CRT_SECURE_NO_WARNINGS
554-
#endif
554+
#endif /* _CRT_SECURE_NO_WARNINGS */
555555
#if !defined(_NO_CRT_STDIO_INLINE) && MDBX_BUILD_SHARED_LIBRARY && \
556556
!defined(xMDBX_TOOLS) && MDBX_WITHOUT_MSVC_CRT
557557
#define _NO_CRT_STDIO_INLINE
@@ -15293,6 +15293,26 @@ __cold static int mdbx_setup_dxb(MDBX_env *env, const int lck_rc,
1529315293

1529415294
atomic_store32(&env->me_lck->mti_discarded_tail,
1529515295
bytes2pgno(env, used_aligned2os_bytes), mo_Relaxed);
15296+
15297+
if ((env->me_flags & MDBX_RDONLY) == 0 && env->me_stuck_meta < 0) {
15298+
for (int n = 0; n < 3; ++n) {
15299+
MDBX_meta *const meta = METAPAGE(env, n);
15300+
if (unlikely(unaligned_peek_u64(4, &meta->mm_magic_and_version) !=
15301+
MDBX_DATA_MAGIC)) {
15302+
const txnid_t txnid = mdbx_meta_txnid_fluid(env, meta);
15303+
mdbx_notice("%s %s"
15304+
"meta[%u], txnid %" PRIaTXN,
15305+
"updating db-format signature for",
15306+
META_IS_STEADY(meta) ? "stead-" : "weak-", n, txnid);
15307+
err = mdbx_override_meta(env, n, txnid, meta);
15308+
if (unlikely(err != MDBX_SUCCESS)) {
15309+
mdbx_error("%s meta[%u], txnid %" PRIaTXN ", error %d",
15310+
"updating db-format signature for", n, txnid, err);
15311+
return err;
15312+
}
15313+
}
15314+
}
15315+
}
1529615316
} /* lck exclusive, lck_rc == MDBX_RESULT_TRUE */
1529715317

1529815318
//---------------------------------------------------- setup madvise/readahead
@@ -28459,10 +28479,10 @@ __dll_export
2845928479
const struct MDBX_version_info mdbx_version = {
2846028480
0,
2846128481
11,
28482+
1,
2846228483
0,
28463-
0,
28464-
{"2021-10-21T15:17:18+03:00", "7faddaf52d678a2afcb4cf2ca87075b8aaaa9e0e", "fcb8cd214591f37d2738b83fd9f23f3630844774",
28465-
"v0.11.0-0-gfcb8cd21"},
28484+
{"2021-10-23T20:15:50+03:00", "d2935a94c0f91ab07ba6a941dd01f58965a0a8f7", "113162b6511e1de791599ac87914930a1f6b02ee",
28485+
"v0.11.1-0-g113162b6"},
2846628486
sourcery};
2846728487

2846828488
__dll_export

0 commit comments

Comments
 (0)