Commit graph

7 commits

Author SHA1 Message Date
Josh Gao
38d00b80a0 fdtrack: don't destroy traces.
There's a bad interaction with malloc_debug when the libraries are being
destroyed.

Bug: https://issuetracker.google.com/154439915
Test: treehugger
Change-Id: Ib47c8139c3a88dd52865ea93654b2926bd708729
2020-04-29 17:20:24 -07:00
Yuxian Xu
3a5ddd72c3 libfdtrack: When dump fdsan fd owner, happen NE
When dump fdsan fd owner, happen NE. This because the format specifier
flag '#' is not supported by Bionic out_vformat<BufferOutputStream>.

Bug: 153611483
Test: jmgao@ verified manually
Change-Id: I7191c3b2b621ddcc0397874f8a69391e58232ac8
2020-04-09 12:46:58 -07:00
Josh Gao
ad8f02d780 fdtrack: add a test.
Test: logcat -c; fdtrack_test; logcat -d | grep fdtrack
Change-Id: Ie1101c9cf968299ec1f03f20097a2ed27f6e15bd
2020-02-03 14:29:52 -08:00
Josh Gao
6f08866e33 fdtrack: print fdsan owner tag.
Test: logcat -c; fdtrack_test; logcat -d | grep fdtrack
Change-Id: I0a7e342da239a0e7889eb228a3a023268d40b1c5
2020-01-30 13:55:11 -08:00
Josh Gao
50955c461b fdtrack: make actually async safe.
Test: setprop persist.sys.debug.fdtrack_enable_threshold; stop; start; logcat -c; killall -39 system_server; logcat -d | grep fdtrack
Change-Id: Id9baa54af9e5cfb6e1ee1026f71d7fb41b7c3ad0
2020-01-30 13:55:11 -08:00
Josh Gao
7596250722 Move fdtrack APIs to LLNDK.
Test: logcat -c; fdtrack_test; logcat -d
Change-Id: Ib6f75a7c8bbc4d6efa0708dcbbfe4ad3c0641022
2020-01-30 13:55:10 -08:00
Josh Gao
97271920bf Add a tool to track down fd leaks.
Add a hook that's called upon file descriptor creation to libc, and a
library that uses it to capture backtraces for file descriptor creation,
to make it easier to hunt down file descriptor leaks.

Currently, this doesn't capture all of the ways of creating a file
descriptor, but completeness isn't required for this to be useful as
long as leaked file descriptors are created with a function that is
tracked. The primary unhandled case is binder, which receives file
descriptors as a payload in a not-trivially-parsable byte blob, but
there's a chance that the leak we're currently trying to track down
isn't of a file descriptor received over binder, so leave that for
later.

Bug: http://b/140703823
Test: manual
Change-Id: I308a14c2e234cdba4207157b634ab6b8bc539dd9
(cherry picked from commit b7eccd4b15)
2020-01-30 13:55:10 -08:00