[contrib] Add Valgrind suppressions file#11035
Conversation
d2f4325 to
9654566
Compare
3ab0e91 to
e60b278
Compare
|
Looks like this is Debian-specific? Is it possible to match libraries without a full, explicit path? |
|
@TheBlueMatt Good point! I've only verified the suppressions file under Ubuntu 16.04. What do you think about changing from ... ... to ... |
|
Concept ACK |
|
@practicalswift seems reasonable to me, is the bdb issue there specific to bdb 5.3? |
|
I believe every BDB version has had this. |
e60b278 to
986c04b
Compare
|
@TheBlueMatt @sipa Thanks for your input. I've now changed from … ... to ... Looks good? :-) |
Includes known Valgrind warnings in our dependencies that cannot be fixed in-tree.
Example use:
```
$ valgrind --suppressions=contrib/valgrind.supp src/test/test_bitcoin
$ valgrind --suppressions=contrib/valgrind.supp --leak-check=full \
--show-leak-kinds=all src/test/test_bitcoin --log_level=test_suite
```
986c04b to
84e2462
Compare
|
utACK.
…On August 16, 2017 3:38:39 PM EDT, practicalswift ***@***.***> wrote:
@TheBlueMatt @sipa Thanks for your input. I've now changed from …
```
obj:*/libstdc++.*
obj:/lib/x86_64-linux-gnu/ld-*.so
obj:/usr/lib/x86_64-linux-gnu/libdb_cxx-5.3.so
```
... to ...
```
obj:*/libstdc++.*
obj:*/ld-*.so
obj:*/libdb_cxx-*.so
```
Looks good? :-)
--
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
#11035 (comment)
|
|
Concept ACK |
|
Shouldn't there be a bunch for libsecp256k1 (maybe they ought to go in its repo)? |
|
@luke-jr Does libbsecp256k1 have memory leaks? |
|
@luke-jr I haven't seen any indications of libbsecp256k1 leaks when running |
These are not normal? |
|
@luke-jr Interesting! These are not triggered when running Assuming that these cannot be fixed without changes in our dependencies they should all be included in the suppressions file :-) |
|
Not all systems have the same versions of dependencies, BTW. But I guess untriggered suppressions are harmless. |
|
@luke-jr Very much so! Do you want to put together the suppressions ( |
|
@luke-jr I've been unable to reproduce the warnings you posted. I tried … … against current |
|
Any chance of getting this merged? :-) |
|
I think this file should be referenced somewhere. Not sure from where, but not just in this issue. If there's a place describing development/debugging practices, a section should be added on using valgrind w/ bitcoin core. |
931c724 to
482e12a
Compare
482e12a to
4a426d8
Compare
|
@laanwj Good point! I've now added a note about the suppressions file in The suppressions file is not meant to be Debian specific. It should work on all Linux Standard Base (LSB) systems. Looks good? :-) |
|
Yes, thank you, looks good to me now. utACK 4a426d8 |
4a426d8 Add note about Valgrind suppressions file in developer-notes.md (practicalswift) 84e2462 contrib: Add Valgrind suppressions file (practicalswift) Pull request description: Includes known Valgrind warnings in our dependencies that cannot be fixed in-tree. Example use: ``` $ valgrind --suppressions=contrib/valgrind.supp src/test/test_bitcoin $ valgrind --suppressions=contrib/valgrind.supp --leak-check=full \ --show-leak-kinds=all src/test/test_bitcoin --log_level=test_suite ``` Running with the suppressions file under Ubuntu 16.04: ``` $ valgrind --suppressions=contrib/valgrind.supp --leak-check=full --show-leak-kinds=all src/test/test_bitcoin --log_level=test_suite --run_test=wallet_crypto … ==10769== LEAK SUMMARY: ==10769== definitely lost: 0 bytes in 0 blocks ==10769== indirectly lost: 0 bytes in 0 blocks ==10769== possibly lost: 0 bytes in 0 blocks ==10769== still reachable: 0 bytes in 0 blocks ==10769== suppressed: 72,704 bytes in 1 blocks ``` Running without the suppressions file under Ubuntu 16.04: ``` $ valgrind --leak-check=full --show-leak-kinds=all src/test/test_bitcoin --log_level=test_suite --run_test=wallet_crypto … ==10724== 72,704 bytes in 1 blocks are still reachable in loss record 1 of 1 ==10724== at 0x4C2DBF6: malloc (vg_replace_malloc.c:299) ==10724== by 0x6F74EFF: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21) ==10724== by 0x40106B9: call_init.part.0 (dl-init.c:72) ==10724== by 0x40107CA: call_init (dl-init.c:30) ==10724== by 0x40107CA: _dl_init (dl-init.c:120) ==10724== by 0x4000C69: ??? (in /lib/x86_64-linux-gnu/ld-2.23.so) ==10724== by 0x2: ??? ==10724== by 0x1FFF0006D2: ??? ==10724== by 0x1FFF0006E8: ??? ==10724== by 0x1FFF0006FF: ??? ==10724== ==10724== LEAK SUMMARY: ==10724== definitely lost: 0 bytes in 0 blocks ==10724== indirectly lost: 0 bytes in 0 blocks ==10724== possibly lost: 0 bytes in 0 blocks ==10724== still reachable: 72,704 bytes in 1 blocks ==10724== suppressed: 0 bytes in 0 blocks ``` Tree-SHA512: 9c92079fc61313ea678deb6aaa16a3a71c3154c757459793eb9ca0d90a9a74c6faebfb04c9135e1b398ca34224fb7f03bd9c488ea0e8debf6894f69f030a31d3
| $ valgrind --suppressions=contrib/valgrind.supp src/test/test_bitcoin | ||
| $ valgrind --suppressions=contrib/valgrind.supp --leak-check=full \ | ||
| --show-leak-kinds=all src/test/test_bitcoin --log_level=test_suite | ||
| $ valgrind -v --leak-check=full src/bitcoind -printtoconsole |
There was a problem hiding this comment.
I think this also needs the --suppressions=contrib/valgrind.supp, otherwise the active suppressions are not printed, which seems to be the purpose of this line.
4a426d8 Add note about Valgrind suppressions file in developer-notes.md (practicalswift) 84e2462 contrib: Add Valgrind suppressions file (practicalswift) Pull request description: Includes known Valgrind warnings in our dependencies that cannot be fixed in-tree. Example use: ``` $ valgrind --suppressions=contrib/valgrind.supp src/test/test_bitcoin $ valgrind --suppressions=contrib/valgrind.supp --leak-check=full \ --show-leak-kinds=all src/test/test_bitcoin --log_level=test_suite ``` Running with the suppressions file under Ubuntu 16.04: ``` $ valgrind --suppressions=contrib/valgrind.supp --leak-check=full --show-leak-kinds=all src/test/test_bitcoin --log_level=test_suite --run_test=wallet_crypto … ==10769== LEAK SUMMARY: ==10769== definitely lost: 0 bytes in 0 blocks ==10769== indirectly lost: 0 bytes in 0 blocks ==10769== possibly lost: 0 bytes in 0 blocks ==10769== still reachable: 0 bytes in 0 blocks ==10769== suppressed: 72,704 bytes in 1 blocks ``` Running without the suppressions file under Ubuntu 16.04: ``` $ valgrind --leak-check=full --show-leak-kinds=all src/test/test_bitcoin --log_level=test_suite --run_test=wallet_crypto … ==10724== 72,704 bytes in 1 blocks are still reachable in loss record 1 of 1 ==10724== at 0x4C2DBF6: malloc (vg_replace_malloc.c:299) ==10724== by 0x6F74EFF: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21) ==10724== by 0x40106B9: call_init.part.0 (dl-init.c:72) ==10724== by 0x40107CA: call_init (dl-init.c:30) ==10724== by 0x40107CA: _dl_init (dl-init.c:120) ==10724== by 0x4000C69: ??? (in /lib/x86_64-linux-gnu/ld-2.23.so) ==10724== by 0x2: ??? ==10724== by 0x1FFF0006D2: ??? ==10724== by 0x1FFF0006E8: ??? ==10724== by 0x1FFF0006FF: ??? ==10724== ==10724== LEAK SUMMARY: ==10724== definitely lost: 0 bytes in 0 blocks ==10724== indirectly lost: 0 bytes in 0 blocks ==10724== possibly lost: 0 bytes in 0 blocks ==10724== still reachable: 72,704 bytes in 1 blocks ==10724== suppressed: 0 bytes in 0 blocks ``` Tree-SHA512: 9c92079fc61313ea678deb6aaa16a3a71c3154c757459793eb9ca0d90a9a74c6faebfb04c9135e1b398ca34224fb7f03bd9c488ea0e8debf6894f69f030a31d3
Includes known Valgrind warnings in our dependencies that cannot be fixed in-tree.
Example use:
Running with the suppressions file under Ubuntu 16.04:
Running without the suppressions file under Ubuntu 16.04: