CAUTION: This email originated from outside of the LMB:
*.-dparmar@xxxxxxxxxx-.*
Do not click links or open attachments unless you recognize the sender
and know the content is safe.
If you think this is a phishing email, please forward it to
phishing@xxxxxxxxxxxxxxxxx
--
Hi Ivan,
The solution (which has been successful for us in the past) is to
reset the journal. This would bring the fs back online and return the
MDSes to a stable state, but some data would be lost—the data in the
journal that hasn't been flushed to the backing store would be gone.
Therefore, you should try to flush out as much journal data as
possible before resetting the journal.
Here are the steps for this entire process:
1) Bring the FS offline
$ ceph fs fail <fs_name>
2) Recover dentries from journal (run it with every MDS Rank)
$ cephfs-journal-tool --rank=<fs_name>:<mds-rank> event
recover_dentries summary
3) Reset the journal (again with every MDS Rank)
$ cephfs-journal-tool --rank=<fs_name>:<mds-rank> journal reset
4) Bring the FS online
$ cephfs fs set <fs_name> joinable true
5) Restart the MDSes
6) Perform scrub to ensure consistency of fs
$ ceph tell mds.<fs_name>:0 scrub start <path> [scrubopts] [tag]
# you could try a recursive scrub maybe `ceph tell mds.<fs_name>:0
scrub start / recursive`
Some important notes to keep in mind:
* Recovering dentries will take time (generally, rank 0 is the most
time-consuming, but the rest should be quick).
* cephfs-journal-tool and metadata OSDs are bound to use a significant
CPU percentage. This is because cephfs-journal-tool has to swig the
journal data and flush it out to the backing store, which also makes
the metadata operations go rampant, resulting in OSDs taking a
significant percentage of CPU.
Do let me know how this goes.
On Thu, Jun 27, 2024 at 3:44 PM Ivan Clayson <ivan@xxxxxxxxxxxxxxxxx>
wrote:
Hi Dhairya,
We can induce the crash by simply restarting the MDS and the crash
seems to happen when an MDS goes from up:standby to up:replay. The
MDS works through a few files in the log before eventually
crashing where I've included the logs for this here (this is after
I imported the backed up journal which I hope was successful but
please let me know if you suspect it wasn't!):
https://www.mrc-lmb.cam.ac.uk/scicomp/data/uploads/ceph/ceph-mds.pebbles-s3.mds_restart_crash.log
With respect to the client logs, are you referring to the clients
who are writing to the filesystem? We don't typically run them in
any sort of debug mode and we have quite a few machines running
our backup system but we can look an hour or so before the first
MDS crash (though I don't know if this is when the de-sync
occurred). Here are some MDS logs with regards to the initial
crash on Saturday morning though which may be helpful:
-59> 2024-06-22T05:41:43.090+0100 7f184ce82700 10
monclient: tick
-58> 2024-06-22T05:41:43.090+0100 7f184ce82700 10
monclient: _check_auth_rotating have uptodate secrets (they
expire after 2024-06-22T05:41:13.091556+0100)
-57> 2024-06-22T05:41:43.208+0100 7f184de84700 1
mds.pebbles-s2 Updating MDS map to version 2529650 from mon.3
-56> 2024-06-22T05:41:43.208+0100 7f184de84700 4
mds.0.purge_queue operator(): data pool 6 not found in OSDMap
-55> 2024-06-22T05:41:43.208+0100 7f184de84700 4
mds.0.purge_queue operator(): data pool 3 not found in OSDMap
-54> 2024-06-22T05:41:43.209+0100 7f184de84700 5
asok(0x5592e7968000) register_command objecter_requests hook
0x5592e78f8800
-53> 2024-06-22T05:41:43.209+0100 7f184de84700 10
monclient: _renew_subs
-52> 2024-06-22T05:41:43.209+0100 7f184de84700 10
monclient: _send_mon_message to mon.pebbles-s4 at
v2:10.1.5.134:3300/0 <http://10.1.5.134:3300/0>
-51> 2024-06-22T05:41:43.209+0100 7f184de84700 10
log_channel(cluster) update_config to_monitors: true
to_syslog: false syslog_facility: prio: info to_graylog:
false graylog_host: 127.0.0.1 graylog_port: 12201)
-50> 2024-06-22T05:41:43.209+0100 7f184de84700 4
mds.0.purge_queue operator(): data pool 6 not found in OSDMap
-49> 2024-06-22T05:41:43.209+0100 7f184de84700 4
mds.0.purge_queue operator(): data pool 3 not found in OSDMap
-48> 2024-06-22T05:41:43.209+0100 7f184de84700 4 mds.0.0
apply_blocklist: killed 0, blocklisted sessions (0 blocklist
entries, 0)
-47> 2024-06-22T05:41:43.209+0100 7f184de84700 1
mds.0.2529650 handle_mds_map i am now mds.0.2529650
-46> 2024-06-22T05:41:43.209+0100 7f184de84700 1
mds.0.2529650 handle_mds_map state change up:standby --> up:replay
-45> 2024-06-22T05:41:43.209+0100 7f184de84700 5
mds.beacon.pebbles-s2 set_want_state: up:standby -> up:replay
-44> 2024-06-22T05:41:43.209+0100 7f184de84700 1
mds.0.2529650 replay_start
-43> 2024-06-22T05:41:43.209+0100 7f184de84700 1
mds.0.2529650 waiting for osdmap 473739 (which blocklists
prior instance)
-42> 2024-06-22T05:41:43.209+0100 7f184de84700 10
monclient: _send_mon_message to mon.pebbles-s4 at
v2:10.1.5.134:3300/0 <http://10.1.5.134:3300/0>
-41> 2024-06-22T05:41:43.209+0100 7f1849e7c700 2
mds.0.cache Memory usage: total 299012, rss 37624, heap
182556, baseline 182556, 0 / 0 inodes have caps, 0 caps, 0
caps per inode
-40> 2024-06-22T05:41:43.224+0100 7f184de84700 10
monclient: _renew_subs
-39> 2024-06-22T05:41:43.224+0100 7f184de84700 10
monclient: _send_mon_message to mon.pebbles-s4 at
v2:10.1.5.134:3300/0 <http://10.1.5.134:3300/0>
-38> 2024-06-22T05:41:43.224+0100 7f184de84700 10
monclient: handle_get_version_reply finishing 1 version 473739
-37> 2024-06-22T05:41:43.224+0100 7f1847e78700 2
mds.0.2529650 Booting: 0: opening inotable
-36> 2024-06-22T05:41:43.224+0100 7f1847e78700 2
mds.0.2529650 Booting: 0: opening sessionmap
-35> 2024-06-22T05:41:43.224+0100 7f1847e78700 2
mds.0.2529650 Booting: 0: opening mds log
-34> 2024-06-22T05:41:43.224+0100 7f1847e78700 5 mds.0.log
open discovering log bounds
-33> 2024-06-22T05:41:43.224+0100 7f1847e78700 2
mds.0.2529650 Booting: 0: opening purge queue (async)
-32> 2024-06-22T05:41:43.224+0100 7f1847e78700 4
mds.0.purge_queue open: opening
-31> 2024-06-22T05:41:43.224+0100 7f1847e78700 1
mds.0.journaler.pq(ro) recover start
-30> 2024-06-22T05:41:43.224+0100 7f1847e78700 1
mds.0.journaler.pq(ro) read_head
-29> 2024-06-22T05:41:43.224+0100 7f1847e78700 2
mds.0.2529650 Booting: 0: loading open file table (async)
-28> 2024-06-22T05:41:43.224+0100 7f1847e78700 2
mds.0.2529650 Booting: 0: opening snap table
-27> 2024-06-22T05:41:43.224+0100 7f1847677700 4
mds.0.journalpointer Reading journal pointer '400.00000000'
-26> 2024-06-22T05:41:43.224+0100 7f1850689700 10
monclient: get_auth_request con 0x5592e8987000 auth_method 0
-25> 2024-06-22T05:41:43.225+0100 7f1850e8a700 10
monclient: get_auth_request con 0x5592e8987c00 auth_method 0
-24> 2024-06-22T05:41:43.252+0100 7f1848e7a700 1
mds.0.journaler.pq(ro) _finish_read_head loghead(trim
231160676352, expire 231163662875, write 231163662875,
stream_format 1). probing for end of log (from 231163662875)...
-23> 2024-06-22T05:41:43.252+0100 7f1848e7a700 1
mds.0.journaler.pq(ro) probing for end of the log
-22> 2024-06-22T05:41:43.252+0100 7f1847677700 1
mds.0.journaler.mdlog(ro) recover start
-21> 2024-06-22T05:41:43.252+0100 7f1847677700 1
mds.0.journaler.mdlog(ro) read_head
-20> 2024-06-22T05:41:43.252+0100 7f1847677700 4 mds.0.log
Waiting for journal 0x200 to recover...
-19> 2024-06-22T05:41:43.252+0100 7f1850689700 10
monclient: get_auth_request con 0x5592e8bc6000 auth_method 0
-18> 2024-06-22T05:41:43.253+0100 7f185168b700 10
monclient: get_auth_request con 0x5592e8bc6800 auth_method 0
-17> 2024-06-22T05:41:43.257+0100 7f1847e78700 1
mds.0.journaler.mdlog(ro) _finish_read_head loghead(trim
90131453181952, expire 90131465778558, write 90132009715463,
stream_format 1). probing for end of log (from 90132009715463)...
-16> 2024-06-22T05:41:43.257+0100 7f1847e78700 1
mds.0.journaler.mdlog(ro) probing for end of the log
-15> 2024-06-22T05:41:43.257+0100 7f1847e78700 1
mds.0.journaler.mdlog(ro) _finish_probe_end write_pos =
90132019384791 (header had 90132009715463). recovered.
-14> 2024-06-22T05:41:43.257+0100 7f1847677700 4 mds.0.log
Journal 0x200 recovered.
-13> 2024-06-22T05:41:43.257+0100 7f1847677700 4 mds.0.log
Recovered journal 0x200 in format 1
-12> 2024-06-22T05:41:43.273+0100 7f1848e7a700 1
mds.0.journaler.pq(ro) _finish_probe_end write_pos =
231163662875 (header had 231163662875). recovered.
-11> 2024-06-22T05:41:43.273+0100 7f1848e7a700 4
mds.0.purge_queue operator(): open complete
-10> 2024-06-22T05:41:43.273+0100 7f1848e7a700 1
mds.0.journaler.pq(ro) set_writeable
-9> 2024-06-22T05:41:43.441+0100 7f1847e78700 2
mds.0.2529650 Booting: 1: loading/discovering base inodes
-8> 2024-06-22T05:41:43.441+0100 7f1847e78700 0
mds.0.cache creating system inode with ino:0x100
-7> 2024-06-22T05:41:43.442+0100 7f1847e78700 0
mds.0.cache creating system inode with ino:0x1
-6> 2024-06-22T05:41:43.442+0100 7f1847e78700 2
mds.0.2529650 Booting: 2: replaying mds log
-5> 2024-06-22T05:41:43.442+0100 7f1847e78700 2
mds.0.2529650 Booting: 2: waiting for purge queue recovered
-4> 2024-06-22T05:41:44.090+0100 7f184ce82700 10
monclient: tick
-3> 2024-06-22T05:41:44.090+0100 7f184ce82700 10
monclient: _check_auth_rotating have uptodate secrets (they
expire after 2024-06-22T05:41:14.091638+0100)
-2> 2024-06-22T05:41:44.210+0100 7f1849e7c700 2
mds.0.cache Memory usage: total 588368, rss 308304, heap
207132, baseline 182556, 0 / 15149 inodes have caps, 0 caps, 0
caps per inode
-1> 2024-06-22T05:41:44.642+0100 7f1846675700 -1
/home/jenkins-build/build/workspace/ceph-build/ARCH/x86_64/AVAILABLE_ARCH/x86_64/AVAILABLE_DIST/centos8/DIST/centos8/MACHINE_SIZE/gigantic/release/17.2.7/rpm/el8/BUILD/ceph-17.2.7/src/include/interval_set.h:
In function 'void interval_set<T, C>::erase(T, T,
std::function<bool(T, T)>) [with T = inodeno_t; C = std::map]'
thread 7f1846675700 time 2024-06-22T05:41:44.643146+0100
ceph version 17.2.7
(b12291d110049b2f35e32e0de30d70e9a4c060d2) quincy (stable)
1: (ceph::__ceph_assert_fail(char const*, char const*, int,
char const*)+0x135) [0x7f18568b64a3]
2: /usr/lib64/ceph/libceph-common.so.2(+0x269669)
[0x7f18568b6669]
3: (interval_set<inodeno_t, std::map>::erase(inodeno_t,
inodeno_t, std::function<bool (inodeno_t, inodeno_t)>)+0x2e5)
[0x5592e5027885]
4: (EMetaBlob::replay(MDSRank*, LogSegment*, int,
MDPeerUpdate*)+0x4377) [0x5592e532c7b7]
5: (EUpdate::replay(MDSRank*)+0x61) [0x5592e5330bd1]
6: (MDLog::_replay_thread()+0x7bb) [0x5592e52b754b]
7: (MDLog::ReplayThread::entry()+0x11) [0x5592e4f6a041]
8: /lib64/libpthread.so.0(+0x81ca) [0x7f18558a41ca]
9: clone()
0> 2024-06-22T05:41:44.643+0100 7f1846675700 -1 ***
Caught signal (Aborted) **
in thread 7f1846675700 thread_name:md_log_replay
ceph version 17.2.7
(b12291d110049b2f35e32e0de30d70e9a4c060d2) quincy (stable)
1: /lib64/libpthread.so.0(+0x12cf0) [0x7f18558aecf0]
2: gsignal()
3: abort()
4: (ceph::__ceph_assert_fail(char const*, char const*, int,
char const*)+0x18f) [0x7f18568b64fd]
5: /usr/lib64/ceph/libceph-common.so.2(+0x269669)
[0x7f18568b6669]
6: (interval_set<inodeno_t, std::map>::erase(inodeno_t,
inodeno_t, std::function<bool (inodeno_t, inodeno_t)>)+0x2e5)
[0x5592e5027885]
7: (EMetaBlob::replay(MDSRank*, LogSegment*, int,
MDPeerUpdate*)+0x4377) [0x5592e532c7b7]
8: (EUpdate::replay(MDSRank*)+0x61) [0x5592e5330bd1]
9: (MDLog::_replay_thread()+0x7bb) [0x5592e52b754b]
10: (MDLog::ReplayThread::entry()+0x11) [0x5592e4f6a041]
11: /lib64/libpthread.so.0(+0x81ca) [0x7f18558a41ca]
12: clone()
We have a relatively low debug setting normally so I don't think
many details of the initial crash were captured unfortunately and
the MDS logs before the above (i.e. "-60" and older) are just
beacon messages and _check_auth_rotating checks.
I was wondering whether you have any recommendations in terms of
what actions we could take to bring our filesystem back into a
working state short of rebuilding the entire metadata pool? We are
quite keen to bring our backup back into service urgently as we
currently do not have any accessible backups for our Ceph clusters.
Kindest regards,
Ivan
On 25/06/2024 19:18, Dhairya Parmar wrote:
CAUTION: This email originated from outside of the LMB:
*.-dparmar@xxxxxxxxxx-.*
Do not click links or open attachments unless you recognize the
sender and know the content is safe.
If you think this is a phishing email, please forward it to
phishing@xxxxxxxxxxxxxxxxx
--
On Tue, Jun 25, 2024 at 6:38 PM Ivan Clayson
<ivan@xxxxxxxxxxxxxxxxx> wrote:
Hi Dhairya,
Thank you for your rapid reply. I tried recovering the
dentries for the file just before the crash I mentioned
before and then splicing the transactions from the journal
which seemed to remove that issue for that inode but resulted
in the MDS crashing on the next inode in the journal when
performing replay.
The MDS delegates a range of preallocated inodes (in form of a
set - interval_set<inodeno_t> preallocated_inos) to the clients,
so it can be one inode that is untracked or some inodes from the
range or in worst case scenario - ALL, and this is something that
even the `cephfs-journal-tool` would not be able to tell (since
we're talking about MDS internals which aren't exposed to such
tools). That is the reason why you see "MDS crashing on the next
inode in the journal when performing replay".
An option could be to expose the inode set to some tool or asok
cmd to identify such inodes ranges, which needs to be discussed.
For now, we're trying to address this in [0], you can follow the
discussion there.
[0] https://tracker.ceph.com/issues/66251
Removing all the transactions involving the directory housing
the files that seemed to cause these crashes from the journal
only caused the MDS to fail to even start replay.
I've rolled back our journal to our original version when the
crash first happened and the entire MDS log for the crash can
be found here:
https://www.mrc-lmb.cam.ac.uk/scicomp/data/uploads/ceph/ceph-mds.pebbles-s3.flush_journal.log-25-06-24
Awesome, this would help us a ton. Apart from this, would it be
possible to send us client logs?
Please let us know if you would like any other logs file as
we can easily induce this crash.
Since you can easily induce the crash, can you share the
reproducer please i.e. what all action you take in order to hit this?
Kindest regards,
Ivan
On 25/06/2024 09:58, Dhairya Parmar wrote:
CAUTION: This email originated from outside of the LMB:
*.-dparmar@xxxxxxxxxx-.*
Do not click links or open attachments unless you recognize
the sender and know the content is safe.
If you think this is a phishing email, please forward it to
phishing@xxxxxxxxxxxxxxxxx
--
Hi Ivan,
This looks to be similar to the issue [0] that we're already
addressing at [1]. So basically there is some out-of-sync
event that led the client to make use of the inodes that MDS
wasn't aware of/isn't tracking and hence the crash. It'd be
really helpful if you can provide us more logs.
CC @Rishabh Dave <mailto:ridave@xxxxxxxxxx> @Venky Shankar
<mailto:vshankar@xxxxxxxxxx> @Patrick Donnelly
<mailto:pdonnell@xxxxxxxxxx> @Xiubo Li
<mailto:xiubli@xxxxxxxxxx>
[0] https://tracker.ceph.com/issues/61009
[1] https://tracker.ceph.com/issues/66251
--
***Dhairya Parmar*
Associate Software Engineer, CephFS
<https://www.redhat.com/>IBM, Inc.
On Mon, Jun 24, 2024 at 8:54 PM Ivan Clayson
<ivan@xxxxxxxxxxxxxxxxx> wrote:
Hello,
We have been experiencing a serious issue with our
CephFS backup cluster
running quincy (version 17.2.7) on a RHEL8-derivative
Linux kernel
(Alma8.9, 4.18.0-513.9.1 kernel) where our MDSes for our
filesystem are
constantly in a "replay" or "replay(laggy)" state and
keep crashing.
We have a single MDS filesystem called "ceph_backup"
with 2 standby
MDSes along with a 2nd unused filesystem "ceph_archive"
(this holds
little to no data) where we are using our "ceph_backup"
filesystem to
backup our data and this is the one which is currently
broken. The Ceph
health outputs currently are:
root@pebbles-s1 14:05 [~]: ceph -s
cluster:
id: e3f7535e-d35f-4a5d-88f0-a1e97abcd631
health: HEALTH_WARN
1 filesystem is degraded
insufficient standby MDS daemons available
1319 pgs not deep-scrubbed in time
1054 pgs not scrubbed in time
services:
mon: 4 daemons, quorum
pebbles-s1,pebbles-s2,pebbles-s3,pebbles-s4 (age 36m)
mgr: pebbles-s2(active, since 36m), standbys:
pebbles-s4,
pebbles-s3, pebbles-s1
mds: 2/2 daemons up
osd: 1380 osds: 1380 up (since 29m), 1379 in
(since 3d); 37
remapped pgs
data:
volumes: 1/2 healthy, 1 recovering
pools: 7 pools, 2177 pgs
objects: 3.55G objects, 7.0 PiB
usage: 8.9 PiB used, 14 PiB / 23 PiB avail
pgs: 83133528/30006841533 objects misplaced
(0.277%)
2090 active+clean
47 active+clean+scrubbing+deep
29 active+remapped+backfilling
8 active+remapped+backfill_wait
2 active+clean+scrubbing
1 active+clean+snaptrim
io:
recovery: 1.9 GiB/s, 719 objects/s
root@pebbles-s1 14:09 [~]: ceph fs status
ceph_backup - 0 clients
===========
RANK STATE MDS ACTIVITY DNS INOS
DIRS CAPS
0 replay(laggy) pebbles-s3 0
0 0 0
POOL TYPE USED AVAIL
mds_backup_fs metadata 1255G 2780G
ec82_primary_fs_data data 0 2780G
ec82pool data 8442T 3044T
ceph_archive - 2 clients
============
RANK STATE MDS ACTIVITY DNS INOS DIRS
CAPS
0 active pebbles-s2 Reqs: 0 /s 13.4k
7105 118 2
POOL TYPE USED AVAIL
mds_archive_fs metadata 5184M 2780G
ec83_primary_fs_data data 0 2780G
ec83pool data 138T 2767T
MDS version: ceph version 17.2.7
(b12291d110049b2f35e32e0de30d70e9a4c060d2) quincy (stable)
root@pebbles-s1 14:09 [~]: ceph health detail | head
HEALTH_WARN 1 filesystem is degraded; insufficient
standby MDS
daemons available; 1319 pgs not deep-scrubbed in
time; 1054 pgs not
scrubbed in time
[WRN] FS_DEGRADED: 1 filesystem is degraded
fs ceph_backup is degraded
[WRN] MDS_INSUFFICIENT_STANDBY: insufficient standby
MDS daemons
available
have 0; want 1 more
When our cluster first ran after a reboot, Ceph ran
through the 2
standby MDSes, crashing them all, until it reached the
final MDS and is
now stuck in this "replay(laggy)" state. Putting our
MDSes into
debugging mode, we can see that this MDS crashed when
replaying the
journal for a particular inode (this is the same for all
the MDSes and
they all crash on the same object):
...
2024-06-24T13:44:55.563+0100 7f8811c40700 10
mds.0.journal
EMetaBlob.replay for [521,head] had [inode 0x1005ba89481
[...539,head]
/cephfs-users/afellows/Ferdos/20210625_real_DDFHFKLMT_KriosIII_K3/cryolo/test_micrographs/
auth fragtree_t(*^2 00*^3 00000*^
4 00001*^3 00010*^4 00011*^4 00100*^4 00101*^4
00110*^4 00111*^4
01*^3 01000*^4 01001*^3 01010*^4 01011*^3 01100*^4
01101*^4 01110*^4
01111*^4 10*^3 10000*^4 10001*^4 10010*^4 10011*^4
10100*^4 10101*^3
10110*^4 10111*^4 11*^6) v10880645 f(v0 m2024-06-22
T05:41:10.213700+0100 1281276=1281276+0) n(v12
rc2024-06-22T05:41:10.213700+0100 b1348251683896
1281277=1281276+1)
old_inodes=8 (iversion lock) | dirfrag=416 dirty=1
0x55770a2bdb80]
2024-06-24T13:44:55.563+0100 7f8811c40700 10
mds.0.journal
EMetaBlob.replay dir 0x1005ba89481.011011000*
2024-06-24T13:44:55.563+0100 7f8811c40700 10
mds.0.journal
EMetaBlob.replay updated dir [dir
0x1005ba89481.011011000*
/cephfs-users/afellows/Ferdos/20210625_real_DDFHFKLMT_KriosIII_K3/cryolo/test_micrographs/
[2,head] auth v=436385 cv=0/0 state=107374182
4 f(v0 m2024-06-22T05:41:10.213700+0100 2502=2502+0)
n(v12
rc2024-06-22T05:41:10.213700+0100 b2120744220
2502=2502+0)
hs=32+33,ss=0+0 dirty=65 | child=1 0x55770ebcda80]
2024-06-24T13:44:55.563+0100 7f8811c40700 10
mds.0.journal
EMetaBlob.replay added (full) [dentry
#0x1/cephfs-users/afellows/Ferdos/20210625_real_DDFHFKLMT_KriosIII_K3/cryolo/test_micrographs/FoilHole_27649821_Data_27626128_27626130_20210628_005006_fracti
ons_ave_Z124.mrc.teberet7.partial [539,head] auth
NULL (dversion
lock) v=436384 ino=(nil) state=1610612800|bottomlru
| dirty=1
0x557710444500]
2024-06-24T13:44:55.563+0100 7f8811c40700 10
mds.0.journal
EMetaBlob.replay added [inode 0x1005cd4fe35 [539,head]
/cephfs-users/afellows/Ferdos/20210625_real_DDFHFKLMT_KriosIII_K3/cryolo/test_micrographs/FoilHole_27649821_Data_27626128_27626130_20210628_
005006_fractions_ave_Z124.mrc.teberet7.partial auth
v436384 s=0 n(v0
1=1+0) (iversion lock) cr={99995144=0-4194304@538}
0x557710438680]
2024-06-24T13:44:55.563+0100 7f8811c40700 10
mds.0.cache.ino(0x1005cd4fe35) mark_dirty_parent
2024-06-24T13:44:55.563+0100 7f8811c40700 10
mds.0.journal
EMetaBlob.replay noting opened inode [inode
0x1005cd4fe35 [539,head]
/cephfs-users/afellows/Ferdos/20210625_real_DDFHFKLMT_KriosIII_K3/cryolo/test_micrographs/FoilHole_27649821_Data_27626128_2762
6130_20210628_005006_fractions_ave_Z124.mrc.teberet7.partial
auth
v436384 DIRTYPARENT s=0 n(v0 1=1+0) (iversion lock)
cr={99995144=0-4194304@538} | dirtyparent=1 dirty=1
0x557710438680]
2024-06-24T13:44:55.563+0100 7f8811c40700 10
mds.0.journal
EMetaBlob.replay inotable tablev 3112837 <= table
3112837
2024-06-24T13:44:55.563+0100 7f8811c40700 10
mds.0.journal
EMetaBlob.replay sessionmap v 1560540883, table
1560540882 prealloc
[] used 0x1005cd4fe35
2024-06-24T13:44:55.563+0100 7f8811c40700 -1
/home/jenkins-build/build/workspace/ceph-build/ARCH/x86_64/AVAILABLE_ARCH/x86_64/AVAILABLE_DIST/centos8/DIST/centos8/MACHINE_SIZE/gigantic/release/17.2.7/rpm/el8/BUILD/ceph-17.2.7/src/include/interval_set.h:
I
n function 'void interval_set<T, C>::erase(T, T,
std::function<bool(T, T)>) [with T = inodeno_t; C =
std::map]'
thread 7f8811c40700 time 2024-06-24T13:44:55.564315+0100
/home/jenkins-build/build/workspace/ceph-build/ARCH/x86_64/AVAILABLE_ARCH/x86_64/AVAILABLE_DIST/centos8/DIST/centos8/MACHINE_SIZE/gigantic/release/17.2.7/rpm/el8/BUILD/ceph-17.2.7/src/include/interval_set.h:
568: FAILED ceph_assert(p->first <= start)
ceph version 17.2.7
(b12291d110049b2f35e32e0de30d70e9a4c060d2)
quincy (stable)
1: (ceph::__ceph_assert_fail(char const*, char
const*, int, char
const*)+0x135) [0x7f8821e814a3]
2: /usr/lib64/ceph/libceph-common.so.2(+0x269669)
[0x7f8821e81669]
3: (interval_set<inodeno_t,
std::map>::erase(inodeno_t, inodeno_t,
std::function<bool (inodeno_t, inodeno_t)>)+0x2e5)
[0x5576f9bb2885]
4: (EMetaBlob::replay(MDSRank*, LogSegment*, int,
MDPeerUpdate*)+0x4377) [0x5576f9eb77b7]
5: (EUpdate::replay(MDSRank*)+0x61) [0x5576f9ebbbd1]
6: (MDLog::_replay_thread()+0x7bb) [0x5576f9e4254b]
7: (MDLog::ReplayThread::entry()+0x11)
[0x5576f9af5041]
8: /lib64/libpthread.so.0(+0x81ca) [0x7f8820e6f1ca]
9: clone()
I've only included a short section of the crash (this is
the first trace
in the log with regards to the crash with a 10/20
debug_mds option). We
tried deleting the 0x1005cd4fe35 object from the object
store using the
"rados" command but this did not allow our MDS to
successfully replay.
From my understanding the journal seems okay as we
didn't run out of
space for example on our metadata pool and
"cephfs-journal-tool journal
inspect" doesn't seem to think there is any damage:
root@pebbles-s1 13:58 [~]: cephfs-journal-tool
--rank=ceph_backup:0
journal inspect
Overall journal integrity: OK
root@pebbles-s1 14:04 [~]: cephfs-journal-tool
--rank=ceph_backup:0
event get --inode 1101069090357 summary
Events by type:
OPEN: 1
UPDATE: 3
Errors: 0
root@pebbles-s1 14:05 [~]: cephfs-journal-tool
--rank=ceph_backup:0
event get --inode 1101069090357 list
2024-06-22T05:41:10.214635+0100 0x51f97d4cfe35
UPDATE: (openc)
test_micrographs/FoilHole_27649821_Data_27626128_27626130_20210628_005006_fractions_ave_Z124.mrc.teberet7.partial
2024-06-22T05:41:11.203312+0100 0x51f97d59c848 UPDATE:
(check_inode_max_size)
test_micrographs/FoilHole_27649821_Data_27626128_27626130_20210628_005006_fractions_ave_Z124.mrc.teberet7.partial
test_micrographs/FoilHole_27649821_Data_27626128_27626130_20210628_005006_fractions_ave_Z124.mrc.teberet7.partial
2024-06-22T05:41:15.484871+0100 0x51f97e7344cc OPEN: ()
FoilHole_27649821_Data_27626128_27626130_20210628_005006_fractions_ave_Z124.mrc.teberet7.partial
2024-06-22T05:41:15.484921+0100 0x51f97e73493b
UPDATE: (rename)
test_micrographs/FoilHole_27649821_Data_27626128_27626130_20210628_005006_fractions_ave_Z124.mrc.teberet7.partial
test_micrographs/FoilHole_27649821_Data_27626128_27626130_20210628_005006_fractions_ave_Z124.mrc
I was wondering whether anyone had any advice for us on
how we should
proceed forward? We were thinking about manually
applying these events
(via "event apply") where failing that we could erase
this problematic
event with "cephfs-journal-tool --rank=ceph_backup:0
event splice
--inode 1101069090357". Is this a good idea? We would
rather not rebuild
the entire metadata pool if we could avoid it (once was
enough for us)
as this cluster has ~9 PB of data on it.
Kindest regards,
Ivan Clayson
--
Ivan Clayson
-----------------
Scientific Computing Officer
Room 2N249
Structural Studies
MRC Laboratory of Molecular Biology
Francis Crick Ave, Cambridge
CB2 0QH
_______________________________________________
ceph-users mailing list -- ceph-users@xxxxxxx
To unsubscribe send an email to ceph-users-leave@xxxxxxx
--
Ivan Clayson
-----------------
Scientific Computing Officer
Room 2N249
Structural Studies
MRC Laboratory of Molecular Biology
Francis Crick Ave, Cambridge
CB2 0QH
--
Ivan Clayson
-----------------
Scientific Computing Officer
Room 2N249
Structural Studies
MRC Laboratory of Molecular Biology
Francis Crick Ave, Cambridge
CB2 0QH