# Copyright (c) 2005, 2019, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License, version 2.0, # as published by the Free Software Foundation. # # This program is also distributed with certain software (including # but not limited to OpenSSL) that is licensed under separate terms, # as designated in a particular file or component or in included license # documentation. The authors of MySQL hereby grant you an additional # permission to link the program and your derivative works with the # separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # # Suppress some common (not fatal) errors in system libraries found by valgrind # # # Pthread doesn't free all thread specific memory before program exists # { pthread allocate_tls memory loss Memcheck:Leak fun:calloc ... fun:_dl_allocate_tls fun:allocate_stack fun:pthread_create* } { pthread allocate_tls memory loss Memcheck:Leak fun:calloc fun:_dl_allocate_tls fun:pthread_create* } { semi_sync_master_plugin_init Memcheck:Leak match-leak-kinds: reachable fun:malloc ... fun:tls_get_addr_tail } { GCC never cleans up its TLS block Memcheck:Leak fun:memalign ... fun:tls_get_addr_tail } { pthead_exit memory loss 1 Memcheck:Leak fun:malloc fun:_dl_new_object fun:_dl_map_object_from_fd } { pthread_exit memory loss 2 Memcheck:Leak fun:malloc fun:_dl_map_object fun:dl_open_worker } { pthread_exit memory loss 3 Memcheck:Leak fun:malloc fun:_dl_map_object_deps fun:dl_open_worker } { pthread_exit memory loss 4 Memcheck:Leak fun:calloc fun:_dl_check_map_versions fun:dl_open_worker } { pthread_exit memory loss 5 Memcheck:Leak fun:calloc fun:_dl_new_object fun:_dl_map_object_from_fd } { pthread allocate_dtv memory loss Memcheck:Leak fun:calloc fun:allocate_dtv fun:_dl_allocate_tls_storage fun:__GI__dl_allocate_tls fun:pthread_create } { pthread allocate_dtv memory loss second Memcheck:Leak fun:calloc fun:allocate_dtv fun:_dl_allocate_tls fun:pthread_create* } { pthread memalign memory loss Memcheck:Leak fun:memalign fun:_dl_allocate_tls_storage fun:__GI__dl_allocate_tls fun:pthread_create } { pthread pthread_key_create Memcheck:Leak fun:malloc fun:* fun:* fun:pthread_key_create fun:my_thread_global_init } { pthread strstr uninit Memcheck:Cond fun:strstr obj:/lib/tls/libpthread.so.* obj:/lib/tls/libpthread.so.* fun:call_init fun:_dl_init obj:/lib/ld-*.so } { pthread strstr uninit Memcheck:Cond fun:strstr obj:/lib/tls/libpthread.so.* obj:/lib/tls/libpthread.so.* fun:call_init fun:_dl_init obj:/lib/ld-*.so } { strlen/_dl_init_paths/dl_main/_dl_sysdep_start(Cond) Memcheck:Cond fun:strlen fun:_dl_init_paths fun:dl_main fun:_dl_sysdep_start } { pthread errno Memcheck:Leak fun:calloc fun:_dlerror_run fun:dlsym fun:__errno_location } { pthread errno Memcheck:Leak fun:calloc fun:_dlerror_run fun:dlclose } # # Warnings in libz becasue it works with aligned memory(?) # { libz tr_flush_block Memcheck:Cond fun:_tr_flush_block fun:deflate_slow fun:deflate fun:do_flush fun:gzclose } { libz tr_flush_block2 Memcheck:Cond fun:_tr_flush_block fun:deflate_slow fun:deflate fun:compress2 } { libz longest_match Memcheck:Cond fun:longest_match fun:deflate_slow fun:deflate } { libz deflate Memcheck:Cond obj:*/libz.so.* obj:*/libz.so.* fun:deflate fun:compress2 } { libz deflate2 Memcheck:Cond obj:*/libz.so.* obj:*/libz.so.* fun:deflate obj:*/libz.so.* fun:gzflush } { libz deflate3 Memcheck:Cond obj:*/libz.so.* obj:*/libz.so.* fun:deflate fun:do_flush } { libz deflate4 Memcheck:Param write(buf) fun:* fun:my_write fun:do_flush fun:azclose } # Warning from zlib, cf. http://www.zlib.net/zlib_faq.html#faq36 { libz deflate5 Memcheck:Cond fun:slide_hash fun:fill_window fun:deflate_fast fun:deflate } # # Warning from my_thread_init becasue mysqld dies before kill thread exists # { my_thread_init kill thread memory loss second Memcheck:Leak fun:calloc fun:my_thread_init fun:kill_server_thread } # Red Hat AS 4 32 bit { dl_relocate_object Memcheck:Cond fun:_dl_relocate_object } # # Warning from my_thread_init becasue mysqld dies before kill thread exists # { my_thread_init kill thread memory loss second Memcheck:Leak fun:calloc fun:my_thread_init fun:kill_server_thread } # # Leaks reported in _dl_* internal functions on Linux amd64 / glibc2.3.2. # { _dl_start invalid write8 Memcheck:Addr8 fun:_dl_start } { _dl_start invalid write4 Memcheck:Addr4 fun:_dl_start } { _dl_start/_dl_setup_hash invalid read8 Memcheck:Addr8 fun:_dl_setup_hash fun:_dl_start } { _dl_sysdep_start invalid write8 Memcheck:Addr8 fun:_dl_sysdep_start } { _dl_init invalid write8 Memcheck:Addr8 fun:_dl_init } { _dl_init invalid write4 Memcheck:Addr4 fun:_dl_init } { _dl_init/_dl_init invalid read8 Memcheck:Addr8 fun:_dl_debug_initialize fun:_dl_init } { _dl_init/_dl_debug_state invalid read8 Memcheck:Addr8 fun:_dl_debug_state fun:_dl_init } { init invalid write8 Memcheck:Addr8 fun:init } { fixup invalid write8 Memcheck:Addr8 fun:fixup } { fixup/_dl_lookup_versioned_symbol invalid read8 Memcheck:Addr8 fun:_dl_lookup_versioned_symbol fun:fixup } { _dl_runtime_resolve invalid read8 Memcheck:Addr8 fun:_dl_runtime_resolve } { __libc_start_main invalid write8 Memcheck:Addr8 fun:__libc_start_main } { __libc_start_main/__sigjmp_save invalid write4 Memcheck:Addr4 fun:__sigjmp_save fun:__libc_start_main } # # These seem to be libc threading stuff, not related to MySQL code (allocations # during pthread_exit()). Googling shows other projects also using these # suppressions. # # Note that these all stem from pthread_exit() deeper in the call stack, but # Valgrind only allows the top four calls in the suppressions. # { libc pthread_exit 1 Memcheck:Leak fun:malloc fun:_dl_new_object fun:_dl_map_object_from_fd fun:_dl_map_object } { libc pthread_exit 2 Memcheck:Leak fun:malloc fun:_dl_map_object fun:dl_open_worker fun:_dl_catch_error } { libc pthread_exit 3 Memcheck:Leak fun:malloc fun:_dl_map_object_deps fun:dl_open_worker fun:_dl_catch_error } { libc pthread_exit 4 Memcheck:Leak fun:calloc fun:_dl_check_map_versions fun:dl_open_worker fun:_dl_catch_error } { libc pthread_exit 5 Memcheck:Leak fun:calloc fun:_dl_new_object fun:_dl_map_object_from_fd fun:_dl_map_object } { libc pthread_exit 6 Memcheck:Leak fun:malloc fun:_dl_map_object fun:openaux fun:_dl_catch_error } { libc pthread_exit 7 Memcheck:Leak fun:malloc fun:dl_open_worker fun:_dl_catch_error fun:_dl_open } { libc pthread_exit 8 Memcheck:Leak fun:malloc fun:local_strdup fun:_dl_map_object fun:dl_open_worker } # strdup can be inlined { libc pthread_exit 9 Memcheck:Leak fun:malloc ... fun:expand_dynamic_string_token fun:_dl_map_object fun:dl_open_worker } # # This is seen internally in the system libraries on 64-bit RHAS3. # { __lll_mutex_unlock_wake uninitialized Memcheck:Param futex(utime) fun:__lll_mutex_unlock_wake } # # BUG#19940: NDB sends uninitialized parts of field buffers across the wire. # This is "works as designed"; the uninitialized part is not used at the # other end (but Valgrind cannot see this). # { bug19940 Memcheck:Param socketcall.sendto(msg) fun:send fun:_ZN15TCP_Transporter6doSendEv fun:_ZN19TransporterRegistry11performSendEv fun:_ZN19TransporterRegistry14forceSendCheckEi } # Warning when printing stack trace (to suppress some not needed warnings) # { vprintf on stacktrace Memcheck:Cond fun:vfprintf fun:uffered_vfprintf fun:vfprintf fun:fprintf fun:print_stacktrace } # # Safe warnings, that may happen because of thread scheduling # { dbug initialization by kill_server Memcheck:Leak fun:malloc fun:DbugMalloc fun:code_state fun:_db_enter_ fun:kill_server } # # Warning caused by small memory leak in threaded dlopen # { dlopen threaded memory leak Memcheck:Leak fun:calloc obj:*/libdl-*.so fun:dlopen* } { dlopen memory leak Memcheck:Leak match-leak-kinds: reachable fun:calloc fun:_dlerror_run fun:dlsym } # # Pthread doesn't free all thread specific memory before program exists # { pthread allocate_tls memory loss in 2.6.1. Memcheck:Leak fun:calloc obj:*/ld-*.so fun:_dl_allocate_tls fun:pthread_create* } { buf_buddy_relocate peeking (space,page) in potentially free blocks Memcheck:Addr1 fun:buf_buddy_relocate } { Bug 59874 Valgrind warning in InnoDB compression code Memcheck:Cond fun:* fun:* fun:deflate fun:btr_store_big_rec_extern_fields_func fun:row_ins_index_entry_low fun:row_ins_index_entry fun:row_ins_index_entry_step fun:row_ins fun:row_ins_step fun:row_insert_for_mysql } { In page0zip.c we have already checked that the memory is initialized before calling deflate() Memcheck:Cond fun:* fun:* fun:deflate fun:page_zip_compress } { In page0zip.c we have already checked that the memory is initialized before calling deflate() Memcheck:Cond fun:* fun:* fun:deflate fun:page_zip_compress_deflate } { In page0zip.c we have already checked that the memory is initialized before calling deflate() Memcheck:Cond obj:*/libz.so* obj:*/libz.so* fun:deflate fun:page_zip_compress fun:page_zip_reorganize fun:page_cur_insert_rec_zip_reorg fun:page_cur_insert_rec_zip fun:page_cur_tuple_insert fun:btr_cur_optimistic_insert fun:btr_cur_pessimistic_insert fun:row_ins_index_entry_low fun:row_ins_index_entry fun:row_ins_index_entry_step fun:row_ins fun:row_ins_step fun:row_insert_for_mysql } { In page0zip.c we have already checked that the memory is initialized before calling deflate() Memcheck:Cond obj:*/libz.so* obj:*/libz.so* fun:deflate fun:page_zip_compress fun:page_zip_reorganize fun:page_cur_insert_rec_zip_reorg fun:page_cur_insert_rec_zip fun:page_cur_tuple_insert fun:btr_cur_optimistic_insert fun:row_ins_index_entry_low fun:row_ins_index_entry fun:row_ins_index_entry_step fun:row_ins fun:row_ins_step fun:row_insert_for_mysql } { In page0zip.c we have already checked that the memory is initialized before calling deflate() Memcheck:Cond obj:*/libz.so* obj:*/libz.so* fun:deflate fun:page_zip_compress fun:page_copy_rec_list_end fun:page_move_rec_list_end fun:btr_page_split_and_insert fun:btr_root_raise_and_insert fun:btr_cur_pessimistic_insert fun:row_ins_index_entry_low fun:row_ins_index_entry fun:row_ins_index_entry_step fun:row_ins fun:row_ins_step fun:row_insert_for_mysql } { In page0zip.c we have already checked that the memory is initialized before calling deflate() Memcheck:Cond obj:*/libz.so* obj:*/libz.so* fun:deflate fun:page_zip_compress fun:page_cur_insert_rec_zip_reorg fun:page_cur_insert_rec_zip fun:page_cur_tuple_insert fun:btr_cur_optimistic_insert fun:btr_cur_pessimistic_insert fun:row_ins_index_entry_low fun:row_ins_index_entry fun:row_ins_index_entry_step fun:row_ins fun:row_ins_step fun:row_insert_for_mysql } { Bug 59875 Valgrind warning in buf0buddy.c Memcheck:Addr1 fun:mach_read_from_4 fun:buf_buddy_relocate fun:buf_buddy_free_low fun:buf_buddy_free } # # NDB packfrm vs deflate # { NDB packfrm case 1 Memcheck:Cond fun:deflate_slow fun:deflate fun:compress fun:my_compress_alloc fun:my_compress fun:packfrm } { NDB packfrm case 2 Memcheck:Cond fun:longest_match fun:deflate_slow fun:deflate fun:compress fun:my_compress_alloc fun:my_compress fun:packfrm } # # pfs vs compress # { pfs vs. compress case 1 Memcheck:Cond fun:longest_match fun:deflate_slow fun:deflate fun:compress fun:my_compress_alloc fun:my_compress } { pfs vs. compress case 2 Memcheck:Cond fun:deflate_slow fun:deflate fun:compress fun:my_compress_alloc fun:my_compress } # Note the wildcard in the (mangled) function signatures of # write_keys() and find_all_keys(). # They both return ha_rows, which is platform dependent. # # The '...' wildcards are for 'fun:inline_mysql_file_write' which *may* # be inlined. { Bug#12856915 VALGRIND FAILURE IN FILESORT/CREATE_SORT_INDEX / one Memcheck:Param write(buf) ... fun:_Z19my_b_flush_io_cacheP8IO_CACHEi fun:_Z11_my_b_writeP8IO_CACHEPKhm fun:_Z10my_b_writeP8IO_CACHEPKhm fun:_Z*10write_keysP10Sort_paramP13Filesort_infojP8IO_CACHES4_ ... fun:_Z8filesortP3THDP8Filesort* } { Bug#12856915 VALGRIND FAILURE IN FILESORT/CREATE_SORT_INDEX / three Memcheck:Param write(buf) ... fun:_Z19my_b_flush_io_cacheP8IO_CACHEi fun:_Z8filesortP3THDP8Filesort* } { OpenSSL still reachable. Memcheck:Leak fun:malloc ... fun:CRYPTO_malloc fun:sk_new ... fun:SSL_COMP_get_compression_methods fun:SSL_library_init } { OpenSSL still reachable. Memcheck:Leak fun:malloc fun:CRYPTO_malloc fun:engine_cleanup_add_last fun:ENGINE_add } { OpenSSL still reachable. Memcheck:Leak fun:malloc fun:CRYPTO_malloc fun:sk_new fun:engine_cleanup_add_last fun:ENGINE_add } { OpenSSL still reachable. Memcheck:Leak fun:malloc fun:CRYPTO_malloc fun:ENGINE_new } { OpenSSL still reachable. Memcheck:Leak match-leak-kinds: reachable fun:malloc fun:CRYPTO_malloc ... fun:ERR_peek_error fun:vio_ssl_read ... } { OpenSSL still reachable. Memcheck:Leak match-leak-kinds: reachable fun:malloc fun:CRYPTO_malloc ... fun:ERR_peek_error ... fun:sslaccept ... fun:server_mpvio_read_packet ... } { Bug#16039908 "BYTES STILL REACHABLE" IN VALGRIND TEST ON 5.6/TRUNK Memcheck:Leak fun:calloc fun:_dlerror_run fun:dlclose fun:_ZL15free_plugin_memP12st_plugin_dl fun:_ZL13plugin_dl_delPK16MYSQL_LEX_STRING fun:_ZL10plugin_delP13st_plugin_int fun:_ZL12reap_pluginsv fun:_Z15plugin_shutdownv fun:_Z*8clean_upb* } { main.udf gives similar warning as Bug#16039908 Memcheck:Leak fun:calloc fun:_dlerror_run fun:dlclose fun:_Z*udf_deinitv fun:_Z*8clean_upb* } #Suppress warnings from glibc implementation of 'malloc_info' { Malloc_info uninitialised value of size 8 Memcheck:Value8 fun:_itoa_word fun:vfprintf fun:fprintf fun:mi_arena.* fun:malloc_info } { Malloc_info conditional jump depends on uninitialised values Memcheck:Cond ... fun:mi_arena.* fun:malloc_info } #supress warnings from openssl random generator { OpenSSL conditional jump in ssl3_ctx_ctrl Memcheck:Cond ... fun:ssl3_ctx_ctrl fun:new_VioSSLFd } { OpenSSL uninitialised value of size 8 in new_VioSSLFd Memcheck:Value8 fun:BN_num_bits_word fun:BN_num_bits ... fun:new_VioSSLFd } { OpenSSL uninitialised value of size 8 in new_VioSSLFd Memcheck:Value8 fun:BN_mod_exp_mont_consttime ... fun:new_VioSSLFd } { OpenSSL PB2 / 1 Memcheck:Leak match-leak-kinds: reachable fun:malloc fun:CRYPTO_malloc fun:sk_new fun:SSL_COMP_get_compression_methods fun:SSL_library_init fun:ssl_start fun:_Z8init_sslv fun:_Z11mysqld_mainiPPc fun:main } { OpenSSL PB2 / 2 Memcheck:Leak match-leak-kinds: reachable fun:malloc fun:CRYPTO_malloc fun:sk_new fun:SSL_COMP_get_compression_methods fun:SSL_library_init fun:ssl_start fun:_ZL8init_sslv fun:_Z11mysqld_mainiPPc fun:main } { OpenSSL libstdc++ version 5 / one Memcheck:Leak match-leak-kinds: reachable fun:malloc fun:CRYPTO_malloc fun:sk_new obj:/lib/x86_64-linux-gnu/libssl.so.1.0.0 fun:SSL_COMP_get_compression_methods fun:SSL_library_init fun:ssl_start fun:_ZL8init_sslv fun:_Z11mysqld_mainiPPc fun:main } { OpenSSL libstdc++ version 5 / two Memcheck:Leak match-leak-kinds: reachable fun:malloc fun:CRYPTO_malloc fun:sk_new obj:/lib/x86_64-linux-gnu/libssl.so.1.0.0 fun:SSL_COMP_get_compression_methods fun:SSL_library_init fun:ssl_start fun:_ZL8init_sslv fun:_Z11mysqld_mainiPPc fun:main } { OpenSSL libstdc++ version 5 / three Memcheck:Leak match-leak-kinds: reachable fun:malloc obj:/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21 fun:call_init.part.0 fun:call_init fun:_dl_init } # supress uninitialized because some SSL libraries do random like that { OpenSSL conditional jump in generate_user_salt due to randomness Memcheck:Cond fun:generate_user_salt fun:native_password_authenticate } # Remove the NUMA ones below when https://github.com/numactl/numactl/issues/3 # is resolved. { libnuma fails to free its internally allocated memory 1 Memcheck:Leak fun:malloc fun:numa_bitmask_alloc } { libnuma fails to free its internally allocated memory 2 Memcheck:Leak fun:calloc fun:numa_bitmask_alloc } { libnuma fails to free its internally allocated memory 3 Memcheck:Leak fun:calloc ... fun:numa_node_*_cpu* } { General protobuf globals Memcheck:Leak fun:_Znwm ... fun:_GLOBAL__sub_I_mysqlx*.pb.cc ... } { General protobuf globals Memcheck:Leak match-leak-kinds: reachable fun:_Znwm ... fun:_Z41__static_initialization_and_destruction_0ii } { General protobuf globals Memcheck:Leak match-leak-kinds: reachable fun:_Znwm ... fun:_ZN6Mysqlx23protobuf_mysqlx_2eproto27StaticDescriptorInitializerC1Ev } { mysqlx plugin install Memcheck:Leak fun:*alloc ... fun:_dl_catch_error ... fun:dlopen* ... fun:_ZL13plugin_dl_addPK16MYSQL_LEX_STRINGi* ... } # supress inability to cleanup OpenSSL error contexts in GR { OpenSSL GR suppress leak 1 Memcheck:Leak match-leak-kinds: reachable fun:malloc fun:CRYPTO_malloc fun:ERR_get_state fun:ERR_clear_error obj:* obj:* obj:* obj:* obj:* obj:* obj:* obj:* obj:* fun:_ZN14Trans_delegate13before_commitEP3THDbP8IO_CACHES3_y fun:_ZN13MYSQL_BIN_LOG6commitEP3THDb fun:_Z17trans_commit_stmtP3THD } { OpenSSL GR suppress leak 2 Memcheck:Leak match-leak-kinds: reachable fun:malloc fun:CRYPTO_malloc fun:ERR_get_state fun:ERR_clear_error obj:* obj:* obj:* obj:* obj:* obj:* obj:* obj:* obj:* fun:_ZN14Trans_delegate13before_commitEP3THDbP8IO_CACHES3_y fun:_ZN13MYSQL_BIN_LOG6commitEP3THDb fun:_Z15ha_commit_transP3THDbb } { OpenSSL GR suppress leak 3 Memcheck:Leak match-leak-kinds: reachable fun:malloc ... fun:CRYPTO_malloc fun:lh_insert fun:int_thread_set_item fun:ERR_get_state fun:ERR_clear_error obj:* obj:* obj:* obj:* obj:* obj:* obj:* obj:* obj:* fun:_ZN14Trans_delegate13before_commitEP3THDbP8IO_CACHES3_y } { OpenSSL GR suppress leak 4 Memcheck:Leak match-leak-kinds: all fun:malloc ... fun:CRYPTO_malloc fun:lh_new obj:* obj:* fun:ERR_get_state fun:ERR_put_error fun:PEM_read_bio fun:PEM_X509_INFO_read_bio fun:X509_load_cert_crl_file obj:* fun:X509_STORE_load_locations ... } { OpenSSL still reachable. Memcheck:Leak match-leak-kinds: reachable fun:malloc fun:CRYPTO_malloc ... fun:ERR_peek_error fun:vio_ssl_read ... } { OpenSSL still reachable. Memcheck:Leak match-leak-kinds: reachable fun:malloc fun:CRYPTO_malloc ... fun:ERR_peek_error ... fun:sslaccept ... fun:server_mpvio_read_packet ... } # # Rules to suppress leaks from plugin dependencies # { TPL leak 1 Memcheck:Leak match-leak-kinds: reachable fun:malloc fun:CRYPTO_malloc fun:BUF_strndup fun:CONF_module_add obj:* obj:* obj:* obj:* obj:* obj:* fun:_ZL17plugin_initializeP13st_plugin_int ... } { TPL leak 2 Memcheck:Leak match-leak-kinds: reachable fun:malloc fun:CRYPTO_malloc fun:BUF_strndup fun:CONF_module_add obj:* obj:* obj:* obj:* obj:* fun:_ZL17plugin_initializeP13st_plugin_int ... } { TPL leak 3 Memcheck:Leak match-leak-kinds: reachable fun:malloc ... fun:CRYPTO_malloc fun:lh_insert fun:int_thread_set_item fun:ERR_get_state fun:ERR_clear_error obj:* obj:* obj:* obj:* obj:* obj:* fun:_ZL17plugin_initializeP13st_plugin_int ... } { TPL leak 4 Memcheck:Leak match-leak-kinds: reachable fun:malloc fun:CRYPTO_malloc fun:sk_new fun:CONF_module_add obj:* obj:* obj:* obj:* obj:* obj:* fun:_ZL17plugin_initializeP13st_plugin_int ... } { TPL leak 5 Memcheck:Leak match-leak-kinds: reachable fun:malloc fun:CRYPTO_malloc fun:sk_new fun:SSL_COMP_get_compression_methods fun:SSL_library_init obj:* obj:* obj:* obj:* obj:* fun:_ZL17plugin_initializeP13st_plugin_int ... } { TPL leak 6 Memcheck:Leak match-leak-kinds: reachable fun:malloc fun:CRYPTO_malloc fun:CONF_module_add obj:* obj:* obj:* obj:* obj:* obj:* fun:_ZL17plugin_initializeP13st_plugin_int ... } { TPL leak 7 Memcheck:Leak match-leak-kinds: reachable fun:malloc fun:CRYPTO_malloc fun:CONF_module_add obj:* obj:* obj:* obj:* obj:* fun:_ZL17plugin_initializeP13st_plugin_int ... } { TPL leak 8 Memcheck:Leak match-leak-kinds: reachable fun:malloc ... fun:CRYPTO_malloc fun:lh_new fun:int_thread_get fun:int_thread_set_item fun:ERR_get_state fun:ERR_clear_error obj:* obj:* obj:* obj:* obj:* obj:* fun:_ZL17plugin_initializeP13st_plugin_int ... } { TPL leak 9 Memcheck:Leak match-leak-kinds: reachable fun:malloc fun:CRYPTO_malloc fun:ERR_get_state fun:ERR_clear_error obj:* obj:* obj:* obj:* obj:* obj:* fun:_ZL17plugin_initializeP13st_plugin_int ... } { TPL leak 10 Memcheck:Leak match-leak-kinds: definite fun:malloc obj:* obj:* obj:* obj:* obj:* obj:* obj:* fun:_ZL17plugin_initializeP13st_plugin_int ... } { TPL leak 11 Memcheck:Leak match-leak-kinds: reachable fun:malloc ... fun:CRYPTO_malloc fun:ERR_get_state fun:ERR_put_error fun:PEM_read_bio fun:PEM_X509_INFO_read_bio fun:X509_load_cert_crl_file fun:by_file_ctrl fun:X509_STORE_load_locations obj:* obj:* obj:* obj:* obj:* obj:* fun:_ZL17plugin_initializeP13st_plugin_int } { TPL leak 12 Memcheck:Leak match-leak-kinds: reachable fun:malloc fun:CRYPTO_malloc fun:BUF_strndup fun:CONF_module_add obj:* obj:* obj:* obj:* obj:* obj:* obj:* obj:* obj:* obj:* obj:* obj:* } { TPL leak 13 Memcheck:Leak match-leak-kinds: reachable fun:malloc fun:CRYPTO_malloc fun:CONF_module_add obj:* obj:* obj:* obj:* obj:* obj:* obj:* obj:* obj:* obj:* obj:* obj:* obj:* } { TPL leak 14 Memcheck:Leak match-leak-kinds: reachable fun:malloc fun:CRYPTO_malloc fun:sk_new fun:SSL_COMP_get_compression_methods fun:SSL_library_init obj:* fun:_ZL17plugin_initializeP13st_plugin_int ... } { TPL leak 15 Memcheck:Leak match-leak-kinds: all fun:malloc ... fun:CRYPTO_malloc fun:lh_insert obj:* fun:ERR_get_state fun:ERR_put_error fun:PEM_read_bio fun:PEM_X509_INFO_read_bio fun:X509_load_cert_crl_file obj:* fun:X509_STORE_load_locations ... } { TPL leak 16 Memcheck:Leak match-leak-kinds: reachable fun:realloc fun:CRYPTO_realloc fun:sk_insert fun:CONF_module_add obj:* obj:* obj:* obj:* obj:* obj:* fun:_ZL17plugin_initializeP13st_plugin_int ... } { TPL leak 17 Memcheck:Leak match-leak-kinds: reachable fun:malloc ... fun:CRYPTO_malloc fun:lh_insert fun:int_thread_set_item fun:ERR_get_state fun:ERR_clear_error obj:* obj:* obj:* obj:* obj:* obj:* obj:* obj:* obj:* obj:* } { TPL leak 18 Memcheck:Leak match-leak-kinds: reachable fun:malloc ... fun:CRYPTO_malloc fun:lh_insert fun:int_thread_set_item fun:ERR_get_state fun:ERR_clear_error obj:* obj:* obj:* obj:* obj:* obj:* obj:* obj:* obj:* obj:* obj:* obj:* } { TPL leak 19 Memcheck:Leak match-leak-kinds: reachable fun:malloc fun:CRYPTO_malloc fun:ERR_get_state fun:ERR_clear_error obj:* obj:* obj:* obj:* obj:* obj:* obj:* obj:* obj:* obj:* obj:* obj:* } { TPL leak 20 Memcheck:Leak match-leak-kinds: definite fun:malloc obj:* obj:* obj:* obj:* obj:* obj:* fun:_ZL17plugin_initializeP13st_plugin_int ... } { TPL leak 21 Memcheck:Leak match-leak-kinds: possible fun:malloc obj:* obj:* obj:* obj:* obj:* obj:* fun:_ZL17plugin_initializeP13st_plugin_int ... } { TPL leak 22 Memcheck:Leak match-leak-kinds: possible fun:malloc ... fun:CRYPTO_malloc fun:lh_new fun:int_thread_get fun:int_thread_set_item fun:ERR_get_state fun:ERR_clear_error fun:ENGINE_load_builtin_engines obj:* obj:* obj:* obj:* obj:* } { TPL leak 23 Memcheck:Leak match-leak-kinds: possible fun:malloc fun:_ZL13my_raw_mallocmi fun:_Z9my_mallocjmi fun:_ZL17my_openssl_mallocm fun:CRYPTO_malloc ... } # Workarounds for # # Bug#26116237 SYSCALL PARAM PPOLL(SIGMASK) POINTS TO UNADDRESSABLE BYTE { RPL workaround 1 Memcheck:Param ppoll(sigmask) fun:ppoll fun:vio_io_wait } { RPL workaround 2 Memcheck:Param ppoll(sigmask) fun:ppoll fun:_Z11vio_io_waitP3Vio17enum_vio_io_eventi } # Workarounds for # # Bug#22833138 KEYRING_OKV : MEMORY LEAKS FROM OKV CLIENT LIB { Keyring_OKV_workaround_addtoTagObj Memcheck:Leak fun:malloc fun:okimem_nat_malloc fun:OKIMemAlloc fun:addtoTagObj } { Keyring_OKV_workaround_OKIGetKey Memcheck:Leak fun:malloc fun:okimem_nat_malloc fun:OKIMemAlloc fun:OKIAPIResultAlloc fun:OKIGetKey } { Keyring_OKV_workaround_OKICreateKey Memcheck:Leak fun:malloc fun:okimem_nat_malloc fun:OKIMemAlloc fun:OKIAPIResultAlloc fun:OKICreateKey } { Keyring_OKV_workaround_okiconn_ssl_send_recv Memcheck:Leak fun:calloc ... fun:OKIConnSendRecvBytes fun:OKIOpsExecuteOp } { Keyring_OKV_workaround_OKIGetAttributes Memcheck:Leak fun:malloc fun:okimem_nat_malloc fun:OKIMemAlloc fun:OKIAPIResultAlloc fun:OKIGetAttributes } { Keyring_OKV_workaround_OKIGetAttributes2 Memcheck:Leak fun:malloc fun:okimem_nat_malloc fun:OKIMemAlloc fun:OKIPostGetUIDTTLV fun:OKIAPIPostProcessing fun:OKIGetAttributes } { Keyring_OKV_workaround_OKIAddAttribute Memcheck:Leak fun:malloc fun:okimem_nat_malloc fun:OKIMemAlloc fun:OKIAPIResultAlloc fun:OKIAddAttribute } { Keyring_OKV_workaround_OKIAddAttribute2 Memcheck:Leak match-leak-kinds: definite fun:malloc fun:okimem_nat_malloc fun:OKIMemAlloc fun:OKIOpsCreate fun:OKIAddAttribute } { Keyring_OKV_workaround_OKILocate Memcheck:Leak fun:malloc fun:okimem_nat_malloc fun:OKIMemAlloc fun:OKIAPIResultAlloc fun:OKILocate } { Keyring_OKV_workaround_OKIActivate Memcheck:Leak fun:malloc fun:okimem_nat_malloc fun:OKIMemAlloc fun:OKIAPIResultAlloc fun:OKIActivate } { Keyring_OKV_workaround_OKIRegKey Memcheck:Leak match-leak-kinds: definite fun:malloc fun:okimem_nat_malloc fun:OKIMemAlloc fun:OKIAPIResultAlloc fun:OKIRegKey } { Keyring_OKV_workaround_OKIRevoke Memcheck:Leak fun:malloc fun:okimem_nat_malloc fun:OKIMemAlloc fun:OKIAPIResultAlloc fun:OKIRevoke } { Keyring_OKV_workaround_OKIEnvCreate Memcheck:Leak fun:malloc fun:okimem_nat_malloc fun:OKIMemAlloc fun:OKIEnvCreate } { Keyring_OKV_workaround_OKITTLVMoveChildWithTag Memcheck:Leak fun:malloc fun:okimem_nat_malloc fun:OKIMemAlloc fun:OKITTLVMoveChildWithTag } { Keyring_OKV_workaround_OKIParseUnpackTTLVFromBuffer Memcheck:Leak fun:malloc fun:okimem_nat_malloc fun:OKIMemAlloc fun:OKIParseUnpackTTLVFromBuffer } { Keyring_OKV_workaround_OKITTLVAddChildObject Memcheck:Leak fun:malloc fun:okimem_nat_malloc fun:OKIMemAlloc fun:OKITTLVAddChildObject } # Bug#27209265 Suppress all issues relating to communication with AWS KMS server. { OpenSSL still reachable. Memcheck:Leak match-leak-kinds: reachable fun:malloc ... fun:CRYPTO_malloc fun:ERR_get_state fun:ERR_put_error fun:PEM_read_bio fun:PEM_X509_INFO_read_bio fun:X509_load_cert_crl_file fun:by_file_ctrl fun:X509_STORE_load_locations obj:* obj:* obj:* obj:* obj:* obj:* obj:* } # Bug #25964438 LDAP: ASAN AND VALGRIND ISSUES { LDAP_TLS_workaround1 Memcheck:Leak fun:calloc ... ... ... ... ... fun:ldap_int_tls_start fun:ldap_start_tls_s fun:*establish_tls* fun:*create* } { LDAP_TLS_workaround2 Memcheck:Leak fun:malloc ... ... ... ... ... fun:ldap_int_tls_start fun:ldap_start_tls_s fun:*establish_tls* fun:*create* } { LDAP_TLS_workaround3 Memcheck:Leak fun:calloc fun:PR_LoadLibraryWithFlags ... ... ... fun:PR_CallOnce ... ... fun:_dl_init } { LDAP_TLS_workaround4 Memcheck:Leak fun:malloc fun:PR_ErrorInstallTable fun:PR_CallOnce ... ... fun:PR_CallOnceWithArg ... fun:NSS_SetDomesticPolicy ... fun:PR_CallOnceWithArg ... ... ... fun:ldap_int_tls_start fun:ldap_start_tls_s fun:*establish_tls* } { LDAP_TLS_workaround5 Memcheck:Leak fun:malloc ... fun:PR_LoadLibraryWithFlags ... ... ... fun:PR_CallOnce ... ... ... ... fun:_dl_catch_error fun:_dl_open fun:dlopen_doit fun:_dl_catch_error fun:_dlerror_run } { LDAP_TLS_workaround6 Memcheck:Leak fun:malloc fun:ber_memalloc_x fun:ber_strdup_x ... fun:ldap_int_initialize fun:ldap_create fun:ldap_initialize fun:*create* } { LDAP_TLS_workaround7 Memcheck:Leak fun:malloc fun:*dl_close_worker* fun:*dl_close* fun:*dl_catch_error* ... fun:*free_mem* fun:*libc_freeres* fun:*vgnU_freeres* fun:*run_exit_handlers* fun:exit* fun:*mysqld_exit* fun:*mysqld_main* fun:*main* } { LDAP_TLS_workaround8 Memcheck:Leak fun:malloc fun:ber_memalloc_x fun:ber_strdup_x ... fun:ldap_int_initialize fun:ldap_set_option fun:*configure_tls* } { LDAP_TLS_workaround9 Memcheck:Leak match-leak-kinds: reachable fun:malloc fun:PR_ErrorInstallTable ... ... ... ... ... ... ... ... ... ... ... ... fun:ldap_int_tls_start fun:ldap_start_tls_s } { SIGSTOP_and_SIGCONT in gr tests Memcheck:Cond fun:signal_hand fun:pfs_spawn_thread fun:start_thread fun:clone } { Mysqlx: OpenSSL cert file still possible. Memcheck:Leak match-leak-kinds: possible fun:malloc ... fun:CRYPTO_malloc fun:ERR_get_state fun:ERR_put_error fun:PEM_read_bio fun:PEM_X509_INFO_read_bio fun:X509_load_cert_crl_file fun:* fun:X509_STORE_load_locations fun:* fun:* fun:* fun:* } { LDAP_1 Memcheck:Leak match-leak-kinds: reachable fun:malloc fun:PORT_Alloc_Util obj:/usr/lib64/libnss3.so obj:/usr/lib64/libnss3.so fun:SECMOD_LoadModule ... fun:ldap_int_tls_start fun:ldap_start_tls_s ... } { LDAP_2 Memcheck:Leak match-leak-kinds: reachable fun:malloc fun:NSSRWLock_New_Util fun:SECOID_Init obj:/usr/lib64/libsoftokn3.so ... fun:dlopen_doit fun:_dl_catch_error fun:_dlerror_run ... } { LDAP_3 Memcheck:Leak match-leak-kinds: reachable fun:malloc fun:strdup fun:PR_LoadLibraryWithFlags ... fun:tlsmc_open_nssdb fun:tlsmc_convert fun:tlsmc_intercept_initialization obj:/usr/lib64/libldap-2.4.so.2.10.7 ... } { LDAP_4 Memcheck:Leak match-leak-kinds: reachable fun:malloc fun:strdup fun:_dl_load_cache_lookup fun:_dl_map_object fun:openaux ... fun:PR_LoadLibraryWithFlags obj:/usr/lib64/libnssutil3.so } { LDAP_5 Memcheck:Leak match-leak-kinds: reachable fun:calloc fun:PR_LoadLibraryWithFlags ... obj:/usr/lib64/libnss3.so ... fun:tlsmc_open_nssdb fun:tlsmc_convert fun:tlsmc_intercept_initialization obj:/usr/lib64/libldap-2.4.so.2.10.7 ... } { LDAP_6 Memcheck:Leak match-leak-kinds: reachable fun:malloc fun:PL_NewHashTable fun:SECOID_Init obj:/usr/lib64/libsoftokn3.so ... fun:PR_LoadLibraryWithFlags obj:/usr/lib64/libnssutil3.so fun:PORT_LoadLibraryFromOrigin ... } { LDAP_7 Memcheck:Leak match-leak-kinds: reachable fun:malloc fun:PL_HashTableRawAdd fun:SECOID_Init ... fun:PR_LoadLibraryWithFlags obj:/usr/lib64/libnssutil3.so fun:PORT_LoadLibraryFromOrigin ... } { LDAP_8 Memcheck:Leak match-leak-kinds: reachable fun:malloc fun:_dl_close_worker fun:_dl_close fun:_dl_catch_error fun:_dlerror_run ... obj:* fun:_ZL35authsm_run_second_authenticate_userP16mysql_async_auth fun:run_plugin_auth ... } { LDAP_9 Memcheck:Leak match-leak-kinds: reachable fun:calloc fun:NSSRWLock_New_Util fun:SECOID_Init ... fun:dl_open_worker fun:_dl_catch_error fun:_dl_open ... fun:PR_LoadLibraryWithFlags obj:/usr/lib64/libnssutil3.so ... } { LDAP_10 Memcheck:Leak match-leak-kinds: reachable fun:malloc fun:PR_NewCondVar ... fun:SECMOD_LoadModule obj:/usr/lib64/libnss3.so ... obj:/usr/lib64/libldap-2.4.so.2.10.7 fun:ldap_int_tls_start fun:ldap_start_tls_s fun:_ZN23Ldap_connection_creator13establish_tlsER9Ldap_info } { LDAP_11 Memcheck:Leak match-leak-kinds: reachable fun:calloc fun:PORT_ZAlloc_Util obj:/usr/lib64/libfreeblpriv3.so ... fun:_dlerror_run fun:dlopen@@GLIBC_2.2.5 fun:PR_LoadLibraryWithFlags ... } { LDAP_12 Memcheck:Leak match-leak-kinds: reachable fun:calloc fun:PR_NewLock fun:NSSRWLock_New_Util ... fun:ldap_int_tls_start fun:ldap_start_tls_s ... } { LDAP_13 Memcheck:Leak match-leak-kinds: reachable fun:malloc fun:PORT_Alloc_Util fun:SECITEM_CopyItem_Util obj:/usr/lib64/libfreeblpriv3.so ... fun:dlopen_doit fun:_dl_catch_error fun:_dlerror_run ... } { LDAP_14 Memcheck:Leak match-leak-kinds: reachable fun:calloc obj:/usr/lib64/libfreeblpriv3.so ... fun:_dl_catch_error fun:_dlerror_run fun:dlopen@@GLIBC_2.2.5 fun:PR_LoadLibraryWithFlags ... } { LDAP_15 Memcheck:Leak match-leak-kinds: possible fun:malloc fun:PL_ArenaAllocate fun:PORT_ArenaAlloc_Util ... fun:ldap_int_tls_start fun:ldap_start_tls_s ... } { LDAP_16 Memcheck:Leak match-leak-kinds: possible fun:calloc fun:PORT_ZAlloc_Util ... fun:SECOID_Init obj:/usr/lib64/libsoftokn3.so fun:_dl_init fun:dl_open_worker ... fun:PR_LoadLibraryWithFlags obj:/usr/lib64/libnssutil3.so ... } { LDAP_17 Memcheck:Leak match-leak-kinds: possible fun:calloc fun:PR_NewLock ... fun:SECMOD_LoadModule obj:/usr/lib64/libnss3.so ... fun:ldap_int_tls_start fun:ldap_start_tls_s ... } { LDAP_18 Memcheck:Leak match-leak-kinds: reachable fun:malloc fun:PR_NewCondVar fun:NSSRWLock_New_Util ... fun:dl_open_worker fun:_dl_catch_error fun:_dl_open ... fun:PR_LoadLibraryWithFlags obj:/usr/lib64/libnssutil3.so fun:PORT_LoadLibraryFromOrigin } { LDAP_19 Memcheck:Leak match-leak-kinds: reachable fun:malloc fun:PR_NewCondVar ... fun:PR_CallOnce ... fun:dlopen_doit fun:_dl_catch_error fun:_dlerror_run fun:dlopen@@GLIBC_2.2.5 fun:PR_LoadLibraryWithFlags } { LDAP_20 Memcheck:Leak match-leak-kinds: possible fun:calloc fun:PORT_ZAlloc_Util ... fun:SECMOD_CreateModuleEx fun:SECMOD_LoadModule ... fun:ldap_int_tls_start fun:ldap_start_tls_s ... } { LDAP_21 Memcheck:Leak match-leak-kinds: reachable fun:calloc fun:PR_NewLock ... fun:SECOID_Init ... fun:PR_LoadLibraryWithFlags obj:/usr/lib64/libnssutil3.so fun:PORT_LoadLibraryFromOrigin ... } { LDAP_22 Memcheck:Leak match-leak-kinds: reachable fun:calloc fun:PR_NewLock obj:/usr/lib64/libfreeblpriv3.so fun:PR_CallOnce ... fun:_dlerror_run fun:dlopen@@GLIBC_2.2.5 fun:PR_LoadLibraryWithFlags ... } { LDAP_23 Memcheck:Leak match-leak-kinds: reachable fun:calloc fun:PR_NewLock obj:/usr/lib64/libnssdbm3.so ... fun:legacy_Open ... fun:SECMOD_LoadModule fun:SECMOD_LoadModule ... } { LDAP_24 Memcheck:Leak match-leak-kinds: possible fun:malloc fun:PL_ArenaAllocate fun:PORT_ArenaAlloc_Util ... fun:tlsmc_convert fun:tlsmc_intercept_initialization obj:/usr/lib64/libldap-2.4.so.2.10.7 ... } { LDAP_25 Memcheck:Leak match-leak-kinds: reachable fun:malloc fun:_dl_close_worker fun:_dl_close fun:_dl_catch_error fun:_dlerror_run fun:dlclose fun:mysql_client_plugin_deinit fun:_ZL8clean_upb fun:_Z11mysqld_mainiPPc fun:main } { LDAP_26 Memcheck:Leak match-leak-kinds: reachable fun:calloc fun:PORT_ZAlloc_Util fun:PORT_NewArena_Util fun:SECOID_Init ... fun:dlopen_doit fun:_dl_catch_error fun:_dlerror_run ... obj:/usr/lib64/libnssutil3.so fun:PORT_LoadLibraryFromOrigin ... } # Suppress all issues related to libcrypto library { Conditional jump or move in BN_bin2bn Memcheck:Cond fun:BN_bin2bn ... } { Conditional jump or move in BN_ucmp Memcheck:Cond fun:BN_ucmp ... } { Conditional jump or move in libcrypto Memcheck:Cond obj:/usr/lib64/libcrypto.so.* fun:* ... } { Conditional jump or move in BN_mod_exp_mont Memcheck:Cond fun:BN_mod_exp_mont ... } { Use of uninitialised value of size 8 in libcrypto Memcheck:Value8 obj:/usr/lib64/libcrypto.so.* ... } { Conditional jump or move in BN_mod_mul_montgomery Memcheck:Cond fun:BN_mod_mul_montgomery fun:BN_mod_exp_mont ... } { Conditional jump or move in bn_bn2binpad Memcheck:Cond fun:bn_bn2binpad ... } { Conditional jump or move in BN_from_montgomery Memcheck:Cond fun:BN_from_montgomery ... } { Use of uninitialised value of size 8 in libcrypto Memcheck:Value8 obj:/usr/lib64/libcrypto.so.* fun:BN_from_montgomery fun:BN_mod_exp_mont obj:* ... } { Use of uninitialised value of size 8 in BN_from_montgomery/BN_mod_exp_mont Memcheck:Value8 fun:BN_from_montgomery fun:BN_mod_exp_mont obj:* ... } { Conditional jump or move in BN_num_bits_word Memcheck:Cond fun:BN_num_bits_word fun:BN_num_bits ... } { Use of uninitialised value of size 8 in BN_num_bits_word Memcheck:Value8 fun:BN_num_bits_word fun:BN_num_bits fun:BN_bn2bin ... } { Syscall param socketcall.sendto(msg) points to uninitialised byte(s) Memcheck:Param socketcall.sendto(msg) fun:send fun:* ... } { Conditional jump or move in RSA_eay_public_encrypt Memcheck:Cond fun:RSA_eay_public_encrypt fun:* ... } # Sporadic error in GR tests { Syscall param socketcall.sendto(msg) points to uninitialised byte(s) Memcheck:Param socketcall.sendto(msg) obj:* fun:__netlink_request fun:getifaddrs_internal fun:getifaddrs } # We might end up writing uninitialised NULL flags out to chunk files during # hash join. These flags are never used, so suppress the warnings. { Syscall param write(buf) points to uninitialised byte(s) Memcheck:Param write(buf) ... fun:_Z19my_b_flush_io_cacheP8IO_CACHEi fun:_ZN13HashJoinChunk6RewindEv } { Syscall param write(buf) points to uninitialised byte(s) Memcheck:Param write(buf) ... fun:_Z19my_b_flush_io_cacheP8IO_CACHEi ... fun:_ZN16HashJoinIterator4InitEv }