]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
mds: cleanup truncating inodes when standby replay mds trim log segments 29591/head
authorYan, Zheng <zyan@redhat.com>
Fri, 21 Jun 2019 08:24:51 +0000 (16:24 +0800)
committerPrashant D <pdhange@redhat.com>
Mon, 12 Aug 2019 04:05:09 +0000 (00:05 -0400)
commit7674af824cf7dda919aaa200f0777e83dc5dbeab
treeb1b8bce82c5263c43f4530026d21e5955e39d5d4
parent4d9848f739fe0e129ced9f3ba198b079446d2806
mds: cleanup truncating inodes when standby replay mds trim log segments

Standby replay mds first trims expired log segments, then replays new
log segments. It's possible a 'truncate_start' log event is in expired,
but its 'truncate_finish' counterpart is the new log segments. When mds
replays the 'truncate_finish' log event, log segment that contains the
'truncate_start' is already trimmed, so mds does nothing. This causes
leak of Inode::PIN_TRUNCATING and trigger assertion when removing
corresponding inode.

Fixes: https://tracker.ceph.com/issues/40477
Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
(cherry picked from commit 32121878dd0eef11e481162ebf924a14a91dd341)
src/mds/MDCache.cc