Project

General

Profile

Bug #1433

mds: assert in path_traverse

Added by Greg Farnum over 12 years ago. Updated over 7 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
-
Target version:
-
% Done:

0%

Source:
Tags:
Backport:
Regression:
Severity:
Reviewed:
Affected Versions:
ceph-qa-suite:
Component(FS):
Labels (FS):
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

While testing my teuthology lock test:

mds/MDCache.cc: In function 'int MDCache::path_traverse(MDRequest*, Message*, Context*, const filepath&, std::vector<CDentry*, std::allocator<CDentry*> >*, CInode**, int)', in thread '0x7fb6e6371700'
mds/MDCache.cc: 6762: FAILED assert(0)
 ceph version 0.33-283-gabe5cd2 (commit:abe5cd28d1e1e1e1684cd227cf9f9272202bea8d)
 1: (MDCache::path_traverse(MDRequest*, Message*, Context*, filepath const&, std::vector<CDentry*, std::allocator<CDentry*> >*, CInode**, int)+0x2390) [0x58a3c0]
 2: (Server::rdlock_path_pin_ref(MDRequest*, int, std::set<SimpleLock*, std::less<SimpleLock*>, std::allocator<SimpleLock*> >&, bool, bool, ceph_file_layout**)+0x267) [0x5022f7]
 3: (Server::handle_client_stat(MDRequest*)+0xd5) [0x503b55]
 4: (Server::dispatch_client_request(MDRequest*)+0x3e6) [0x522dd6]
 5: (MDCache::dispatch_request(MDRequest*)+0x46) [0x53cb96]
 6: (C_MDS_RetryRequest::finish(int)+0x11) [0x529b51]
 7: (Context::complete(int)+0xa) [0x48e70a]
 8: (Locker::xlock_finish(SimpleLock*, Mutation*, bool*)+0xa27) [0x5e1c87]
 9: (Locker::_drop_non_rdlocks(Mutation*, std::set<CInode*, std::less<CInode*>, std::allocator<CInode*> >*)+0x5d) [0x5e97fd]
 10: (Locker::drop_non_rdlocks(Mutation*, std::set<CInode*, std::less<CInode*>, std::allocator<CInode*> >*)+0x51) [0x5e9a41]
 11: (Server::reply_request(MDRequest*, MClientReply*, CInode*, CDentry*)+0x139) [0x4fdd39]
 12: (Server::_unlink_local_finish(MDRequest*, CDentry*, CDentry*, unsigned long)+0x4f0) [0x4ff400]
 13: (Context::complete(int)+0xa) [0x48e70a]
 14: (finish_contexts(CephContext*, std::list<Context*, std::allocator<Context*> >&, int)+0xda) [0x6d92ba]
 15: (Journaler::_finish_flush(int, unsigned long, utime_t)+0x20e) [0x6d045e]
 16: (Objecter::handle_osd_op_reply(MOSDOpReply*)+0x9a3) [0x6b2353]
 17: (MDS::handle_core_message(Message*)+0x85f) [0x4ad68f]
 18: (MDS::_dispatch(Message*)+0x2c) [0x4ad72c]
 19: (MDS::ms_dispatch(Message*)+0x71) [0x4aefb1]
 20: (SimpleMessenger::dispatch_entry()+0x879) [0x709609]
 21: (SimpleMessenger::DispatchThread::entry()+0x1c) [0x4887ec]
 22: (()+0x7971) [0x7fb6e9be1971]
 23: (clone()+0x6d) [0x7fb6e867592d]

Looking at the logging for it now.

History

#1 Updated by Greg Farnum over 12 years ago

Looks like it's bailing out because another client is holding a lock, so the (existing) null dentry isn't readable. Rerunning with added debugging.

#2 Updated by Greg Farnum over 12 years ago

  • Status changed from In Progress to 7

Yep! Need it to wait in that case. Pushing as soon as I write some documentation for path_traverse.

#3 Updated by Greg Farnum over 12 years ago

  • Status changed from 7 to Resolved

Fixed by commit:b03a1841b4b08c82fa37a45dc31a0c0255949235

#4 Updated by John Spray over 7 years ago

  • Project changed from Ceph to CephFS
  • Category deleted (1)
  • Target version deleted (v0.35)

Bulk updating project=ceph category=mds bugs so that I can remove the MDS category from the Ceph project to avoid confusion.

Also available in: Atom PDF