Project

General

Profile

Bug #18850

Leak in MDCache::handle_dentry_unlink

Added by John Spray over 2 years ago. Updated 6 months ago.

Status:
Rejected
Priority:
Normal
Assignee:
-
Category:
-
Target version:
Start date:
02/07/2017
Due date:
% Done:

0%

Source:
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Component(FS):
MDS
Labels (FS):
multimds
Pull request ID:

Description

While there are various bits of valgrind noise going around at the moment, this one does look like a multimds specific thing.

Seen here: http://pulpito.ceph.com/jspray-2017-02-07_16:25:53-multimds-wip-jcsp-testing-20170206-testing-basic-smithi/

    <frame>
      <ip>0x40DB80</ip>
      <obj>/usr/bin/ceph-mds</obj>
      <fn>std::map&lt;int, int, std::less&lt;int&gt;, std::allocator&lt;std::pair&lt;int const, int&gt; &gt; &gt;::operator[](int const&amp;)</fn>
      <dir>/usr/include/c++/4.8.2/bits</dir>
      <file>stl_map.h</file>
      <line>465</line>
    </frame>
    <frame>
      <ip>0x41CF33</ip>
      <obj>/usr/bin/ceph-mds</obj>
      <fn>MDSCacheObject::get(int)</fn>
      <dir>/usr/src/debug/ceph-11.1.0-7373-g355475e/src/mds</dir>
      <file>MDSCacheObject.h</file>
      <line>208</line>
    </frame>
    <frame>
      <ip>0x548A1C</ip>
      <obj>/usr/bin/ceph-mds</obj>
      <fn>CDir::link_inode_work(CDentry*, CInode*)</fn>
      <dir>/usr/src/debug/ceph-11.1.0-7373-g355475e/src/mds</dir>
      <file>CDir.cc</file>
      <line>551</line>
    </frame>
    <frame>
      <ip>0x548C93</ip>
      <obj>/usr/bin/ceph-mds</obj>
      <fn>CDir::link_primary_inode(CDentry*, CInode*)</fn>
      <dir>/usr/src/debug/ceph-11.1.0-7373-g355475e/src/mds</dir>
      <file>CDir.cc</file>
      <line>528</line>
    </frame>
    <frame>
      <ip>0x46482F</ip>
      <obj>/usr/bin/ceph-mds</obj>
      <fn>MDCache::handle_dentry_unlink(MDentryUnlink*)</fn>
      <dir>/usr/src/debug/ceph-11.1.0-7373-g355475e/src/mds</dir>
      <file>MDCache.cc</file>
      <line>10491</line>
    </frame>
    <frame>
      <ip>0x48A2F4</ip>
      <obj>/usr/bin/ceph-mds</obj>
      <fn>MDCache::dispatch(Message*)</fn>
      <dir>/usr/src/debug/ceph-11.1.0-7373-g355475e/src/mds</dir>
      <file>MDCache.cc</file>
      <line>7771</line>
    </frame>
    <frame>
      <ip>0x37CE1B</ip>
      <obj>/usr/bin/ceph-mds</obj>
      <fn>MDSRank::handle_deferrable_message(Message*)</fn>
      <dir>/usr/src/debug/ceph-11.1.0-7373-g355475e/src/mds</dir>
      <file>MDSRank.cc</file>
      <line>590</line>
    </frame>
    <frame>
      <ip>0x38660B</ip>
      <obj>/usr/bin/ceph-mds</obj>
      <fn>MDSRank::_dispatch(Message*, bool)</fn>
      <dir>/usr/src/debug/ceph-11.1.0-7373-g355475e/src/mds</dir>
      <file>MDSRank.cc</file>
      <line>438</line>
    </frame>
    <frame>
      <ip>0x3877D4</ip>
      <obj>/usr/bin/ceph-mds</obj>
      <fn>MDSRankDispatcher::ms_dispatch(Message*)</fn>
      <dir>/usr/src/debug/ceph-11.1.0-7373-g355475e/src/mds</dir>
      <file>MDSRank.cc</file>
      <line>417</line>
    </frame>

18850_mds.a.log View (907 KB) John Spray, 02/07/2017 09:50 PM

History

#1 Updated by John Spray over 2 years ago

Attached full valgrind from mds.a in jspray-2017-02-07_16:25:53-multimds-wip-jcsp-testing-20170206-testing-basic-smithi/795824

There are various permutations on leaks from ScatterLock which I suspect are related to calls to more() that will be considered leak if we are operating on a bogus CInode->[whatever]lock to begin with.

#2 Updated by John Spray over 2 years ago

  • Target version set to v12.0.0

#3 Updated by Zheng Yan over 2 years ago

It's likely some CInode/CDir/CDentry in cache are not properly freed when mds process exits. not caused by MDCache::handle_dentry_unlink

#4 Updated by Zheng Yan over 2 years ago

  • Status changed from New to Rejected

#5 Updated by Patrick Donnelly 6 months ago

  • Category deleted (90)
  • Labels (FS) multimds added

Also available in: Atom PDF