Actions
Bug #8691
closedosd: PG::_lock, OSD::pg_map_lock lock cycle
% Done:
0%
Source:
Q/A
Tags:
Backport:
Regression:
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):
Description
ubuntu@teuthology:/var/lib/teuthworker/archive/sage-2014-06-27_10:04:18-smoke-master-testing-basic-plana/329562
------------------------------------ existing dependency OSD::pg_map_lock (71) -> PG::_lock (116) at: ceph version 0.81-629-g94e1b77 (94e1b7762477d8216becb650345343da4efb6250) 1: (PG::lock(bool)+0x29) [0x749ef9] 2: (OSD::_lookup_lock_pg(spg_t)+0xa9) [0x633e99] 3: (OSD::handle_pg_peering_evt(spg_t, pg_info_t const&, std::map<unsigned int, pg_interval_t, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, pg_interval_t> > >&, unsigned int, pg_shard_t, bool, std::tr1::shared_ptr<PG::CephPeeringEvt>)+0x3ae) [0x66fa3e ] 4: (OSD::handle_pg_notify(std::tr1::shared_ptr<OpRequest>)+0x607) [0x6728d7] 5: (OSD::dispatch_op(std::tr1::shared_ptr<OpRequest>)+0xd0) [0x672c70] 6: (OSD::_dispatch(Message*)+0x2cb) [0x67a57b] 7: (OSD::ms_dispatch(Message*)+0x1f8) [0x67ada8] 8: (DispatchQueue::entry()+0x4e9) [0xb2def9] 9: (DispatchQueue::DispatchThread::entry()+0xd) [0xa6548d] 10: (()+0x7e9a) [0x7f11b979be9a] 11: (clone()+0x6d) [0x7f11b7d5c3fd] -7> 2014-06-27 19:19:03.459071 7f11ab702700 0 existing intermediate dependency Session::session_dispatch_lock (109) -> OSD::pg_map_lock (71) at: ceph version 0.81-629-g94e1b77 (94e1b7762477d8216becb650345343da4efb6250) 1: (OSD::handle_op(std::tr1::shared_ptr<OpRequest>, std::tr1::shared_ptr<OSDMap const>)+0x155f) [0x65f14f] 2: (OSD::dispatch_op_fast(std::tr1::shared_ptr<OpRequest>, std::tr1::shared_ptr<OSDMap const>)+0x6f3) [0x65fb53] 3: (OSD::dispatch_session_waiting(OSD::Session*, std::tr1::shared_ptr<OSDMap const>)+0xab) [0x65fe2b] 4: (OSD::ms_fast_dispatch(Message*)+0x23f) [0x66045f] 5: (DispatchQueue::fast_dispatch(Message*)+0x59) [0xb2d459] 6: (Pipe::reader()+0x2541) [0xb57251] 7: (Pipe::Reader::entry()+0xd) [0xb58f7d] 8: (()+0x7e9a) [0x7f11b979be9a] 9: (clone()+0x6d) [0x7f11b7d5c3fd] -6> 2014-06-27 19:19:03.459117 7f11ab702700 0 new dependency PG::_lock (116) -> Session::session_dispatch_lock (109) creates a cycle at ceph version 0.81-629-g94e1b77 (94e1b7762477d8216becb650345343da4efb6250) 1: (OSD::wake_pg_waiters(PG*, spg_t)+0xc6) [0x6b48a6] 2: (OSD::_open_lock_pg(std::tr1::shared_ptr<OSDMap const>, spg_t, bool, bool)+0x1af) [0x66012f] 3: (OSD::_create_lock_pg(std::tr1::shared_ptr<OSDMap const>, spg_t, bool, bool, bool, int, std::vector<int, std::allocator<int> >&, int, std::vector<int, std::allocator<int> >&, int, pg_history_t, std::map<unsigned int, pg_interval_t, std::less<unsigned int>, std::allocator< std::pair<unsigned int const, pg_interval_t> > >&, ObjectStore::Transaction&)+0x178) [0x66d4d8] 4: (OSD::handle_pg_create(std::tr1::shared_ptr<OpRequest>)+0x1995) [0x66f195] 5: (OSD::dispatch_op(std::tr1::shared_ptr<OpRequest>)+0x1ed) [0x672d8d] 6: (OSD::do_waiters()+0x1ad) [0x67302d] 7: (OSD::ms_dispatch(Message*)+0x200) [0x67adb0] 8: (DispatchQueue::entry()+0x4e9) [0xb2def9] 9: (DispatchQueue::DispatchThread::entry()+0xd) [0xa6548d] 10: (()+0x7e9a) [0x7f11b979be9a] 11: (clone()+0x6d) [0x7f11b7d5c3fd] -5> 2014-06-27 19:19:03.459176 7f11ab702700 0 btw, i am holding these locks: -4> 2014-06-27 19:19:03.459179 7f11ab702700 0 OSD::osd_lock (55) -3> 2014-06-27 19:19:03.459183 7f11ab702700 0 PG::_lock (116) -2> 2014-06-27 19:19:03.459186 7f11ab702700 0 -1> 2014-06-27 19:19:03.459376 7f11b103b700 20 journal do_write latency 0.023244 0> 2014-06-27 19:19:03.463528 7f11ab702700 -1 common/lockdep.cc: In function 'int lockdep_will_lock(const char*, int)' thread 7f11ab702700 time 2014-06-27 19:19:03.459189 common/lockdep.cc: 225: FAILED assert(0) ceph version 0.81-629-g94e1b77 (94e1b7762477d8216becb650345343da4efb6250) 1: (lockdep_will_lock(char const*, int)+0xc50) [0xb02830] 2: (Mutex::Lock(bool)+0x104) [0xa3b8a4] 3: (OSD::wake_pg_waiters(PG*, spg_t)+0xc6) [0x6b48a6] 4: (OSD::_open_lock_pg(std::tr1::shared_ptr<OSDMap const>, spg_t, bool, bool)+0x1af) [0x66012f] 5: (OSD::_create_lock_pg(std::tr1::shared_ptr<OSDMap const>, spg_t, bool, bool, bool, int, std::vector<int, std::allocator<int> >&, int, std::vector<int, std::allocator<int> >&, int, pg_history_t, std::map<unsigned int, pg_interval_t, std::less<unsigned int>, std::allocator< std::pair<unsigned int const, pg_interval_t> > >&, ObjectStore::Transaction&)+0x178) [0x66d4d8] 6: (OSD::handle_pg_create(std::tr1::shared_ptr<OpRequest>)+0x1995) [0x66f195] 7: (OSD::dispatch_op(std::tr1::shared_ptr<OpRequest>)+0x1ed) [0x672d8d] 8: (OSD::do_waiters()+0x1ad) [0x67302d] 9: (OSD::ms_dispatch(Message*)+0x200) [0x67adb0] 10: (DispatchQueue::entry()+0x4e9) [0xb2def9] 11: (DispatchQueue::DispatchThread::entry()+0xd) [0xa6548d] 12: (()+0x7e9a) [0x7f11b979be9a] 13: (clone()+0x6d) [0x7f11b7d5c3fd] NOTE: a copy of the executable, or `objdump -rdS <executable>` is needed to interpret this.
Updated by Samuel Just almost 10 years ago
- Status changed from New to 12
- Assignee set to Samuel Just
Actions