Bug 344702

Summary: Fix missing libobjc suppressions on OS X 10.10
Product: [Developer tools] valgrind Reporter: Rhys Kidd <rhyskidd>
Component: generalAssignee: Julian Seward <jseward>
Status: RESOLVED FIXED    
Severity: normal CC: jhi
Priority: NOR    
Version: 3.10 SVN   
Target Milestone: ---   
Platform: macOS (DMG)   
OS: macOS   
See Also: https://bugs.kde.org/show_bug.cgi?id=344543
https://bugs.kde.org/show_bug.cgi?id=343663
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Rhys Kidd 2015-03-01 12:28:09 UTC
OS X 10.10 is missing a number of system library suppressions which have been present on prior OS X systems. These include malloc_zone_malloc() and malloc() related leaks.

This is visible as a number of regressions in the test suite.

Reproducible: Always

Steps to Reproduce:
1. make regtest

Actual Results:  
$ perl tests/vg_regtest memcheck/tests/darwin/env memcheck/tests/leak-cases-possible memcheck/tests/leak-delta memcheck/tests/leak-tree memcheck/tests/long_namespace_xml memcheck/tests/mempool memcheck/tests/nanoleak2 memcheck/tests/nanoleak_supp memcheck/tests/pointer-trace memcheck/tests/recursive-merge memcheck/tests/threadname_xml memcheck/tests/trivialleak memcheck/tests/undef_malloc_args
env:             valgrind   -q --leak-check=full ./env 
*** env failed (stderr) ***
leak-cases-possible: valgrind   -q --leak-check=full --leak-resolution=high --show-possibly-lost=no ./leak-cases
*** leak-cases-possible failed (stderr) *** 
leak-delta:      valgrind   -q --leak-check=yes --show-reachable=yes --leak-resolution=high ./leak-delta
*** leak-delta failed (stderr) *** 
leak-tree:       valgrind   -q --leak-check=full --leak-resolution=high ./leak-tree 
*** leak-tree failed (stderr) ***
long_namespace_xml: valgrind   --xml=yes --xml-fd=2 --log-file=/dev/null ./long_namespace_xml 
*** long_namespace_xml failed (stderr) ***
mempool:         valgrind   -q --leak-check=yes ./mempool 
*** mempool failed (stderr) ***
nanoleak2:       valgrind   --leak-check=yes --gen-suppressions=all --show-reachable=no -q ./nanoleak2
*** nanoleak2 failed (stderr) *** 
nanoleak_supp:   valgrind   --leak-check=yes --suppressions=nanoleak.supp -q ./nanoleak_supp
*** nanoleak_supp failed (stderr) *** 
pointer-trace:   valgrind   -q --leak-check=yes ./pointer-trace
*** pointer-trace failed (stderr) *** 
recursive-merge: valgrind   -q --leak-check=full --merge-recursive-frames=1 ./recursive-merge a aa aaa aaaa abab abca abcda
*** recursive-merge failed (stderr) ***
threadname_xml:  valgrind   --xml=yes --xml-fd=2 --log-file=/dev/null ./threadname
*** threadname_xml failed (stderr) *** 
trivialleak:     valgrind   --leak-check=yes -q ./trivialleak
*** trivialleak failed (stderr) *** 
undef_malloc_args: valgrind   --leak-check=yes -q ./undef_malloc_args
*** undef_malloc_args failed (stderr) *** 

== 13 tests, 13 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures ==

Expected Results:  
$ perl tests/vg_regtest memcheck/tests/darwin/env memcheck/tests/leak-cases-possible memcheck/tests/leak-delta memcheck/tests/leak-tree memcheck/tests/long_namespace_xml memcheck/tests/mempool memcheck/tests/nanoleak2 memcheck/tests/nanoleak_supp memcheck/tests/pointer-trace memcheck/tests/recursive-merge memcheck/tests/threadname_xml memcheck/tests/trivialleak memcheck/tests/undef_malloc_args
env:             valgrind   -q --leak-check=full ./env 
leak-cases-possible: valgrind   -q --leak-check=full --leak-resolution=high --show-possibly-lost=no ./leak-cases 
leak-delta:      valgrind   -q --leak-check=yes --show-reachable=yes --leak-resolution=high ./leak-delta 
leak-tree:       valgrind   -q --leak-check=full --leak-resolution=high ./leak-tree 
long_namespace_xml: valgrind   --xml=yes --xml-fd=2 --log-file=/dev/null ./long_namespace_xml 
mempool:         valgrind   -q --leak-check=yes ./mempool 
nanoleak2:       valgrind   --leak-check=yes --gen-suppressions=all --show-reachable=no -q ./nanoleak2 
nanoleak_supp:   valgrind   --leak-check=yes --suppressions=nanoleak.supp -q ./nanoleak_supp 
pointer-trace:   valgrind   -q --leak-check=yes ./pointer-trace 
recursive-merge: valgrind   -q --leak-check=full --merge-recursive-frames=1 ./recursive-merge a aa aaa aaaa abab abca abcda
threadname_xml:  valgrind   --xml=yes --xml-fd=2 --log-file=/dev/null ./threadname 
trivialleak:     valgrind   --leak-check=yes -q ./trivialleak 
undef_malloc_args: valgrind   --leak-check=yes -q ./undef_malloc_args 

== 13 tests, 0 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures ==
Comment 1 Rhys Kidd 2015-03-01 13:24:15 UTC
Partial fix in r14972.
Comment 2 Mark Wielaard 2015-05-01 09:11:31 UTC
*** Bug 344543 has been marked as a duplicate of this bug. ***