[Telemetry] Workaround GC deadlock

Works around a flaky deadlock that can occur (mainly under Python 3)
during tracing shutdown after a test completes. This is caused when
some objects with custom destructors (InspectorBackend is one known
class, but there may be others) get garbage collected while tracing is
being stopped, which causes garbage collection to deadlock attempting to
acquire a tracing lock.

This is worked around by manually garbage collecting just before
shutting down tracing.

Bug: chromium:1267210
Change-Id: I49ab9f189e6bb947c3bbbd654c60ad2e06f015cc
Reviewed-on: https://chromium-review.googlesource.com/c/catapult/+/3273676
Auto-Submit: Brian Sheedy <bsheedy@chromium.org>
Commit-Queue: John Chen <johnchen@chromium.org>
Reviewed-by: John Chen <johnchen@chromium.org>
1 file changed
tree: 6b41924d8c2a54c844adb263ac807fa099d8968a
  1. bin/
  2. catapult_build/
  3. common/
  4. dashboard/
  5. dependency_manager/
  6. devil/
  7. docs/
  8. experimental/
  9. firefighter/
  10. hooks/
  11. infra/
  12. netlog_viewer/
  13. systrace/
  14. telemetry/
  15. third_party/
  16. trace_processor/
  17. tracing/
  18. web_page_replay_go/
  19. .eslintignore
  20. .eslintrc
  21. .gcloudignore
  22. .gitignore
  23. .vpython
  24. .vpython3
  25. AUTHORS
  26. BUILD.gn
  27. codereview.settings
  28. CONTRIBUTING.md
  29. DIR_METADATA
  30. generate_telemetry_build.py
  31. LICENSE
  32. navbar.md
  33. OWNERS
  34. PRESUBMIT.py
  35. pylintrc
  36. README.md
  37. WATCHLISTS
README.md

Catapult

Catapult is the home for several performance tools that span from gathering, displaying and analyzing performance data. This includes:

These tools were created by Chromium developers for performance analysis, testing, and monitoring of Chrome, but they can also be used for analyzing and monitoring websites, and eventually Android apps.

Contributing

Please see our contributor's guide