tracing_service: reject entire session if a DS has an out of bounds target_buffer

Currently, if the config has an incorrect target_buffer (e.g. 2 for a
config with only 1 buffer) for one of its data sources, the
SetupDataSource skips that particular data source, without notifying the
consumer.

This patch adds an earlier check (in EnableTracing), which rejects the
entire session if its config has such an erroneous data source. I
believe that this config error is both critical AND rare enough that
it's fine to reject the whole trace for, but I could be convinced that
the graceful degradation of running the valid configs is preferable.

Reason for the change: I've seen this error made with manually-edited
configs firsthand, and it wasn't obvious what was wrong since the
consumer isn't told of the error at the moment.

Change-Id: I1d08952701cf03b78dda75f8d18486bd2794b157
2 files changed
tree: 190ded9d0485586cfcd70b732b14c89463f43a38
  1. .github/
  2. bazel/
  3. build_overrides/
  4. buildtools/
  5. debian/
  6. docs/
  7. examples/
  8. gn/
  9. include/
  10. infra/
  11. protos/
  12. src/
  13. test/
  14. tools/
  15. ui/
  16. .clang-format
  17. .clang-tidy
  18. .gitattributes
  19. .gitignore
  20. .gn
  21. .style.yapf
  22. Android.bp
  23. Android.bp.extras
  24. BUILD
  25. BUILD.extras
  26. BUILD.gn
  27. CHANGELOG
  28. codereview.settings
  29. DIR_METADATA
  30. heapprofd.rc
  31. LICENSE
  32. meson.build
  33. METADATA
  34. MODULE_LICENSE_APACHE2
  35. OWNERS
  36. perfetto.rc
  37. PerfettoIntegrationTests.xml
  38. PRESUBMIT.py
  39. README.chromium
  40. README.md
  41. TEST_MAPPING
  42. traced_perf.rc
  43. WORKSPACE
README.md

Perfetto - System profiling, app tracing and trace analysis

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.