Project

General

Profile

Bug #42251

mds: no assert on frozen dir when scrub path

Added by Zhi Zhang 4 months ago. Updated 3 months ago.

Status:
Pending Backport
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:

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 fs - Backport #42649: mimic: mds: no assert on frozen dir when scrub path New
Copied to fs - Backport #42650: nautilus: mds: no assert on frozen dir when scrub path Resolved

History

#1 Updated by Zhi Zhang 4 months ago

  • Pull request ID set to 30835

#2 Updated by Patrick Donnelly 4 months 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 3 months ago

  • Status changed from Fix Under Review to Pending Backport

#4 Updated by Nathan Cutler 3 months ago

  • Copied to Backport #42649: mimic: mds: no assert on frozen dir when scrub path added

#5 Updated by Nathan Cutler 3 months ago

  • Copied to Backport #42650: nautilus: mds: no assert on frozen dir when scrub path added

Also available in: Atom PDF