commit | 1af720e9e5dc325f4d26ae29a4327b9d57b2282c | [log] [tgz] |
---|---|---|
author | Stephen Nusko <nuskos@google.com> | Wed Nov 18 14:04:16 2020 -0500 |
committer | Stephen Nusko <nuskos@google.com> | Wed Nov 18 14:04:16 2020 -0500 |
tree | a13b065f0515f12a21a9567eedc406670cb6e133 | |
parent | 961e3d3282a722a5aede3ee874edf10adec56249 [diff] |
Prevent traced from blocking on a unresponsive producer. Previously traced would block indefinitely if a producer stop draining the IPC channel. This would result in eventually the sendmsg call blocking and android's Watchdog killing traced for being unresponsive, if some producer in a long trace was unresponsive. We add an integration test which exposed this issue to prevent regressions, and set a timeout on the producer sockets and disconnect the producer on timeouts. We don't set the timeout on the consumer socket on the assumption that the consumer is trusted and to minimize changes to our behaviour as S is finalizing. Bug: 169051440 Change-Id: I63988f79b63977ae27eedd126a2bbdcaaa520e78
Perfetto is a production-grade open-source stack for performance instrumentation and trace analysis. It offers services and libraries and for recording system-level and app-level traces, native + java heap profiling, a library for analyzing traces using SQL and a web-based UI to visualize and explore multi-GB traces.
See https://perfetto.dev/docs or the /docs/ directory for documentation.