1# Copyright (c) 2005, 2019, Oracle and/or its affiliates. All rights reserved.
2#
3# This program is free software; you can redistribute it and/or modify
4# it under the terms of the GNU General Public License, version 2.0,
5# as published by the Free Software Foundation.
6#
7# This program is also distributed with certain software (including
8# but not limited to OpenSSL) that is licensed under separate terms,
9# as designated in a particular file or component or in included license
10# documentation.  The authors of MySQL hereby grant you an additional
11# permission to link the program and your derivative works with the
12# separately licensed software that they have included with MySQL.
13#
14# This program is distributed in the hope that it will be useful,
15# but WITHOUT ANY WARRANTY; without even the implied warranty of
16# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17# GNU General Public License, version 2.0, for more details.
18#
19# You should have received a copy of the GNU General Public License
20# along with this program; if not, write to the Free Software
21# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
22
23#
24# Suppress some common (not fatal) errors in system libraries found by valgrind
25#
26
27#
28# Pthread doesn't free all thread specific memory before program exists
29#
30{
31   pthread allocate_tls memory loss
32   Memcheck:Leak
33   fun:calloc
34   fun:_dl_allocate_tls
35   fun:allocate_stack
36   fun:pthread_create*
37}
38
39{
40   pthread allocate_tls memory loss
41   Memcheck:Leak
42   fun:calloc
43   fun:_dl_allocate_tls
44   fun:pthread_create*
45
46}
47
48{
49   pthead_exit memory loss 1
50   Memcheck:Leak
51   fun:malloc
52   fun:_dl_new_object
53   fun:_dl_map_object_from_fd
54}
55
56{
57   pthread_exit memory loss 2
58   Memcheck:Leak
59   fun:malloc
60   fun:_dl_map_object
61   fun:dl_open_worker
62}
63
64{
65   pthread_exit memory loss 3
66   Memcheck:Leak
67   fun:malloc
68   fun:_dl_map_object_deps
69   fun:dl_open_worker
70}
71
72{
73   pthread_exit memory loss 4
74   Memcheck:Leak
75   fun:calloc
76   fun:_dl_check_map_versions
77   fun:dl_open_worker
78}
79
80{
81   pthread_exit memory loss 5
82   Memcheck:Leak
83   fun:calloc
84   fun:_dl_new_object
85   fun:_dl_map_object_from_fd
86}
87
88{
89   pthread allocate_dtv memory loss
90   Memcheck:Leak
91   fun:calloc
92   fun:allocate_dtv
93   ...
94   fun:pthread_create*
95}
96
97{
98   pthread memalign memory loss
99   Memcheck:Leak
100   fun:memalign
101   fun:_dl_allocate_tls_storage
102   fun:__GI__dl_allocate_tls
103   fun:pthread_create
104}
105
106{
107   pthread pthread_key_create
108   Memcheck:Leak
109   fun:malloc
110   fun:*
111   fun:*
112   fun:pthread_key_create
113   fun:my_thread_global_init
114}
115
116{
117   pthread strstr uninit
118   Memcheck:Cond
119   fun:strstr
120   obj:/lib/tls/libpthread.so.*
121   obj:/lib/tls/libpthread.so.*
122   fun:call_init
123   fun:_dl_init
124   obj:/lib/ld-*.so
125}
126
127{
128   pthread strstr uninit
129   Memcheck:Cond
130   fun:strstr
131   obj:/lib/tls/libpthread.so.*
132   obj:/lib/tls/libpthread.so.*
133   fun:call_init
134   fun:_dl_init
135   obj:/lib/ld-*.so
136}
137
138{
139   strlen/_dl_init_paths/dl_main/_dl_sysdep_start(Cond)
140   Memcheck:Cond
141   fun:strlen
142   fun:_dl_init_paths
143   fun:dl_main
144   fun:_dl_sysdep_start
145}
146
147{
148   pthread errno
149   Memcheck:Leak
150   fun:calloc
151   fun:_dlerror_run
152}
153
154
155#
156# Warnings in libz becasue it works with aligned memory(?)
157#
158
159{
160   libz tr_flush_block
161   Memcheck:Cond
162   fun:_tr_flush_block
163   fun:deflate_slow
164   fun:deflate
165   fun:do_flush
166   fun:gzclose
167}
168
169{
170   libz tr_flush_block2
171   Memcheck:Cond
172   fun:_tr_flush_block
173   fun:deflate_slow
174   fun:deflate
175   fun:compress2
176}
177
178{
179   libz longest_match
180   Memcheck:Cond
181   fun:longest_match
182   fun:deflate_slow
183   fun:deflate
184}
185
186{
187   libz deflate
188   Memcheck:Cond
189   obj:*/libz.so.*
190   obj:*/libz.so.*
191   fun:deflate
192   fun:compress2
193}
194
195{
196   libz deflate2
197   Memcheck:Cond
198   obj:*/libz.so.*
199   obj:*/libz.so.*
200   fun:deflate
201   obj:*/libz.so.*
202   fun:gzflush
203}
204
205{
206   libz deflate3
207   Memcheck:Cond
208   obj:*/libz.so.*
209   obj:*/libz.so.*
210   fun:deflate
211   fun:do_flush
212}
213
214{
215  libz deflate4
216  Memcheck:Param
217  write(buf)
218  fun:*
219  fun:my_write
220  fun:do_flush
221  fun:azclose
222}
223
224#
225# Warning from my_thread_init becasue mysqld dies before kill thread exists
226#
227
228{
229   my_thread_init kill thread memory loss second
230   Memcheck:Leak
231   fun:calloc
232   fun:my_thread_init
233   fun:kill_server_thread
234}
235
236
237# Red Hat AS 4 32 bit
238{
239   dl_relocate_object
240   Memcheck:Cond
241   fun:_dl_relocate_object
242}
243
244#
245# Warning from my_thread_init becasue mysqld dies before kill thread exists
246#
247
248{
249   my_thread_init kill thread memory loss second
250   Memcheck:Leak
251   fun:calloc
252   fun:my_thread_init
253   fun:kill_server_thread
254}
255
256#
257# Leaks reported in _dl_* internal functions on Linux amd64 / glibc2.3.2.
258#
259
260{
261   _dl_start invalid write8
262   Memcheck:Addr8
263   fun:_dl_start
264}
265
266{
267   _dl_start invalid write4
268   Memcheck:Addr4
269   fun:_dl_start
270}
271
272{
273   _dl_start/_dl_setup_hash invalid read8
274   Memcheck:Addr8
275   fun:_dl_setup_hash
276   fun:_dl_start
277}
278
279{
280   _dl_sysdep_start invalid write8
281   Memcheck:Addr8
282   fun:_dl_sysdep_start
283}
284
285{
286   _dl_init invalid write8
287   Memcheck:Addr8
288   fun:_dl_init
289}
290
291{
292   _dl_init invalid write4
293   Memcheck:Addr4
294   fun:_dl_init
295}
296
297{
298   _dl_init/_dl_init invalid read8
299   Memcheck:Addr8
300   fun:_dl_debug_initialize
301   fun:_dl_init
302}
303
304{
305   _dl_init/_dl_debug_state invalid read8
306   Memcheck:Addr8
307   fun:_dl_debug_state
308   fun:_dl_init
309}
310
311{
312   init invalid write8
313   Memcheck:Addr8
314   fun:init
315}
316
317{
318   fixup invalid write8
319   Memcheck:Addr8
320   fun:fixup
321}
322
323{
324   fixup/_dl_lookup_versioned_symbol invalid read8
325   Memcheck:Addr8
326   fun:_dl_lookup_versioned_symbol
327   fun:fixup
328}
329
330{
331   _dl_runtime_resolve invalid read8
332   Memcheck:Addr8
333   fun:_dl_runtime_resolve
334}
335
336{
337   __libc_start_main invalid write8
338   Memcheck:Addr8
339   fun:__libc_start_main
340}
341
342{
343   __libc_start_main/__sigjmp_save invalid write4
344   Memcheck:Addr4
345   fun:__sigjmp_save
346   fun:__libc_start_main
347}
348
349#
350# These seem to be libc threading stuff, not related to MySQL code (allocations
351# during pthread_exit()). Googling shows other projects also using these
352# suppressions.
353#
354# Note that these all stem from pthread_exit() deeper in the call stack, but
355# Valgrind only allows the top four calls in the suppressions.
356#
357
358{
359   libc pthread_exit 1
360   Memcheck:Leak
361   fun:malloc
362   fun:_dl_new_object
363   fun:_dl_map_object_from_fd
364   fun:_dl_map_object
365}
366
367{
368   libc pthread_exit 2
369   Memcheck:Leak
370   fun:malloc
371   fun:_dl_map_object
372   fun:dl_open_worker
373   fun:_dl_catch_error
374}
375
376{
377   libc pthread_exit 3
378   Memcheck:Leak
379   fun:malloc
380   fun:_dl_map_object_deps
381   fun:dl_open_worker
382   fun:_dl_catch_error
383}
384
385{
386   libc pthread_exit 4
387   Memcheck:Leak
388   fun:calloc
389   fun:_dl_check_map_versions
390   fun:dl_open_worker
391   fun:_dl_catch_error
392}
393
394{
395   libc pthread_exit 5
396   Memcheck:Leak
397   fun:calloc
398   fun:_dl_new_object
399   fun:_dl_map_object_from_fd
400   fun:_dl_map_object
401}
402
403{
404   libc pthread_exit 6
405   Memcheck:Leak
406   fun:malloc
407   fun:_dl_map_object
408   fun:openaux
409   fun:_dl_catch_error
410}
411
412{
413   libc pthread_exit 7
414   Memcheck:Leak
415   fun:malloc
416   fun:dl_open_worker
417   fun:_dl_catch_error
418   fun:_dl_open
419}
420
421{
422   libc pthread_exit 8
423   Memcheck:Leak
424   fun:malloc
425   fun:local_strdup
426   fun:_dl_map_object
427   fun:dl_open_worker
428}
429
430#
431# This is seen internally in the system libraries on 64-bit RHAS3.
432#
433
434{
435   __lll_mutex_unlock_wake uninitialized
436   Memcheck:Param
437   futex(utime)
438   fun:__lll_mutex_unlock_wake
439}
440
441#
442# BUG#19940: NDB sends uninitialized parts of field buffers across the wire.
443# This is "works as designed"; the uninitialized part is not used at the
444# other end (but Valgrind cannot see this).
445#
446{
447   bug19940
448   Memcheck:Param
449   socketcall.sendto(msg)
450   fun:send
451   fun:_ZN15TCP_Transporter6doSendEv
452   fun:_ZN19TransporterRegistry11performSendEv
453   fun:_ZN19TransporterRegistry14forceSendCheckEi
454}
455# Warning when printing stack trace (to suppress some not needed warnings)
456#
457
458{
459   vprintf on stacktrace
460   Memcheck:Cond
461   fun:vfprintf
462   fun:uffered_vfprintf
463   fun:vfprintf
464   fun:fprintf
465   fun:print_stacktrace
466}
467
468#
469# Safe warnings, that may happen because of thread scheduling
470#
471
472{
473   dbug initialization by kill_server
474   Memcheck:Leak
475   fun:malloc
476   fun:DbugMalloc
477   fun:code_state
478   fun:_db_enter_
479   fun:kill_server
480}
481
482#
483# Warning caused by small memory leak in threaded dlopen
484#
485
486{
487   dlopen threaded memory leak
488   Memcheck:Leak
489   fun:calloc
490   obj:*/libdl-*.so
491   fun:dlopen*
492}
493
494#
495# Pthread doesn't free all thread specific memory before program exists
496#
497{
498   pthread allocate_tls memory loss in 2.6.1.
499   Memcheck:Leak
500   fun:calloc
501   obj:*/ld-*.so
502   fun:_dl_allocate_tls
503   fun:pthread_create*
504}
505
506{
507   buf_buddy_relocate peeking (space,page) in potentially free blocks
508   Memcheck:Addr1
509   fun:buf_buddy_relocate
510}
511
512#
513# See related Bug#56666
514# Race condition between the server main thread and the kill server thread.
515#
516# Because of this race condition, the call to shutdown_performance_schema()
517# was commented in sql/mysqld.cc, causing the reported leaks.
518#
519
520{
521   missing shutdown_performance_schema 1a
522   Memcheck:Leak
523   fun:malloc
524   fun:_Z10pfs_mallocmi
525}
526
527{
528   missing shutdown_performance_schema 1b
529   Memcheck:Leak
530   fun:memalign
531   fun:posix_memalign
532   fun:_Z10pfs_mallocmi
533}
534
535{
536   missing shutdown_performance_schema 2
537   Memcheck:Leak
538   fun:malloc
539   fun:my_malloc
540   fun:_lf_alloc_new
541   fun:lf_hash_insert
542}
543
544#
545# Note that initialize_bucket() is reccursive,
546# can't provide more stack context.
547#
548{
549   missing shutdown_performance_schema 3a
550   Memcheck:Leak
551   fun:malloc
552   fun:my_malloc
553   fun:initialize_bucket
554}
555
556{
557   missing shutdown_performance_schema 3b
558   Memcheck:Leak
559   fun:malloc
560   fun:my_malloc
561   fun:_lf_dynarray_lvalue
562   fun:initialize_bucket
563}
564
565{
566   missing shutdown_performance_schema 4
567   Memcheck:Leak
568   fun:malloc
569   fun:my_malloc
570   fun:_lf_dynarray_lvalue
571   fun:_lf_pinbox_get_pins
572}
573
574{
575   missing shutdown_performance_schema 5
576   Memcheck:Leak
577   fun:malloc
578   fun:my_malloc
579   fun:_lf_dynarray_lvalue
580   fun:lf_hash_insert
581}
582
583{
584   missing shutdown_performance_schema 6
585   Memcheck:Leak
586   fun:malloc
587   fun:my_malloc
588   fun:_lf_dynarray_lvalue
589   fun:lf_hash_delete
590}
591
592{
593   missing shutdown_performance_schema 7
594   Memcheck:Leak
595   fun:malloc
596   fun:my_malloc
597   fun:_lf_dynarray_lvalue
598   fun:lf_hash_search
599}
600
601{
602   Bug 59874 Valgrind warning in InnoDB compression code
603   Memcheck:Cond
604   fun:*
605   fun:*
606   fun:deflate
607   fun:btr_store_big_rec_extern_fields_func
608   fun:row_ins_index_entry_low
609   fun:row_ins_index_entry
610   fun:row_ins_index_entry_step
611   fun:row_ins
612   fun:row_ins_step
613   fun:row_insert_for_mysql
614}
615
616{
617   In page0zip.c we have already checked that the memory is initialized before calling deflate()
618   Memcheck:Cond
619   fun:*
620   fun:*
621   fun:deflate
622   fun:page_zip_compress
623}
624
625{
626   In page0zip.c we have already checked that the memory is initialized before calling deflate()
627   Memcheck:Cond
628   fun:*
629   fun:*
630   fun:deflate
631   fun:page_zip_compress_deflate
632}
633
634{
635   In page0zip.c we have already checked that the memory is initialized before calling deflate()
636   Memcheck:Cond
637   obj:*/libz.so*
638   obj:*/libz.so*
639   fun:deflate
640   fun:page_zip_compress
641   fun:page_zip_reorganize
642   fun:page_cur_insert_rec_zip_reorg
643   fun:page_cur_insert_rec_zip
644   fun:page_cur_tuple_insert
645   fun:btr_cur_optimistic_insert
646   fun:btr_cur_pessimistic_insert
647   fun:row_ins_index_entry_low
648   fun:row_ins_index_entry
649   fun:row_ins_index_entry_step
650   fun:row_ins
651   fun:row_ins_step
652   fun:row_insert_for_mysql
653}
654
655{
656   In page0zip.c we have already checked that the memory is initialized before calling deflate()
657   Memcheck:Cond
658   obj:*/libz.so*
659   obj:*/libz.so*
660   fun:deflate
661   fun:page_zip_compress
662   fun:page_zip_reorganize
663   fun:page_cur_insert_rec_zip_reorg
664   fun:page_cur_insert_rec_zip
665   fun:page_cur_tuple_insert
666   fun:btr_cur_optimistic_insert
667   fun:row_ins_index_entry_low
668   fun:row_ins_index_entry
669   fun:row_ins_index_entry_step
670   fun:row_ins
671   fun:row_ins_step
672   fun:row_insert_for_mysql
673}
674
675{
676   In page0zip.c we have already checked that the memory is initialized before calling deflate()
677   Memcheck:Cond
678   obj:*/libz.so*
679   obj:*/libz.so*
680   fun:deflate
681   fun:page_zip_compress
682   fun:page_copy_rec_list_end
683   fun:page_move_rec_list_end
684   fun:btr_page_split_and_insert
685   fun:btr_root_raise_and_insert
686   fun:btr_cur_pessimistic_insert
687   fun:row_ins_index_entry_low
688   fun:row_ins_index_entry
689   fun:row_ins_index_entry_step
690   fun:row_ins
691   fun:row_ins_step
692   fun:row_insert_for_mysql
693}
694
695{
696   In page0zip.c we have already checked that the memory is initialized before calling deflate()
697   Memcheck:Cond
698   obj:*/libz.so*
699   obj:*/libz.so*
700   fun:deflate
701   fun:page_zip_compress
702   fun:page_cur_insert_rec_zip_reorg
703   fun:page_cur_insert_rec_zip
704   fun:page_cur_tuple_insert
705   fun:btr_cur_optimistic_insert
706   fun:btr_cur_pessimistic_insert
707   fun:row_ins_index_entry_low
708   fun:row_ins_index_entry
709   fun:row_ins_index_entry_step
710   fun:row_ins
711   fun:row_ins_step
712   fun:row_insert_for_mysql
713}
714
715{
716   Bug 59875 Valgrind warning in buf0buddy.c
717   Memcheck:Addr1
718   fun:mach_read_from_4
719   fun:buf_buddy_relocate
720   fun:buf_buddy_free_low
721   fun:buf_buddy_free
722}
723{
724   zlib longest_match false positive
725   Memcheck:Cond
726   fun:longest_match
727   fun:deflate_slow
728   fun:deflate
729   fun:compress
730   fun:my_compress_alloc
731}
732
733# Note the wildcard in the (mangled) function signatures of
734# write_keys() and find_all_keys().
735# They both return ha_rows, which is platform dependent.
736#
737# The '...' wildcards are for 'fun:inline_mysql_file_write' which *may*
738# be inlined.
739{
740   Bug#12856915 VALGRIND FAILURE IN FILESORT/CREATE_SORT_INDEX / one
741   Memcheck:Param
742   write(buf)
743   ...
744   fun:my_b_flush_io_cache
745   fun:_my_b_write
746   fun:_Z*10write_keysP10Sort_paramP13Filesort_infojP11st_io_cacheS4_
747   ...
748   fun:_Z8filesortP3THDP5TABLEP8FilesortbPyS5_
749}
750
751{
752   Bug#12856915 VALGRIND FAILURE IN FILESORT/CREATE_SORT_INDEX / two
753   Memcheck:Param
754   write(buf)
755   ...
756   fun:my_b_flush_io_cache
757   fun:_Z15merge_many_buffP10Sort_paramPhP10st_buffpekPjP11st_io_cache
758   fun:_Z8filesortP3THDP5TABLEP8FilesortbPyS5_
759}
760
761{
762   Bug#12856915 VALGRIND FAILURE IN FILESORT/CREATE_SORT_INDEX / three
763   Memcheck:Param
764   write(buf)
765   ...
766   fun:my_b_flush_io_cache
767   fun:_Z8filesortP3THDP5TABLEP8FilesortbPyS5_
768}
769
770{
771   Bug#12856915 VALGRIND FAILURE IN FILESORT/CREATE_SORT_INDEX / four
772   Memcheck:Param
773   write(buf)
774   ...
775   fun:my_b_flush_io_cache
776   fun:_my_b_write
777   fun:_Z*10write_keysP10Sort_paramP13Filesort_infojP11st_io_cacheS4_
778   fun:_Z8filesortP3THDP5TABLEP8FilesortbPyS5_
779}
780
781{
782   OpenSSL still reachable.
783   Memcheck:Leak
784   fun:malloc
785   fun:CRYPTO_malloc
786   fun:engine_cleanup_add_last
787   fun:ENGINE_add
788}
789
790{
791   OpenSSL still reachable.
792   Memcheck:Leak
793   fun:malloc
794   fun:CRYPTO_malloc
795   fun:sk_new
796   fun:engine_cleanup_add_last
797   fun:ENGINE_add
798}
799
800{
801   OpenSSL still reachable.
802   Memcheck:Leak
803   fun:malloc
804   fun:CRYPTO_malloc
805   fun:ENGINE_new
806}
807
808{
809   OpenSSL libstdc++ version 5 / three
810   Memcheck:Leak
811   match-leak-kinds: reachable
812   fun:malloc
813   ...
814   fun:call_init.part.0
815   fun:call_init
816   fun:_dl_init
817}
818
819{
820   BUG#14801497 CONDITIONAL JUMP OR MOVE DEPENDS ON UNINITIALISED VALUE(S) IN CREATE_TMP_TABLE
821   Memcheck:Cond
822   fun:_Z16create_tmp_tableP3THDP15TMP_TABLE_PARAMR4ListI4ItemEP8st_orderbbyyPKc
823   fun:_Z19create_schema_tableP3THDP10TABLE_LIST
824   fun:_Z18mysql_schema_tableP3THDP3LEXP10TABLE_LIST
825   ...
826   fun:_Z11open_tablesP3THDPP10TABLE_LISTPjjP19Prelocking_strategy
827   fun:_Z20open_and_lock_tablesP3THDP10TABLE_LISTbjP19Prelocking_strategy
828   fun:_Z20open_and_lock_tablesP3THDP10TABLE_LISTbj
829   fun:_Z21mysql_execute_commandP3THD
830   fun:_Z11mysql_parseP3THDPcjP12Parser_state
831   fun:_Z16dispatch_command19enum_server_commandP3THDPcj
832   fun:_Z24do_handle_one_connectionP3THD
833   fun:handle_one_connection
834   fun:pfs_spawn_thread
835}
836
837
838{
839   Bug#16039908 "BYTES STILL REACHABLE" IN VALGRIND TEST ON 5.6/TRUNK
840   Memcheck:Leak
841   fun:calloc
842   fun:_dlerror_run
843   fun:dlclose
844   fun:_ZL15free_plugin_memP12st_plugin_dl
845   fun:_ZL13plugin_dl_delPK19st_mysql_lex_string
846   fun:_ZL10plugin_delP13st_plugin_int
847   fun:_ZL12reap_pluginsv
848   fun:_Z15plugin_shutdownv
849   fun:_ZL8clean_upb
850   fun:_Z10unireg_endv
851   fun:_ZL11kill_serverPv
852   fun:kill_server_thread
853}
854
855{
856   Bug#25391948 RPL_CHECK_GTID TEST FAILS SPORADICALLY ON PB2 - WEEKLY-5.6 FOR LINUX-VALGRIND
857   Memcheck:Leak
858   match-leak-kinds: reachable
859   fun:malloc
860   fun:_dl_close_worker
861   fun:_dl_close
862   fun:_dl_catch_error
863   fun:__libc_dlclose
864   ...
865}
866
867{
868   Bug#25391948 RPL_CHECK_GTID TEST FAILS SPORADICALLY ON PB2 - WEEKLY-5.6 FOR LINUX-VALGRIND
869   Memcheck:Leak
870   match-leak-kinds: reachable
871   fun:malloc
872   ...
873   fun:dl_open_worker
874   fun:_dl_catch_error
875   fun:_dl_open
876   fun:do_dlopen
877   fun:_dl_catch_error
878   fun:__libc_dlopen_mode
879   ...
880}
881
882#Suppress warnings from glibc implementation of 'malloc_info'
883{
884   Malloc_info uninitialised value of size 8
885   Memcheck:Value8
886   fun:_itoa_word
887   fun:vfprintf
888   fun:fprintf
889   fun:mi_arena.*
890   fun:malloc_info
891}
892
893{
894   Malloc_info conditional jump depends on uninitialised values
895   Memcheck:Cond
896   ...
897   fun:mi_arena.*
898   fun:malloc_info
899}
900
901# TokuDB suppressions
902{
903   tls_variables_1
904   Memcheck:Leak
905   fun:memalign
906   fun:__tls_get_addr
907}
908
909{
910   tls_variables_2
911   Memcheck:Leak
912   fun:memalign
913   fun:tls_get_addr_tail
914}
915
916{
917   tls_variables_2
918   Memcheck:Leak
919   fun:memalign
920   fun:allocate_and_init
921   fun:tls_get_addr_tail
922}
923
924{
925   tls_variables_2
926   Memcheck:Leak
927   fun:memalign
928   fun:allocate_dtv_entry
929   fun:allocate_and_init
930   fun:tls_get_addr_tail
931}
932
933{
934   lzma encoder prepare bug
935   Memcheck:Cond
936   fun:lz_encoder_prepare
937   fun:lzma_lz_encoder_init
938}
939
940#supress warnings from openssl
941
942{
943   OpenSSL PB2 / 1
944   Memcheck:Leak
945   match-leak-kinds: reachable
946   fun:malloc
947   fun:CRYPTO_malloc
948   fun:sk_new
949   ...
950   fun:SSL_COMP_get_compression_methods
951   fun:SSL_library_init
952   fun:ssl_start
953   fun:_Z8init_sslv
954   fun:_Z11mysqld_mainiPPc
955   fun:main
956}
957
958{
959   OpenSSL PB2 / 2
960   Memcheck:Leak
961   match-leak-kinds: reachable
962   fun:malloc
963   fun:CRYPTO_malloc
964   fun:sk_new
965   ...
966   fun:SSL_COMP_get_compression_methods
967   fun:SSL_library_init
968   fun:ssl_start
969   fun:_ZL8init_sslv
970   fun:_Z11mysqld_mainiPPc
971   fun:main
972}
973
974{
975   OpenSSL libstdc++ version 5 / three
976   Memcheck:Leak
977   match-leak-kinds: reachable
978   fun:malloc
979   obj:*/libstdc++.so*
980   fun:call_init.part.0
981   fun:call_init
982   fun:_dl_init
983}
984
985{
986   Memory leak in dlerror
987   Memcheck:Leak
988   match-leak-kinds: reachable
989   fun:malloc
990   fun:vasprintf
991   fun:asprintf
992   fun:dlerror
993}
994
995{
996   Spurious dlerror_run errors on main.udf
997   Memcheck:Leak
998   ...
999   fun:dlerror_run
1000}
1001