!243 [sync] PR-238: mon: fix mds metadata lost in one case
From: @openeuler-sync-bot Reviewed-by: @liuqinfei Signed-off-by: @liuqinfei
This commit is contained in:
commit
3cc36d71da
42
0004-fix-mds-metadata-lost-in-one-case.patch
Normal file
42
0004-fix-mds-metadata-lost-in-one-case.patch
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
From 56cbf3f0716b556c815487d719abe86021125925 Mon Sep 17 00:00:00 2001
|
||||||
|
From: shimin <shimin@kuaishou.com>
|
||||||
|
Date: Wed, 10 Apr 2024 09:10:04 +0800
|
||||||
|
Subject: [PATCH] mon:fix mds metadata lost in one case
|
||||||
|
In most cases, peon's pending_metadata is inconsistent with mon's db.
|
||||||
|
When a peon turns into leader, and at the same time a active mds stops,
|
||||||
|
the new leader may flush wrong mds metadata into db. So we meed to
|
||||||
|
update mds metadata from db at every fsmap change.
|
||||||
|
|
||||||
|
This phenomenon can be reproduce like this:
|
||||||
|
A Cluster with 3 mon and 3 mds (one active, other two standby), 6 osd.
|
||||||
|
step 1. stop two standby mds;
|
||||||
|
step 2. restart all mon; (make pending_medata consistent with db)
|
||||||
|
step 3. start other two mds
|
||||||
|
step 4. stop leader mon
|
||||||
|
step 5. run "ceph mds metadata" command to check mds metadata
|
||||||
|
step 6. stop active mds
|
||||||
|
step 7. run "ceph mds metadata" command to check mds metadata again
|
||||||
|
|
||||||
|
In step 7, we would find mds metadata lost.
|
||||||
|
|
||||||
|
Fixes: https://tracker.ceph.com/issues/63166
|
||||||
|
Signed-off-by: shimin <shimin@kuaishou.com>
|
||||||
|
---
|
||||||
|
src/mon/MDSMonitor.cc | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
diff --git a/src/mon/MDSMonitor.cc b/src/mon/MDSMonitor.cc
|
||||||
|
index 4b27d828c..0ac5060f7 100644
|
||||||
|
--- a/src/mon/MDSMonitor.cc
|
||||||
|
+++ b/src/mon/MDSMonitor.cc
|
||||||
|
@@ -136,6 +136,7 @@ void MDSMonitor::update_from_paxos(bool *need_bootstrap)
|
||||||
|
<< ", my e " << get_fsmap().epoch << dendl;
|
||||||
|
ceph_assert(version > get_fsmap().epoch);
|
||||||
|
|
||||||
|
+ load_metadata(pending_metadata);
|
||||||
|
load_health();
|
||||||
|
|
||||||
|
// read and decode
|
||||||
|
--
|
||||||
|
2.27.0
|
||||||
|
|
||||||
@ -174,7 +174,7 @@
|
|||||||
#################################################################################
|
#################################################################################
|
||||||
Name: ceph
|
Name: ceph
|
||||||
Version: 18.2.2
|
Version: 18.2.2
|
||||||
Release: 2
|
Release: 3
|
||||||
%if 0%{?fedora} || 0%{?rhel} || 0%{?openEuler}
|
%if 0%{?fedora} || 0%{?rhel} || 0%{?openEuler}
|
||||||
Epoch: 2
|
Epoch: 2
|
||||||
%endif
|
%endif
|
||||||
@ -195,6 +195,7 @@ Source0: %{?_remote_tarball_prefix}ceph-18.2.2.tar.gz
|
|||||||
Patch1: 0001-modify-xsimd-source-to-local-and-set-cxx17-for-arrow.patch
|
Patch1: 0001-modify-xsimd-source-to-local-and-set-cxx17-for-arrow.patch
|
||||||
Patch2: 0002-fix-compilation-with-cython3.patch
|
Patch2: 0002-fix-compilation-with-cython3.patch
|
||||||
Patch3: 0003-fix-CVE-2023-46159.patch
|
Patch3: 0003-fix-CVE-2023-46159.patch
|
||||||
|
Patch4: 0004-fix-mds-metadata-lost-in-one-case.patch
|
||||||
|
|
||||||
%if 0%{?suse_version}
|
%if 0%{?suse_version}
|
||||||
# _insert_obs_source_lines_here
|
# _insert_obs_source_lines_here
|
||||||
@ -2632,6 +2633,9 @@ exit 0
|
|||||||
%{_datadir}/snmp/mibs
|
%{_datadir}/snmp/mibs
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Apr 10 2024 cenhuilin <cenhuilin@kylinos.cn> - 2:18.2.2-3
|
||||||
|
- mon: fix mds metadata lost in one case
|
||||||
|
|
||||||
* Fri Mar 22 2024 lizhipeng <qiuxinyidian@gmail.com> - 2:18.2.2-2
|
* Fri Mar 22 2024 lizhipeng <qiuxinyidian@gmail.com> - 2:18.2.2-2
|
||||||
- fix CVE-2023-46159
|
- fix CVE-2023-46159
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user