Bug #42251
mds: no assert on frozen dir when scrub path
Status:
Resolved
Priority:
Normal
Assignee:
Category:
Correctness/Safety
Target version:
% Done:
0%
Source:
Community (dev)
Tags:
Backport:
nautilus,mimic
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Component(FS):
MDS
Labels (FS):
multimds
Pull request ID:
Crash signature (v1):
Crash signature (v2):
Description
2019-09-11 15:51:21.956268 7f2f4fc33700 -1 /data/build_ceph/ceph/src/mds/CDir.cc: In function 'bool CDir::check_rstats(bool)' thread 7f2f4fc33700 time 2019-09-11 15:51:21.953352 /data/build_ceph/ceph/src/mds/CDir.cc: 223: FAILED assert(!scrub) ceph version 12.2.8-202-gbd8bd40893 (bd8bd40893263bd169302fb3f577c93d76c4c757) luminous (stable) 1: (ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x110) [0x7f2f5e193b10] 2: (CDir::check_rstats(bool)+0x1342) [0x7f2f5e0438e2] 3: (CDir::scrub_local()+0x1b) [0x7f2f5e047eab] 4: (()+0x51f728) [0x7f2f5e085728] 5: (()+0x52a67e) [0x7f2f5e09067e] 6: (Continuation::_continue_function(int, int)+0x1aa) [0x7f2f5e09effa] 7: (Continuation::Callback::finish(int)+0x10) [0x7f2f5e09f0e0] 8: (Context::complete(int)+0x9) [0x7f2f5de34b29] 9: (MDSIOContextBase::complete(int)+0xa4) [0x7f2f5e0db594] 10: (Finisher::finisher_thread_entry()+0x198) [0x7f2f5e192a88] 11: (()+0x7dc5) [0x7f2f5bc55dc5] 12: (clone()+0x6d) [0x7f2f5ad3b29d
This seems too strict and unnecessary for asok command "scrub_path" to assert when it checked a frozen dir's rstat (The complete and auth flags had already been checked before). MDS will also check dir's rstat internally and won't assert even if dir is frozen. So when doing scrub_path, we could return false instead assert directly. The worst case for scrub path is doing nothing or doing one unnecessary repair job.
Related issues
History
#1 Updated by Zhi Zhang over 4 years ago
- Pull request ID set to 30835
#2 Updated by Patrick Donnelly over 4 years ago
- Status changed from New to Fix Under Review
- Assignee set to Zhi Zhang
- Target version set to v15.0.0
- Start date deleted (
10/10/2019) - Backport set to nautilus,mimic
#3 Updated by Patrick Donnelly over 4 years ago
- Status changed from Fix Under Review to Pending Backport
#4 Updated by Nathan Cutler over 4 years ago
- Copied to Backport #42649: mimic: mds: no assert on frozen dir when scrub path added
#5 Updated by Nathan Cutler over 4 years ago
- Copied to Backport #42650: nautilus: mds: no assert on frozen dir when scrub path added
#6 Updated by Nathan Cutler almost 4 years ago
- Status changed from Pending Backport to Resolved
While running with --resolve-parent, the script "backport-create-issue" noticed that all backports of this issue are in status "Resolved" or "Rejected".