mirror of
https://github.com/isar/libmdbx.git
synced 2025-03-13 20:18:15 +08:00
mdbx: clarify logging for MDBX_WANNA_RECOVERY in case sync-needed in rdonly-mode.
Change-Id: I7032cfbce857e2acfb93de383272a4f41ab6a7fb
This commit is contained in:
parent
12339d4e7c
commit
6eaa838e3e
26
src/core.c
26
src/core.c
@ -9725,13 +9725,6 @@ static int __cold mdbx_setup_dxb(MDBX_env *env, const int lck_rc) {
|
|||||||
|
|
||||||
if (lck_rc == /* lck exclusive */ MDBX_RESULT_TRUE) {
|
if (lck_rc == /* lck exclusive */ MDBX_RESULT_TRUE) {
|
||||||
mdbx_assert(env, META_IS_STEADY(&meta) && !META_IS_STEADY(head));
|
mdbx_assert(env, META_IS_STEADY(&meta) && !META_IS_STEADY(head));
|
||||||
if (env->me_flags & MDBX_RDONLY) {
|
|
||||||
mdbx_error("rollback needed: (from head %" PRIaTXN
|
|
||||||
" to steady %" PRIaTXN "), but unable in read-only mode",
|
|
||||||
head_txnid, steady_txnid);
|
|
||||||
return MDBX_WANNA_RECOVERY /* LY: could not recovery/rollback */;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (meta_bootid_match(head)) {
|
if (meta_bootid_match(head)) {
|
||||||
MDBX_meta clone = *head;
|
MDBX_meta clone = *head;
|
||||||
uint64_t filesize = env->me_dbgeo.now;
|
uint64_t filesize = env->me_dbgeo.now;
|
||||||
@ -9740,10 +9733,15 @@ static int __cold mdbx_setup_dxb(MDBX_env *env, const int lck_rc) {
|
|||||||
bytes2pgno(env, (uint8_t *)data_page(head) - env->me_map), nullptr,
|
bytes2pgno(env, (uint8_t *)data_page(head) - env->me_map), nullptr,
|
||||||
env->me_psize);
|
env->me_psize);
|
||||||
if (err == MDBX_SUCCESS) {
|
if (err == MDBX_SUCCESS) {
|
||||||
mdbx_warning("opening after an unclean shutdown, "
|
mdbx_warning(
|
||||||
"but boot-id(%016" PRIx64 "-%016" PRIx64 ") is MATCH, "
|
"opening after an unclean shutdown, but boot-id(%016" PRIx64
|
||||||
"rollback NOT needed",
|
"-%016" PRIx64
|
||||||
bootid.x, bootid.y);
|
") is MATCH: rollback NOT needed, steady-sync NEEDED%s",
|
||||||
|
bootid.x, bootid.y,
|
||||||
|
(env->me_flags & MDBX_RDONLY) ? ", but unable in read-only mode"
|
||||||
|
: "");
|
||||||
|
if (env->me_flags & MDBX_RDONLY)
|
||||||
|
return MDBX_WANNA_RECOVERY /* LY: could not recovery/sync */;
|
||||||
meta = clone;
|
meta = clone;
|
||||||
*env->me_unsynced_pages = meta.mm_geo.next;
|
*env->me_unsynced_pages = meta.mm_geo.next;
|
||||||
break;
|
break;
|
||||||
@ -9753,6 +9751,12 @@ static int __cold mdbx_setup_dxb(MDBX_env *env, const int lck_rc) {
|
|||||||
"but last meta not valid, rollback needed",
|
"but last meta not valid, rollback needed",
|
||||||
bootid.x, bootid.y);
|
bootid.x, bootid.y);
|
||||||
}
|
}
|
||||||
|
if (env->me_flags & MDBX_RDONLY) {
|
||||||
|
mdbx_error("rollback needed: (from head %" PRIaTXN
|
||||||
|
" to steady %" PRIaTXN "), but unable in read-only mode",
|
||||||
|
head_txnid, steady_txnid);
|
||||||
|
return MDBX_WANNA_RECOVERY /* LY: could not recovery/rollback */;
|
||||||
|
}
|
||||||
|
|
||||||
const MDBX_meta *const meta0 = METAPAGE(env, 0);
|
const MDBX_meta *const meta0 = METAPAGE(env, 0);
|
||||||
const MDBX_meta *const meta1 = METAPAGE(env, 1);
|
const MDBX_meta *const meta1 = METAPAGE(env, 1);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user