mirror of
https://github.com/ceph/ceph
synced 2024-12-22 19:34:30 +00:00
bf087c3f84
suppresses a mismatched operator delete[] from the librados client's destructor: <error> <unique>0xeef7eb</unique> <tid>1</tid> <kind>MismatchedFree</kind> <what>Mismatched free() / delete / delete []</what> <stack> <frame> <ip>0x4C32EA0</ip> <obj>/usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so</obj> <fn>operator delete[](void*, unsigned long)</fn> <dir>/builddir/build/BUILD/valgrind-3.16.0/coregrind/m_replacemalloc</dir> <file>vg_replace_malloc.c</file> <line>660</line> </frame> <frame> <ip>0x5FBEB86</ip> <obj>/usr/lib64/librados.so.2.0.0</obj> </frame> <frame> <ip>0x5FBEF2C</ip> <obj>/usr/lib64/librados.so.2.0.0</obj> </frame> <frame> <ip>0x5F7F7C5</ip> <obj>/usr/lib64/librados.so.2.0.0</obj> <fn>librados::v14_2_0::Rados::shutdown()</fn> </frame> Fixes: https://tracker.ceph.com/issues/49501 Signed-off-by: Casey Bodley <cbodley@redhat.com>
629 lines
13 KiB
Plaintext
629 lines
13 KiB
Plaintext
|
|
{
|
|
<allthefrees, so we can behave with tcmalloc>
|
|
Memcheck:Free
|
|
fun:free
|
|
...
|
|
}
|
|
{
|
|
operator delete[] in Rados::shutdown
|
|
Memcheck:Free
|
|
fun:_ZdaPvm
|
|
...
|
|
fun:_ZN8librados7v14_2_05Rados8shutdownEv
|
|
}
|
|
{
|
|
older boost mersenne twister uses uninitialized memory for randomness
|
|
Memcheck:Cond
|
|
...
|
|
fun:*Monitor::prepare_new_fingerprint*
|
|
...
|
|
}
|
|
{
|
|
older boost mersenne twister uses uninitialized memory for randomness
|
|
Memcheck:Value8
|
|
...
|
|
fun:*Monitor::prepare_new_fingerprint*
|
|
...
|
|
}
|
|
{
|
|
apparent TLS leak in eglibc
|
|
Memcheck:Leak
|
|
fun:calloc
|
|
...
|
|
fun:_dl_allocate_tls
|
|
fun:pthread_create*
|
|
...
|
|
}
|
|
{
|
|
osd: ignore ec plugin loading (FIXME SOMEDAY)
|
|
Memcheck:Leak
|
|
...
|
|
fun:*ErasureCodePluginRegistry*load*
|
|
...
|
|
}
|
|
{
|
|
osd: ignore ec plugin factory (FIXME SOMEDAY)
|
|
Memcheck:Leak
|
|
...
|
|
fun:*ErasureCodePluginRegistry*factory*
|
|
...
|
|
}
|
|
{
|
|
tcmalloc: libboost_thread-mt.so.1.53 is linked with tcmalloc
|
|
Memcheck:Param
|
|
msync(start)
|
|
obj:/usr/lib64/libpthread-2.17.so
|
|
obj:/usr/lib64/libunwind.so.8.0.1
|
|
obj:/usr/lib64/libunwind.so.8.0.1
|
|
obj:/usr/lib64/libunwind.so.8.0.1
|
|
obj:/usr/lib64/libunwind.so.8.0.1
|
|
...
|
|
fun:*tcmalloc*ThreadCache*
|
|
...
|
|
obj:/usr/lib64/libboost_thread-mt.so.1.53.0
|
|
}
|
|
{
|
|
tcmalloc: msync heap allocation points to uninit bytes (centos 6.5)
|
|
Memcheck:Param
|
|
msync(start)
|
|
obj:/lib64/libpthread-2.12.so
|
|
obj:/usr/lib64/libunwind.so.8.0.1
|
|
obj:/usr/lib64/libunwind.so.8.0.1
|
|
obj:/usr/lib64/libunwind.so.8.0.1
|
|
obj:/usr/lib64/libunwind.so.8.0.1
|
|
fun:_ULx86_64_step
|
|
fun:_Z13GetStackTracePPvii
|
|
fun:_ZN8tcmalloc8PageHeap8GrowHeapEm
|
|
fun:_ZN8tcmalloc8PageHeap3NewEm
|
|
}
|
|
{
|
|
tcmalloc: msync heap allocation points to unaddressible bytes (centos 6.5 #2)
|
|
Memcheck:Param
|
|
msync(start)
|
|
obj:/lib64/libpthread-2.12.so
|
|
obj:/usr/lib64/libunwind.so.7.0.0
|
|
fun:_ULx86_64_step
|
|
fun:_Z13GetStackTracePPvii
|
|
fun:_ZN8tcmalloc8PageHeap8GrowHeapEm
|
|
fun:_ZN8tcmalloc8PageHeap3NewEm
|
|
}
|
|
{
|
|
tcmalloc: msync heap allocation points to uninit bytes (rhel7)
|
|
Memcheck:Param
|
|
msync(start)
|
|
obj:/usr/lib64/libpthread-2.17.so
|
|
obj:/usr/lib64/libunwind.so.8.0.1
|
|
obj:/usr/lib64/libunwind.so.8.0.1
|
|
obj:/usr/lib64/libunwind.so.8.0.1
|
|
obj:/usr/lib64/libunwind.so.8.0.1
|
|
fun:_ULx86_64_step
|
|
fun:_Z13GetStackTracePPvii
|
|
fun:_ZN8tcmalloc8PageHeap8GrowHeapEm
|
|
fun:_ZN8tcmalloc8PageHeap3NewEm
|
|
}
|
|
{
|
|
tcmalloc: msync heap allocation points to uninit bytes (rhel7 #2)
|
|
Memcheck:Param
|
|
msync(start)
|
|
obj:/usr/lib64/libpthread-2.17.so
|
|
obj:/usr/lib64/libunwind.so.8.0.1
|
|
obj:/usr/lib64/libunwind.so.8.0.1
|
|
obj:/usr/lib64/libunwind.so.8.0.1
|
|
obj:/usr/lib64/libunwind.so.8.0.1
|
|
fun:_ULx86_64_step
|
|
obj:/usr/lib64/libtcmalloc.so.4.2.6
|
|
fun:_Z13GetStackTracePPvii
|
|
fun:_ZN8tcmalloc8PageHeap8GrowHeapEm
|
|
fun:_ZN8tcmalloc8PageHeap3NewEm
|
|
}
|
|
{
|
|
tcmalloc: msync heap allocation points to uninit bytes (wheezy)
|
|
Memcheck:Param
|
|
msync(start)
|
|
obj:/lib/x86_64-linux-gnu/libpthread-2.13.so
|
|
obj:/usr/lib/libunwind.so.7.0.0
|
|
fun:_ULx86_64_step
|
|
fun:_Z13GetStackTracePPvii
|
|
fun:_ZN8tcmalloc8PageHeap8GrowHeapEm
|
|
fun:_ZN8tcmalloc8PageHeap3NewEm
|
|
}
|
|
{
|
|
tcmalloc: msync heap allocation points to uninit bytes (precise)
|
|
Memcheck:Param
|
|
msync(start)
|
|
obj:/lib/x86_64-linux-gnu/libpthread-2.15.so
|
|
obj:/usr/lib/libunwind.so.7.0.0
|
|
fun:_ULx86_64_step
|
|
fun:_Z13GetStackTracePPvii
|
|
fun:_ZN8tcmalloc8PageHeap8GrowHeapEm
|
|
fun:_ZN8tcmalloc8PageHeap3NewEm
|
|
obj:/usr/lib/libtcmalloc.so.0.1.0
|
|
}
|
|
{
|
|
tcmalloc: msync heap allocation points to uninit bytes (trusty)
|
|
Memcheck:Param
|
|
msync(start)
|
|
obj:/lib/x86_64-linux-gnu/libpthread-2.19.so
|
|
obj:/usr/lib/x86_64-linux-gnu/libunwind.so.8.0.1
|
|
obj:/usr/lib/x86_64-linux-gnu/libunwind.so.8.0.1
|
|
obj:/usr/lib/x86_64-linux-gnu/libunwind.so.8.0.1
|
|
obj:/usr/lib/x86_64-linux-gnu/libunwind.so.8.0.1
|
|
fun:_ULx86_64_step
|
|
fun:_Z13GetStackTracePPvii
|
|
fun:_ZN8tcmalloc8PageHeap8GrowHeapEm
|
|
fun:_ZN8tcmalloc8PageHeap3NewEm
|
|
}
|
|
{
|
|
tcmalloc: msync heap allocation points to uninit bytes 2 (trusty)
|
|
Memcheck:Param
|
|
msync(start)
|
|
fun:__msync_nocancel
|
|
obj:/usr/lib/x86_64-linux-gnu/libunwind.so.8.0.1
|
|
obj:/usr/lib/x86_64-linux-gnu/libunwind.so.8.0.1
|
|
obj:/usr/lib/x86_64-linux-gnu/libunwind.so.8.0.1
|
|
obj:/usr/lib/x86_64-linux-gnu/libunwind.so.8.0.1
|
|
fun:_ULx86_64_step
|
|
fun:_Z13GetStackTracePPvii
|
|
fun:_ZN8tcmalloc8PageHeap8GrowHeapEm
|
|
fun:_ZN8tcmalloc8PageHeap3NewEm
|
|
fun:_ZN8tcmalloc15CentralFreeList8PopulateEv
|
|
fun:_ZN8tcmalloc15CentralFreeList18FetchFromSpansSafeEv
|
|
fun:_ZN8tcmalloc15CentralFreeList11RemoveRangeEPPvS2_i
|
|
}
|
|
{
|
|
tcmalloc: msync (xenial)
|
|
Memcheck:Param
|
|
msync(start)
|
|
fun:__msync_nocancel
|
|
obj:/usr/lib/x86_64-linux-gnu/libunwind.so.8.0.1
|
|
obj:/usr/lib/x86_64-linux-gnu/libunwind.so.8.0.1
|
|
obj:/usr/lib/x86_64-linux-gnu/libunwind.so.8.0.1
|
|
obj:/usr/lib/x86_64-linux-gnu/libunwind.so.8.0.1
|
|
obj:*tcmalloc*
|
|
fun:*GetStackTrace*
|
|
}
|
|
{
|
|
tcmalloc: string
|
|
Memcheck:Leak
|
|
...
|
|
obj:*tcmalloc*
|
|
fun:call_init*
|
|
...
|
|
}
|
|
{
|
|
ceph global: deliberate onexit leak
|
|
Memcheck:Leak
|
|
...
|
|
fun:*set_flush_on_exit*
|
|
...
|
|
}
|
|
{
|
|
libleveldb: ignore all static leveldb leaks
|
|
Memcheck:Leak
|
|
...
|
|
fun:*leveldb*
|
|
...
|
|
}
|
|
{
|
|
libleveldb: ignore all dynamic libleveldb leaks
|
|
Memcheck:Leak
|
|
...
|
|
obj:*libleveldb.so*
|
|
...
|
|
}
|
|
{
|
|
libcurl: ignore libcurl leaks
|
|
Memcheck:Leak
|
|
...
|
|
fun:*curl_global_init
|
|
}
|
|
{
|
|
ignore gnutls leaks
|
|
Memcheck:Leak
|
|
...
|
|
fun:gnutls_global_init
|
|
}
|
|
{
|
|
ignore libfcgi leak; OS_LibShutdown has no callers!
|
|
Memcheck:Leak
|
|
...
|
|
fun:OS_LibInit
|
|
fun:FCGX_Init
|
|
}
|
|
{
|
|
ignore libnss3 leaks
|
|
Memcheck:Leak
|
|
...
|
|
obj:*libnss3*
|
|
...
|
|
}
|
|
{
|
|
strptime suckage
|
|
Memcheck:Cond
|
|
fun:__GI___strncasecmp_l
|
|
fun:__strptime_internal
|
|
...
|
|
}
|
|
{
|
|
strptime suckage 2
|
|
Memcheck:Value8
|
|
fun:__GI___strncasecmp_l
|
|
fun:__strptime_internal
|
|
...
|
|
}
|
|
{
|
|
strptime suckage 3
|
|
Memcheck:Addr8
|
|
fun:__GI___strncasecmp_l
|
|
fun:__strptime_internal
|
|
...
|
|
}
|
|
{
|
|
inet_ntop does something lame on local stack
|
|
Memcheck:Value8
|
|
...
|
|
fun:inet_ntop
|
|
...
|
|
}
|
|
{
|
|
inet_ntop does something lame on local stack
|
|
Memcheck:Addr8
|
|
...
|
|
fun:inet_ntop
|
|
...
|
|
}
|
|
{
|
|
dl-lookup.c thing .. Invalid write of size 8
|
|
Memcheck:Value8
|
|
fun:do_lookup_x
|
|
...
|
|
fun:_dl_lookup_symbol_x
|
|
...
|
|
}
|
|
{
|
|
dl-lookup.c thing .. Invalid write of size 8
|
|
Memcheck:Addr8
|
|
fun:do_lookup_x
|
|
...
|
|
fun:_dl_lookup_symbol_x
|
|
...
|
|
}
|
|
{
|
|
weird thing from libc
|
|
Memcheck:Leak
|
|
...
|
|
fun:*sub_I_comparator*
|
|
fun:__libc_csu_init
|
|
...
|
|
}
|
|
{
|
|
libfuse leak
|
|
Memcheck:Leak
|
|
...
|
|
fun:fuse_parse_cmdline
|
|
...
|
|
}
|
|
{
|
|
boost thread leaks on exit
|
|
Memcheck:Leak
|
|
...
|
|
fun:*boost*detail*
|
|
...
|
|
fun:exit
|
|
}
|
|
{
|
|
lttng appears to not clean up state
|
|
Memcheck:Leak
|
|
...
|
|
fun:lttng_ust_baddr_statedump_init
|
|
fun:lttng_ust_init
|
|
fun:call_init.part.0
|
|
...
|
|
}
|
|
{
|
|
fun:PK11_CreateContextBySymKey race
|
|
Helgrind:Race
|
|
obj:/usr/*lib*/libfreebl*3.so
|
|
...
|
|
obj:/usr/*lib*/libsoftokn3.so
|
|
...
|
|
obj:/usr/*lib*/libnss3.so
|
|
fun:PK11_CreateContextBySymKey
|
|
...
|
|
}
|
|
{
|
|
thread init race
|
|
Helgrind:Race
|
|
fun:mempcpy
|
|
fun:_dl_allocate_tls_init
|
|
...
|
|
fun:pthread_create@*
|
|
...
|
|
}
|
|
{
|
|
thread_local memory is falsely detected (https://svn.boost.org/trac/boost/ticket/3296)
|
|
Memcheck:Leak
|
|
...
|
|
fun:*boost*detail*get_once_per_thread_epoch*
|
|
fun:*boost*call_once*
|
|
fun:*boost*detail*get_current_thread_data*
|
|
...
|
|
}
|
|
{
|
|
rocksdb thread local singletons
|
|
Memcheck:Leak
|
|
...
|
|
fun:rocksdb::Env::Default()
|
|
...
|
|
}
|
|
{
|
|
rocksdb column thread local leaks
|
|
Memcheck:Leak
|
|
...
|
|
fun:rocksdb::ThreadLocalPtr::StaticMeta::SetHandler*
|
|
fun:rocksdb::ColumnFamilyData::ColumnFamilyData*
|
|
...
|
|
}
|
|
{
|
|
rocksdb thread crap
|
|
Memcheck:Leak
|
|
...
|
|
fun:*ThreadLocalPtr*
|
|
...
|
|
}
|
|
{
|
|
rocksdb singleton Env leak, blech
|
|
Memcheck:Leak
|
|
...
|
|
fun:CreateThreadStatusUpdater
|
|
fun:PosixEnv
|
|
...
|
|
}
|
|
{
|
|
rocksdb::Env::Default()
|
|
Memcheck:Leak
|
|
...
|
|
fun:*rocksdb*Env*Default*
|
|
...
|
|
}
|
|
{
|
|
rocksdb BGThreadWrapper
|
|
Memcheck:Leak
|
|
...
|
|
fun:*BGThreadWrapper*
|
|
...
|
|
}
|
|
{
|
|
libstdc++ leak on xenial
|
|
Memcheck:Leak
|
|
fun:malloc
|
|
...
|
|
fun:call_init.part.0
|
|
fun:call_init
|
|
fun:_dl_init
|
|
...
|
|
}
|
|
{
|
|
strange leak of std::string memory from md_config_t seen in radosgw
|
|
Memcheck:Leak
|
|
...
|
|
fun:_ZNSs4_Rep9_S_createEmmRKSaIcE
|
|
fun:_ZNSs12_S_constructIPKcEEPcT_S3_RKSaIcESt20forward_iterator_tag
|
|
...
|
|
fun:_ZN11md_config_tC1Ev
|
|
fun:_ZN11CephContextC1Eji
|
|
...
|
|
}
|
|
{
|
|
python does not reset the member field when dealloc an object
|
|
Memcheck:Leak
|
|
match-leak-kinds: all
|
|
...
|
|
fun:Py_InitializeEx
|
|
...
|
|
}
|
|
{
|
|
statically allocated python types don't get members freed
|
|
Memcheck:Leak
|
|
match-leak-kinds: all
|
|
...
|
|
fun:PyType_Ready
|
|
...
|
|
}
|
|
{
|
|
manually constructed python module members don't get freed
|
|
Memcheck:Leak
|
|
match-leak-kinds: all
|
|
...
|
|
fun:Py_InitModule4_64
|
|
...
|
|
}
|
|
{
|
|
manually constructed python module members don't get freed
|
|
Memcheck:Leak
|
|
match-leak-kinds: all
|
|
...
|
|
fun:PyModule_AddObject
|
|
...
|
|
}
|
|
{
|
|
python subinterpreters may not clean up properly
|
|
Memcheck:Leak
|
|
match-leak-kinds: all
|
|
...
|
|
fun:Py_NewInterpreter
|
|
...
|
|
}
|
|
{
|
|
python should be able to take care of itself
|
|
Memcheck:Leak
|
|
match-leak-kinds: all
|
|
...
|
|
fun:PyEval_EvalCode
|
|
}
|
|
{
|
|
python should be able to take care of itself
|
|
Memcheck:Leak
|
|
match-leak-kinds: all
|
|
...
|
|
fun:PyImport_ImportModuleLevel
|
|
}
|
|
{
|
|
python-owned threads may not full clean up after themselves
|
|
Memcheck:Leak
|
|
match-leak-kinds: all
|
|
...
|
|
fun:PyEval_CallObjectWithKeywords
|
|
}
|
|
{
|
|
python should be able to take care of itself
|
|
Memcheck:Leak
|
|
match-leak-kinds: all
|
|
...
|
|
fun:PyEval_EvalFrameEx
|
|
...
|
|
obj:/usr/lib64/libpython2.7.so.1.0
|
|
}
|
|
{
|
|
python should be able to take care of itself
|
|
Memcheck:Leak
|
|
match-leak-kinds: all
|
|
...
|
|
fun:PyObject_Call
|
|
}
|
|
|
|
{
|
|
rados cython constants
|
|
Memcheck:Leak
|
|
match-leak-kinds: definite
|
|
fun:malloc
|
|
fun:PyObject_Malloc
|
|
fun:PyCode_New
|
|
fun:__Pyx_InitCachedConstants
|
|
fun:initrados
|
|
fun:_PyImport_LoadDynamicModule
|
|
...
|
|
fun:PyImport_ImportModuleLevel
|
|
...
|
|
fun:PyObject_Call
|
|
fun:PyEval_CallObjectWithKeywords
|
|
fun:PyEval_EvalFrameEx
|
|
}
|
|
|
|
{
|
|
rbd cython constants
|
|
Memcheck:Leak
|
|
match-leak-kinds: definite
|
|
fun:malloc
|
|
fun:PyObject_Malloc
|
|
fun:PyCode_New
|
|
fun:__Pyx_InitCachedConstants
|
|
fun:initrbd
|
|
fun:_PyImport_LoadDynamicModule
|
|
...
|
|
fun:PyImport_ImportModuleLevel
|
|
...
|
|
fun:PyObject_Call
|
|
fun:PyEval_CallObjectWithKeywords
|
|
fun:PyEval_EvalFrameEx
|
|
}
|
|
|
|
{
|
|
dlopen() with -lceph-common https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=700899
|
|
Memcheck:Leak
|
|
match-leak-kinds: reachable
|
|
fun:*alloc
|
|
...
|
|
fun:_dlerror_run
|
|
fun:dlopen@@GLIBC_2.2.5
|
|
}
|
|
|
|
{
|
|
ethdev_init_log thing
|
|
Memcheck:Leak
|
|
match-leak-kinds: reachable
|
|
...
|
|
fun:ethdev_init_log
|
|
...
|
|
}
|
|
|
|
{
|
|
rte_log_init() in DPDK fails to reset strdup()'ed string at exit
|
|
Memcheck:Leak
|
|
match-leak-kinds: reachable
|
|
fun:*alloc
|
|
...
|
|
fun:rte_log_init
|
|
fun:__libc_csu_init
|
|
}
|
|
|
|
{
|
|
libc_csu_init (strdup, rte_log_register, etc.)
|
|
Memcheck:Leak
|
|
match-leak-kinds: reachable
|
|
...
|
|
fun:__libc_csu_init
|
|
...
|
|
}
|
|
|
|
{
|
|
Boost.Thread fails to call tls_destructor() when the thread exists
|
|
Memcheck:Leak
|
|
match-leak-kinds: reachable
|
|
...
|
|
fun:_Znwm
|
|
...
|
|
fun:*boost*detail*set_tss_data*
|
|
...
|
|
}
|
|
|
|
{
|
|
ignore *all* ceph-mgr python crap. this is overkill, but better than nothing
|
|
Memcheck:Leak
|
|
match-leak-kinds: all
|
|
...
|
|
fun:Py*
|
|
...
|
|
}
|
|
|
|
{
|
|
something in glibc
|
|
Memcheck:Leak
|
|
match-leak-kinds: all
|
|
...
|
|
fun:strdup
|
|
fun:__trans_list_add
|
|
...
|
|
fun:_dl_init
|
|
...
|
|
}
|
|
|
|
# "Conditional jump or move depends on uninitialised value(s)" in OpenSSL
|
|
# while using aes-128-gcm with AES-NI enabled. Not observed while running
|
|
# with `OPENSSL_ia32cap="~0x200000200000000"`.
|
|
{
|
|
uninitialised gcm.Xi in aes-128-gcm with AES-NI for msgr, part 1
|
|
Memcheck:Cond
|
|
...
|
|
fun:EVP_DecryptFinal_ex
|
|
fun:_ZN4ceph6crypto6onwire25AES128GCM_OnWireRxHandler34authenticated_decrypt_update_finalEONS_6buffer7v*4listEj
|
|
fun:_ZN10ProtocolV231handle_read_frame_epilogue_mainEOSt10unique_ptrIN4ceph6buffer7v*8ptr_nodeENS4_8disposerEEi
|
|
fun:_ZN10ProtocolV216run_continuationER2CtIS_E
|
|
...
|
|
fun:_ZN15AsyncConnection7processEv
|
|
fun:_ZN11EventCenter14process_eventsEjPNSt6chrono8durationImSt5ratioILl1ELl1000000000EEEE
|
|
...
|
|
}
|
|
|
|
{
|
|
uninitialised gcm.Xi in aes-128-gcm with AES-NI for msgr, part 2
|
|
Memcheck:Cond
|
|
fun:_ZN4ceph6crypto6onwire25AES128GCM_OnWireRxHandler34authenticated_decrypt_update_finalEONS_6buffer7v*4listEj
|
|
fun:_ZN10ProtocolV231handle_read_frame_epilogue_mainEOSt10unique_ptrIN4ceph6buffer7v*8ptr_nodeENS4_8disposerEEi
|
|
fun:_ZN10ProtocolV216run_continuationER2CtIS_E
|
|
...
|
|
fun:_ZN11EventCenter14process_eventsEjPNSt6chrono8durationImSt5ratioILl1ELl1000000000EEEE
|
|
...
|
|
}
|