From d10ab9ebfdb4aa5ae285f1e2b89fd490584b0cb3 Mon Sep 17 00:00:00 2001 From: Radoslaw Zarzynski Date: Fri, 29 Mar 2019 03:19:32 +0100 Subject: [PATCH] src/valgrind.supp: replace with the teuthology's whitelist. This change drops src/valgrind.supp file and transplates the current teuthology's whitelist into qa/valgrind.supp. This commit has sibiling in the teuthology repo dropping the file there. The rationale behind the entire change is duplication of these files between two repos, their inconsistencies and confusion. Signed-off-by: Radoslaw Zarzynski --- qa/valgrind.supp | 585 ++++++++++++++++++++++++++++++++++++++++++++++ src/valgrind.supp | 263 --------------------- 2 files changed, 585 insertions(+), 263 deletions(-) create mode 100644 qa/valgrind.supp delete mode 100644 src/valgrind.supp diff --git a/qa/valgrind.supp b/qa/valgrind.supp new file mode 100644 index 0000000000000..8de239e1aa0fc --- /dev/null +++ b/qa/valgrind.supp @@ -0,0 +1,585 @@ +{ + 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:*boost*detail*make_external_thread_data* + fun:*boost*detail*add_new_tss_node* + 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 + ... +} diff --git a/src/valgrind.supp b/src/valgrind.supp deleted file mode 100644 index 369d7b821b440..0000000000000 --- a/src/valgrind.supp +++ /dev/null @@ -1,263 +0,0 @@ -# some valgrind suppressions -# to load these automagically, -# cat > ~/.valgrindrc -# --suppressions=valgrind.supp -# - - -# this one makes valgrind shut up about what appears to be a bug in libc's writev. -{ - writev uninit bytes thing -sage - Memcheck:Param - writev(vector[...]) - fun:writev - fun:_ZN11BlockDevice6_writeEijjRN6buffer4listE - fun:_ZN11BlockDevice5do_ioEiRSt4listIPNS_6biovecESaIS2_EE - fun:_ZN11BlockDevice15io_thread_entryEv - fun:_ZN11BlockDevice8IOThread5entryEv - fun:_ZN6Thread11_entry_funcEPv - fun:start_thread - fun:clone - obj:* - obj:* - obj:* - obj:* -} - -# gethostbyname -{ - gethostbyname on issdm - Memcheck:Param - socketcall.sendto(msg) - fun:send - fun:get_mapping - fun:__nscd_get_map_ref - fun:nscd_gethst_r - fun:__nscd_gethostbyname_r - fun:gethostbyname_r@@GLIBC_2.2.5 - fun:gethostbyname - fun:_ZN4Rank8Accepter5startEv - fun:_ZN4Rank10start_rankEv - fun:main -} -{ - - Memcheck:Param - socketcall.sendto(msg) - fun:send - fun:get_mapping - fun:__nscd_get_map_ref - fun:nscd_gethst_r - fun:__nscd_gethostbyname_r - fun:gethostbyname_r@@GLIBC_2.2.5 - fun:gethostbyname - fun:_ZN4Rank8Accepter5startEv - fun:_ZN4Rank10start_rankEv - fun:_Z17mpi_bootstrap_newRiRPPcP6MonMap - fun:main -} - -# gethostbyname - -{ - gethostbyname on foil - Memcheck:Addr8 - obj:/lib/ld-2.6.1.so - obj:/lib/ld-2.6.1.so - obj:/lib/ld-2.6.1.so - obj:/lib/ld-2.6.1.so - obj:/lib/ld-2.6.1.so - obj:/lib/ld-2.6.1.so - obj:/lib/ld-2.6.1.so - obj:/lib/libc-2.6.1.so - obj:/lib/ld-2.6.1.so - fun:__libc_dlopen_mode - fun:__nss_lookup_function - obj:/lib/libc-2.6.1.so -} - -# mpi on issdm -{ - - Memcheck:Overlap - fun:memcpy - fun:MPIR_Localcopy - fun:MPIR_Gather - fun:MPI_Gather - fun:_Z17mpi_bootstrap_newRiRPPcP6MonMap - fun:main -} -{ - - Memcheck:Param - writev(vector[...]) - fun:writev - fun:MPIDU_Sock_writev - fun:MPIDI_CH3_iStartMsgv - fun:MPIDI_CH3_EagerContigSend - fun:MPID_Send - fun:MPIC_Send - fun:MPIR_Bcast - fun:MPI_Bcast - fun:_Z17mpi_bootstrap_newRiRPPcP6MonMap - fun:main -} -{ - - Memcheck:Param - write(buf) - obj:/lib64/tls/libpthread-2.3.4.so - fun:MPIDU_Sock_write - fun:MPIDI_CH3_iSend - fun:MPID_Isend - fun:MPIC_Sendrecv - fun:MPIR_Barrier - fun:MPI_Barrier - fun:_Z17mpi_bootstrap_newRiRPPcP6MonMap - fun:main -} -{ - - Memcheck:Param - write(buf) - obj:/lib64/tls/libpthread-2.3.4.so - fun:MPIDU_Sock_write - fun:MPIDI_CH3_iStartMsg - fun:MPIDI_CH3U_VC_SendClose - fun:MPIDI_PG_Close_VCs - fun:MPID_Finalize - fun:MPI5: - fun:main -} -{ - - Memcheck:Param - write(buf) - obj:/lib64/tls/libpthread-2.3.4.so - fun:MPIDU_Sock_write - fun:MPIDI_CH3_iSend - fun:MPID_Isend - fun:MPIC_Sendrecv - fun:MPIR_Barrier - fun:MPI_Barrier - fun:main -} -{ - - Memcheck:Param - write(buf) - obj:/lib64/tls/libpthread-2.3.4.so - fun:MPIDU_Sock_write - fun:MPIDI_CH3_iStartMsg - fun:MPIDI_CH3U_VC_SendClose - fun:MPIDI_PG_Close_VCs - fun:MPID_Finalize - fun:MPI_Finalize - fun:main -} - { - - Memcheck:Param - writev(vector[...]) - fun:writev - fun:MPIDU_Socki_handle_write - fun:MPIDU_Sock_wait - fun:MPIDI_CH3_Progress_wait - fun:MPIC_Wait - fun:MPIC_Send - fun:MPIR_Gather - fun:MPI_Gather - fun:_Z17mpi_bootstrap_newRiRPPcP6MonMap - fun:main -} - -# lttng-ust -{ - - Memcheck:Leak - fun:calloc - fun:_dl_allocate_tls - fun:pthread_create@@GLIBC_2.2.5 - obj:/usr/*lib*/liblttng-ust.* - fun:call_init.part.0 - fun:_dl_init - obj:* -} - -# PK11_CreateContextBySymKey -{ - - Helgrind:Race - obj:/usr/*lib*/libfreebl*3.so - ... - obj:/usr/*lib*/libsoftokn3.so - ... - obj:/usr/*lib*/libnss3.so - ... - fun:PK11_CreateContextBySymKey - ... -} - -# _dl_allocate_tls_init -{ - - Helgrind:Race - fun:mempcpy - fun:_dl_allocate_tls_init - ... - fun:pthread_create@* - ... -} - -# 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 -} -- 2.39.5