~drizzle-trunk/drizzle/development

1 by brian
clean slate
1
#
2
# Suppress some common (not fatal) errors in system libraries found by valgrind
3
#
4
5
#
6
# Pthread doesn't free all thread specific memory before program exists
7
#
8
{
9
   pthread allocate_tls memory loss
10
   Memcheck:Leak
11
   fun:calloc
12
   fun:_dl_allocate_tls
13
   fun:allocate_stack
14
   fun:pthread_create*
15
}
16
17
{
18
   pthread allocate_tls memory loss
19
   Memcheck:Leak
20
   fun:calloc
21
   fun:_dl_allocate_tls
22
   fun:pthread_create*
23
24
}
25
26
{
1008.4.1 by Jay Pipes
Typo in valgrind.supp
27
   pthread_exit memory loss 1
1 by brian
clean slate
28
   Memcheck:Leak
29
   fun:malloc
30
   fun:_dl_new_object
31
   fun:_dl_map_object_from_fd
32
}
33
34
{
35
   pthread_exit memory loss 2
36
   Memcheck:Leak
37
   fun:malloc
38
   fun:_dl_map_object
39
   fun:dl_open_worker
40
}
41
42
{
43
   pthread_exit memory loss 3
44
   Memcheck:Leak
45
   fun:malloc
46
   fun:_dl_map_object_deps
47
   fun:dl_open_worker
48
}
49
50
{
51
   pthread_exit memory loss 4
52
   Memcheck:Leak
53
   fun:calloc
54
   fun:_dl_check_map_versions
55
   fun:dl_open_worker
56
}
57
58
{
59
   pthread_exit memory loss 5
60
   Memcheck:Leak
61
   fun:calloc
62
   fun:_dl_new_object
63
   fun:_dl_map_object_from_fd
64
}
65
66
{
67
   pthread allocate_dtv memory loss
68
   Memcheck:Leak
69
   fun:calloc
70
   fun:allocate_dtv
71
   fun:_dl_allocate_tls_storage
72
   fun:__GI__dl_allocate_tls
73
   fun:pthread_create
74
}
75
76
{
77
   pthread allocate_dtv memory loss second
78
   Memcheck:Leak
79
   fun:calloc
80
   fun:allocate_dtv
81
   fun:_dl_allocate_tls
82
   fun:pthread_create*
83
}
84
85
{
86
   pthread memalign memory loss
87
   Memcheck:Leak
88
   fun:memalign
89
   fun:_dl_allocate_tls_storage
90
   fun:__GI__dl_allocate_tls
91
   fun:pthread_create
92
}
93
94
{
95
   pthread pthread_key_create
96
   Memcheck:Leak
97
   fun:malloc
98
   fun:*
99
   fun:*
100
   fun:pthread_key_create
101
   fun:my_thread_global_init
102
}
103
104
{
105
   pthread strstr uninit
106
   Memcheck:Cond
107
   fun:strstr
108
   obj:/lib/tls/libpthread.so.*
109
   obj:/lib/tls/libpthread.so.*
110
   fun:call_init
111
   fun:_dl_init
112
   obj:/lib/ld-*.so
113
}
114
115
{
116
   pthread strstr uninit
117
   Memcheck:Cond
118
   fun:strstr
119
   obj:/lib/tls/libpthread.so.*
120
   obj:/lib/tls/libpthread.so.*
121
   fun:call_init
122
   fun:_dl_init
123
   obj:/lib/ld-*.so
124
}
125
126
{  
127
   strlen/_dl_init_paths/dl_main/_dl_sysdep_start(Cond)
128
   Memcheck:Cond
129
   fun:strlen
130
   fun:_dl_init_paths
131
   fun:dl_main
132
   fun:_dl_sysdep_start
133
}
134
135
{
136
   pthread errno
137
   Memcheck:Leak
138
   fun:calloc
139
   fun:_dlerror_run
140
   fun:dlsym
141
   fun:__errno_location
142
}
143
144
145
#
146
# Warnings in libz becasue it works with aligned memory(?)
147
#
148
149
{
150
   libz tr_flush_block
151
   Memcheck:Cond
152
   fun:_tr_flush_block
153
   fun:deflate_slow
154
   fun:deflate
155
   fun:do_flush
156
   fun:gzclose
157
}
158
159
{
160
   libz tr_flush_block2
161
   Memcheck:Cond
162
   fun:_tr_flush_block
163
   fun:deflate_slow
164
   fun:deflate
165
   fun:compress2
166
}
167
168
{
169
   libz longest_match
170
   Memcheck:Cond
171
   fun:longest_match
172
   fun:deflate_slow
173
   fun:deflate
174
   fun:do_flush
175
}
176
177
{
178
   libz longest_match2
179
   Memcheck:Cond
180
   fun:longest_match
181
   fun:deflate_slow
182
   fun:deflate
183
   fun:compress2
184
}
185
186
{
187
   libz longest_match 3
188
   Memcheck:Cond
189
   fun:longest_match
190
   fun:deflate_slow
191
   fun:deflate
192
   fun:gzclose
193
}
194
195
{
196
   libz longest_match 4 
197
   Memcheck:Cond
198
   fun:longest_match
199
   fun:deflate_slow
200
   fun:deflate
201
   fun:gzflush
202
}
203
204
{
205
   libz longest_match3
206
   Memcheck:Cond
207
   fun:longest_match
208
   fun:deflate_slow
209
   fun:deflate
210
   fun:azflush
211
}
212
213
{
214
   libz longest_match3
215
   Memcheck:Cond
216
   fun:longest_match
217
   fun:deflate_slow
218
   fun:deflate
219
   fun:azclose
220
}
221
222
{
223
   libz deflate
224
   Memcheck:Cond
225
   obj:*/libz.so.*
226
   obj:*/libz.so.*
227
   fun:deflate
228
   fun:compress2
229
}
230
231
{
232
   libz deflate2
233
   Memcheck:Cond
234
   obj:*/libz.so.*
235
   obj:*/libz.so.*
236
   fun:deflate
237
   obj:*/libz.so.*
238
   fun:gzflush
239
}
240
241
{
242
   libz deflate3
243
   Memcheck:Cond
244
   obj:*/libz.so.*
245
   obj:*/libz.so.*
246
   fun:deflate
247
   fun:do_flush
248
}
249
250
#
251
# Warning from my_thread_init becasue mysqld dies before kill thread exists
252
#
253
254
{
255
   my_thread_init kill thread memory loss second
256
   Memcheck:Leak
257
   fun:calloc
258
   fun:my_thread_init
259
   fun:kill_server_thread
260
}
261
262
263
# Red Hat AS 4 32 bit
264
{
265
   dl_relocate_object
266
   Memcheck:Cond
267
   fun:_dl_relocate_object
268
}
269
270
#
271
# Warning from my_thread_init becasue mysqld dies before kill thread exists
272
#
273
274
{
275
   my_thread_init kill thread memory loss second
276
   Memcheck:Leak
277
   fun:calloc
278
   fun:my_thread_init
279
   fun:kill_server_thread
280
}
281
282
#
283
# Leaks reported in _dl_* internal functions on Linux amd64 / glibc2.3.2.
284
#
285
286
{
287
   _dl_start invalid write8
288
   Memcheck:Addr8
289
   fun:_dl_start
290
}
291
292
{
293
   _dl_start invalid write4
294
   Memcheck:Addr4
295
   fun:_dl_start
296
}
297
298
{
299
   _dl_start/_dl_setup_hash invalid read8
300
   Memcheck:Addr8
301
   fun:_dl_setup_hash
302
   fun:_dl_start
303
}
304
305
{
306
   _dl_sysdep_start invalid write8
307
   Memcheck:Addr8
308
   fun:_dl_sysdep_start
309
}
310
311
{
312
   _dl_init invalid write8
313
   Memcheck:Addr8
314
   fun:_dl_init
315
}
316
317
{
318
   _dl_init invalid write4
319
   Memcheck:Addr4
320
   fun:_dl_init
321
}
322
323
{
324
   _dl_init/_dl_init invalid read8
325
   Memcheck:Addr8
326
   fun:_dl_debug_initialize
327
   fun:_dl_init
328
}
329
330
{
331
   _dl_init/_dl_debug_state invalid read8
332
   Memcheck:Addr8
333
   fun:_dl_debug_state
334
   fun:_dl_init
335
}
336
337
{
338
   init invalid write8
339
   Memcheck:Addr8
340
   fun:init
341
}
342
343
{
344
   fixup invalid write8
345
   Memcheck:Addr8
346
   fun:fixup
347
}
348
349
{
350
   fixup/_dl_lookup_versioned_symbol invalid read8
351
   Memcheck:Addr8
352
   fun:_dl_lookup_versioned_symbol
353
   fun:fixup
354
}
355
356
{
357
   _dl_runtime_resolve invalid read8
358
   Memcheck:Addr8
359
   fun:_dl_runtime_resolve
360
}
361
362
{
363
   __libc_start_main invalid write8
364
   Memcheck:Addr8
365
   fun:__libc_start_main
366
}
367
368
{
369
   __libc_start_main/__sigjmp_save invalid write4
370
   Memcheck:Addr4
371
   fun:__sigjmp_save
372
   fun:__libc_start_main
373
}
374
375
#
376
# These seem to be libc threading stuff, not related to MySQL code (allocations
377
# during pthread_exit()). Googling shows other projects also using these
378
# suppressions.
379
#
380
# Note that these all stem from pthread_exit() deeper in the call stack, but
381
# Valgrind only allows the top four calls in the suppressions.
382
#
383
384
{
385
   libc pthread_exit 1
386
   Memcheck:Leak
387
   fun:malloc
388
   fun:_dl_new_object
389
   fun:_dl_map_object_from_fd
390
   fun:_dl_map_object
391
}
392
393
{
394
   libc pthread_exit 2
395
   Memcheck:Leak
396
   fun:malloc
397
   fun:_dl_map_object
398
   fun:dl_open_worker
399
   fun:_dl_catch_error
400
}
401
402
{
403
   libc pthread_exit 3
404
   Memcheck:Leak
405
   fun:malloc
406
   fun:_dl_map_object_deps
407
   fun:dl_open_worker
408
   fun:_dl_catch_error
409
}
410
411
{
412
   libc pthread_exit 4
413
   Memcheck:Leak
414
   fun:calloc
415
   fun:_dl_check_map_versions
416
   fun:dl_open_worker
417
   fun:_dl_catch_error
418
}
419
420
{
421
   libc pthread_exit 5
422
   Memcheck:Leak
423
   fun:calloc
424
   fun:_dl_new_object
425
   fun:_dl_map_object_from_fd
426
   fun:_dl_map_object
427
}
428
429
{
430
   libc pthread_exit 6
431
   Memcheck:Leak
432
   fun:malloc
433
   fun:_dl_map_object
434
   fun:openaux
435
   fun:_dl_catch_error 
436
}
437
438
{
439
   libc pthread_exit 7
440
   Memcheck:Leak
441
   fun:malloc
442
   fun:dl_open_worker
443
   fun:_dl_catch_error
444
   fun:_dl_open
445
}
446
447
#
448
# This is seen internally in the system libraries on 64-bit RHAS3.
449
#
450
451
{
452
   __lll_mutex_unlock_wake uninitialized
453
   Memcheck:Param
454
   futex(utime)
455
   fun:__lll_mutex_unlock_wake
456
}
457
458
#
459
# BUG#19940: NDB sends uninitialized parts of field buffers across the wire.
460
# This is "works as designed"; the uninitialized part is not used at the
461
# other end (but Valgrind cannot see this).
462
#
463
{
464
   bug19940
465
   Memcheck:Param
466
   socketcall.sendto(msg)
467
   fun:send
468
   fun:_ZN15TCP_Transporter6doSendEv
469
   fun:_ZN19TransporterRegistry11performSendEv
470
   fun:_ZN19TransporterRegistry14forceSendCheckEi
471
}
472
# Warning when printing stack trace (to suppress some not needed warnings)
473
#
474
475
{
476
   vprintf on stacktrace
477
   Memcheck:Cond
478
   fun:vfprintf
479
   fun:uffered_vfprintf
480
   fun:vfprintf
481
   fun:fprintf
482
   fun:print_stacktrace
483
}
484
485
#
486
# Safe warnings, that may happen because of thread scheduling
487
#
488
489
{
490
   dbug initialization by kill_server
491
   Memcheck:Leak
492
   fun:malloc
493
   fun:DbugMalloc
494
   fun:code_state
495
   fun:_db_enter_
496
   fun:kill_server
497
}
498
499
#
500
# Warning caused by small memory leak in threaded dlopen
501
#
502
503
{
504
   dlopen threaded memory leak
505
   Memcheck:Leak
506
   fun:calloc
507
   obj:*/libdl-*.so
508
   fun:dlopen*
509
}
510
511
#
512
# On some systems the above leak happens at dlclose (SuSE 10.1 64 bit on
513
# blade13)
514
#
515
516
{
517
   dlclose threaded memory leak
518
   Memcheck:Leak
519
   fun:calloc
520
   obj:*/libdl-*.so
521
   fun:dlclose*
522
}
1089.1.2 by Brian Aker
Rename work (cheery pick from new-cleanup). Jay's fix for auth_http. Update
523
524
525
#
526
# Start of Google Protobuffer suppressions.  GPB does static initialization
527
# of default message Descriptors and file descriptor classes, which produce
528
# bogus still reachable errors in memcheck.
529
#
530
531
{
532
   static initialization proto1
533
   Memcheck:Leak
534
   fun:_Znwm
535
   fun:_ZN8drizzled7message56protobuf_BuildDesc_table_2eproto_AssignGlobalDescriptorsEPKN6google8protobuf14FileDescriptorE
536
   fun:_ZN6google8protobuf17DescriptorBuilder9BuildFileERKNS0_19FileDescriptorProtoEPFvPKNS0_14FileDescriptorEE
537
   fun:_ZN6google8protobuf14DescriptorPool26InternalBuildGeneratedFileEPKviPFvPKNS0_14FileDescriptorEE
538
   fun:_ZN8drizzled7message32protobuf_BuildDesc_table_2eprotoEv
539
   fun:_ZN8drizzled7message41StaticDescriptorInitializer_table_2eprotoC1Ev
540
   fun:_Z41__static_initialization_and_destruction_0ii
541
   fun:_GLOBAL__I_table.pb.cc
542
   obj:/*/drizzled
543
   obj:/*/drizzled
544
   obj:*
545
   fun:__libc_csu_init
546
   fun:(below main)
547
}
548
{
549
   static initialization proto2
550
   Memcheck:Leak
551
   fun:_Znwm
552
   fun:_ZN6google8protobuf81protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto_AssignGlobalDescriptorsEPKNS0_14FileDescriptorE
553
   fun:_ZN6google8protobuf17DescriptorBuilder9BuildFileERKNS0_19FileDescriptorProtoEPFvPKNS0_14FileDescriptorEE
554
   fun:_ZN6google8protobuf14DescriptorPool26InternalBuildGeneratedFileEPKviPFvPKNS0_14FileDescriptorEE
555
   obj:/*libprotobuf.so*
556
   obj:/*libprotobuf.so*
557
   obj:/*libprotobuf.so*
558
   obj:*
559
   fun:_dl_init
560
   obj:/lib/ld-*.so
561
   obj:*
562
   obj:*
563
   obj:*
564
   obj:*
565
   obj:*
566
   obj:*
567
}
568
{
569
   static initialization proto3
570
   Memcheck:Leak
571
   fun:_Znwm
572
   fun:_ZN8drizzled7message62protobuf_BuildDesc_transaction_2eproto_AssignGlobalDescriptorsEPKN6google8protobuf14FileDescriptorE
573
   fun:_ZN6google8protobuf17DescriptorBuilder9BuildFileERKNS0_19FileDescriptorProtoEPFvPKNS0_14FileDescriptorEE
574
   fun:_ZN6google8protobuf14DescriptorPool26InternalBuildGeneratedFileEPKviPFvPKNS0_14FileDescriptorEE
575
   fun:_ZN8drizzled7message38protobuf_BuildDesc_transaction_2eprotoEv
576
   fun:_ZN8drizzled7message47StaticDescriptorInitializer_transaction_2eprotoC1Ev
577
   fun:_Z41__static_initialization_and_destruction_0ii
578
   fun:_GLOBAL__I_transaction.pb.cc
579
   obj:/*/drizzled
580
   obj:/*/drizzled
581
   obj:*
582
   fun:__libc_csu_init
583
   fun:(below main)
584
}
585
{
586
   static initialization proto4
587
   Memcheck:Leak
588
   fun:_Znwm
589
   fun:_ZN8drizzled7message57protobuf_BuildDesc_schema_2eproto_AssignGlobalDescriptorsEPKN6google8protobuf14FileDescriptorE
590
   fun:_ZN6google8protobuf17DescriptorBuilder9BuildFileERKNS0_19FileDescriptorProtoEPFvPKNS0_14FileDescriptorEE
591
   fun:_ZN6google8protobuf14DescriptorPool26InternalBuildGeneratedFileEPKviPFvPKNS0_14FileDescriptorEE
592
   fun:_ZN8drizzled7message33protobuf_BuildDesc_schema_2eprotoEv
593
   fun:_ZN8drizzled7message42StaticDescriptorInitializer_schema_2eprotoC1Ev
594
   fun:_Z41__static_initialization_and_destruction_0ii
595
   fun:_GLOBAL__I_schema.pb.cc
596
   obj:/*/drizzled
597
   obj:/*/drizzled
598
   obj:*
599
   fun:__libc_csu_init
600
   fun:(below main)
601
}
602
{
603
   static initialization proto5
604
   Memcheck:Leak
605
   fun:_Znwm
606
   fun:_ZN8drizzled7message62protobuf_BuildDesc_transaction_2eproto_AssignGlobalDescriptorsEPKN6google8protobuf14FileDescriptorE
607
   fun:_ZN6google8protobuf17DescriptorBuilder9BuildFileERKNS0_19FileDescriptorProtoEPFvPKNS0_14FileDescriptorEE
608
   fun:_ZN6google8protobuf14DescriptorPool26InternalBuildGeneratedFileEPKviPFvPKNS0_14FileDescriptorEE
609
   fun:_ZN8drizzled7message38protobuf_BuildDesc_transaction_2eprotoEv
610
   fun:_ZN8drizzled7message47StaticDescriptorInitializer_transaction_2eprotoC1Ev
611
   fun:_Z41__static_initialization_and_destruction_0ii
612
   fun:_GLOBAL__I_transaction.pb.cc
613
   obj:/*/drizzled
614
   obj:/*/drizzled
615
   obj:*
616
   fun:__libc_csu_init
617
   fun:(below main)
618
}
619
620
{
621
  Bad InnoDB rw_lock_x_lock_func evil evil
622
   Memcheck:Cond
623
   fun:rw_lock_x_lock_func
624
}
625
626
#
627
# Innodb initialize two main memory areas in static space: thr_local_hash and mem_comm_pool.
628
#
629
# About 5M of allocated bytes are left in a reachable state upon shutdown. We suppress this
630
# false positive here...
631
#
632
633
{
634
   thr_local_hash static initialization
635
   Memcheck:Leak
636
   fun:malloc
637
   fun:mem_area_alloc
638
   fun:mem_heap_create_block
639
   fun:mem_heap_create_func
640
   fun:mem_alloc_func
641
   fun:hash0_create
642
   fun:thr_local_init
643
   fun:srv_general_init
644
   fun:srv_boot
645
   fun:innobase_start_or_create_for_mysql
646
   fun:_ZL13innobase_initR14PluginRegistry
647
   fun:_ZL17plugin_initializeP13st_plugin_int
648
   fun:_Z11plugin_initPiPPci
649
   fun:_ZL22init_server_componentsv
650
   fun:main
651
}
652
653
{
654
   mem_comm_pool static initialization
655
   Memcheck:Leak
656
   fun:malloc
657
   fun:ut_malloc_low
658
   fun:ut_malloc
659
   fun:mem_pool_create
660
   fun:mem_init
661
   fun:srv_general_init
662
   fun:srv_boot
663
   fun:innobase_start_or_create_for_mysql
664
   fun:_ZL13innobase_initR14PluginRegistry
665
   fun:_ZL17plugin_initializeP13st_plugin_int
666
   fun:_Z11plugin_initPiPPci
667
   fun:_ZL22init_server_componentsv
668
   fun:main
669
}
670
671
#
672
# InnoDB uses a yacc-based lexer which holds its yyval variable in
673
# static space. This variable is of type pointer to que_t.  This
674
# static variable is realloc()'d when a larger number of que_t's (AST nodes)
675
# is needed.
676
#
677
# This static allocation results in false positives for reachable
678
# memory at server (or actually plugin) shutdown.  Therefore, we correct
679
# with the following suppressions.
680
#
681
682
{
683
   InnoDB parser static allocation 1
684
   Memcheck:Leak
685
   fun:realloc
686
   fun:ut_realloc
687
   fun:string_append
688
   fun:yylex
689
   fun:yyparse
690
   fun:pars_sql
691
}
692
693
{
694
   InnoDB Parser allocation 2
695
   Memcheck:Leak
696
   fun:realloc
697
   fun:string_append
698
   fun:yylex
699
   fun:yyparse
700
   fun:pars_sql
701
}
702
703
704
#
705
# LIBC's nss_parse_service_list() and tsearch(), which are used by various syscalls
706
# like getpwnam() malloc's some pointers in static space. We suppress
707
# this false positive here...
708
#
709
710
{
711
   nss_parse_service_list static allocation
712
   Memcheck:Leak
713
   fun:malloc
714
   fun:nss_parse_service_list
715
   fun:__nss_database_lookup
716
   obj:*
717
   obj:*
718
   fun:getpwnam_r*
719
   fun:getpwnam
720
   fun:_ZL10check_userPKc
721
   fun:main
722
}
723
724
{
725
   tsearch static allocation
726
   Memcheck:Leak
727
   fun:malloc
728
   fun:tsearch
729
   fun:__nss_lookup_function
730
   obj:*
731
   obj:*
732
   fun:getpwnam_r*
733
   fun:getpwnam
734
   fun:_ZL10check_userPKc
735
   fun:main
736
}
737
738
739
#
740
# PCRE initializes compiled regular expression objects into
741
# static space, and therefore show up as memory leaks.  These
742
# are false positives and are handled by the PCRE library. There
743
# is no way to manually free pcre_compile()d returned pointers.
744
#
745
746
{
747
   pcre static initialization correction
748
   Memcheck:Leak
749
   fun:malloc
750
   fun:pcre_compile2
751
   fun:_ZN8drizzled14TemporalFormatC1EPKc
752
   fun:_Z21init_temporal_formatsv
753
   fun:_ZL21init_common_variablesPKciPPcPS0_
754
   fun:main
755
}
756
757
{
758
   Leak inside of libcurl. Nothing we can really do about it.
759
   Memcheck:Leak
760
   fun:realloc
761
   fun:CRYPTO_realloc
762
   fun:lh_insert
763
}
764
765
{
766
   Another leak in libcrypto
767
   Memcheck:Leak
768
   fun:malloc
769
   fun:CRYPTO_malloc
770
   fun:lh_new
771
}
772
773