From 57049ef2ae44a7955088837bc38098a668a6f07d Mon Sep 17 00:00:00 2001 From: Radoslaw Zarzynski Date: Thu, 28 Mar 2019 23:13:10 +0100 Subject: [PATCH] valgrind.supp: move the whitelist file to /qa dir of ceph.git This change drops valgrind.supp whitelist file from teuthology repo and alters the install task to acquire it from /qa dir of ceph-qa-suite repository. It's expected the commit will have sibiling in ceph.git moving the proper valgrind.supp there. The rationale behind the entire change is duplication of these files between two repos, their inconsistencies and confusion. Signed-off-by: Radoslaw Zarzynski --- teuthology/task/install/util.py | 30 +- teuthology/task/install/valgrind.supp | 585 -------------------------- 2 files changed, 17 insertions(+), 598 deletions(-) delete mode 100644 teuthology/task/install/valgrind.supp diff --git a/teuthology/task/install/util.py b/teuthology/task/install/util.py index 289a79d56a..39692c9d36 100644 --- a/teuthology/task/install/util.py +++ b/teuthology/task/install/util.py @@ -67,19 +67,23 @@ def ship_utilities(ctx, config): filenames = [] log.info('Shipping valgrind.supp...') - with file( - os.path.join(os.path.dirname(__file__), 'valgrind.supp'), - 'rb' - ) as f: - fn = os.path.join(testdir, 'valgrind.supp') - filenames.append(fn) - for rem in ctx.cluster.remotes.iterkeys(): - teuthology.sudo_write_file( - remote=rem, - path=fn, - data=f, - ) - f.seek(0) + assert 'suite_path' in ctx.config + try: + with file( + os.path.join(ctx.config['suite_path'], 'valgrind.supp'), + 'rb' + ) as f: + fn = os.path.join(testdir, 'valgrind.supp') + filenames.append(fn) + for rem in ctx.cluster.remotes.iterkeys(): + teuthology.sudo_write_file( + remote=rem, + path=fn, + data=f, + ) + f.seek(0) + except IOError as e: + log.info('Cannot ship supression file for valgrind: %s...', e.strerror) FILES = ['daemon-helper', 'adjust-ulimits'] destdir = '/usr/bin' diff --git a/teuthology/task/install/valgrind.supp b/teuthology/task/install/valgrind.supp deleted file mode 100644 index 8de239e1aa..0000000000 --- a/teuthology/task/install/valgrind.supp +++ /dev/null @@ -1,585 +0,0 @@ -{ - 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 - ... -} -- 2.39.5