Project

General

Profile

Actions

Bug #16333

closed

valgrind issues on mon in rocksdb

Added by Samuel Just almost 8 years ago. Updated almost 8 years ago.

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

0%

Source:
other
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

sjust@teuthology:/a/yuriw-2016-06-14_08:41:16-rados-wip-yuri-testing2_2016_06_08-distro-basic-smithi/258957/remote

error>
<unique>0x2e</unique>
<tid>1</tid>
<kind>Leak_StillReachable</kind>
<xwhat>
<text>88 bytes in 1 blocks are still reachable in loss record 47 of 82</text>
<leakedbytes>88</leakedbytes>
<leakedblocks>1</leakedblocks>
</xwhat>
<stack>
<frame>
<ip>0x9A930E0</ip>
<obj>/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so</obj>
<fn>operator new(unsigned long)</fn>
</frame>
<frame>
<ip>0x5E8D05</ip>
<obj>/usr/bin/ceph-mon</obj>
<fn>allocate</fn>
<dir>/usr/include/c++/4.8/ext</dir>
<file>new_allocator.h</file>
<line>104</line>
</frame>
<frame>
<ip>0x5E8D05</ip>
<obj>/usr/bin/ceph-mon</obj>
<fn>std::_Hashtable<unsigned int, std::pair<unsigned int const, void ()(void)>, std::allocator<std::pair<unsigned int const, void ()(void)> &
gt;, std::__detail::_Select1st, std::equal_to<unsigned int>, std::hash<unsigned int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash,
std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_allocate_buckets(unsigned long) [clone .isra.50]</fn>
<dir>/usr/include/c++/4.8/bits</dir>
<file>hashtable.h</file>
<line>779</line>
</frame>
<frame>
<ip>0x5E8E2A</ip>
<obj>/usr/bin/ceph-mon</obj>
<fn>_Hashtable</fn>
<dir>/usr/include/c++/4.8/bits</dir>
<file>hashtable.h</file>
<line>831</line>
</frame>
<frame>
<ip>0x5E8E2A</ip>
<obj>/usr/bin/ceph-mon</obj>
<fn>_Hashtable</fn>
<dir>/usr/include/c++/4.8/bits</dir>
<file>hashtable.h</file>
<line>397</line>
</frame>
<frame>
<ip>0x5E8E2A</ip>
<obj>/usr/bin/ceph-mon</obj>
<fn>unordered_map</fn>
<dir>/usr/include/c++/4.8/bits</dir>
<file>unordered_map.h</file>
<line>142</line>
</frame>
<frame>
<ip>0x5E8E2A</ip>
<obj>/usr/bin/ceph-mon</obj>
<fn>rocksdb::ThreadLocalPtr::StaticMeta::StaticMeta()</fn>
<dir>/srv/autobuild-ceph/gitbuilder.git/build/out~/ceph-10.2.0-2167-g7b42526/src/rocksdb/util</dir>
<file>thread_local.cc</file>
<line>172</line>
</frame>
<frame>
<ip>0x5E8F94</ip>
<obj>/usr/bin/ceph-mon</obj>
<fn>rocksdb::ThreadLocalPtr::Instance()</fn>
<dir>/srv/autobuild-ceph/gitbuilder.git/build/out~/ceph-10.2.0-2167-g7b42526/src/rocksdb/util</dir>
<file>thread_local.cc</file>
<line>135</line>
</frame>

Actions #1

Updated by Sage Weil almost 8 years ago

  • Status changed from New to In Progress
  • Assignee set to Sage Weil
Actions #2

Updated by Sage Weil almost 8 years ago

This is coming from env_posix.cc setting up thread local singletons:

//
Env* Env::Default() {
  // The following function call initializes the singletons of ThreadLocalPtr
  // right before the static default_env.  This guarantees default_env will
  // always being destructed before the ThreadLocalPtr singletons get
  // destructed as C++ guarantees that the destructions of static variables
  // is in the reverse order of their constructions.
  //
  // Since static members are destructed in the reverse order
  // of their construction, having this call here guarantees that
  // the destructor of static PosixEnv will go first, then the
  // the singletons of ThreadLocalPtr.
  ThreadLocalPtr::InitSingletons();
  static PosixEnv default_env;
  return &default_env;
}

Actions #4

Updated by Samuel Just almost 8 years ago

  • Status changed from In Progress to Resolved

c8832cbf3375d0ce1f48f05c9feac2f5b718efb2

Actions #5

Updated by Samuel Just almost 8 years ago

sjust@teuthology:/a/yuriw-2016-06-20_09:29:55-rados-master_2016_6_20-distro-basic-smithi/267140/remote (did not have the above commit)

Actions

Also available in: Atom PDF