Project

General

Profile

Bug #42251

mds: no assert on frozen dir when scrub path

Added by Zhi Zhang over 4 years ago. Updated almost 4 years ago.

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

Copied to CephFS - Backport #42649: mimic: mds: no assert on frozen dir when scrub path Rejected
Copied to CephFS - Backport #42650: nautilus: mds: no assert on frozen dir when scrub path Resolved

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".

Also available in: Atom PDF