[Android] Fix a deadlock between telemetry and DeviceUtils.

Many functions in Python's logging module grab a lock internally. Some
appear to do so before converting the provided message to a string via
its __str__ method.

Calling an object's __str__ method before calling a logging funciton
allows anything called by the __str__ method to log without the risk of
hitting a deadlock.

BUG=392869

Review URL: https://codereview.chromium.org/385653002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@282412 0039d316-1c4b-4281-b951-d872f2087c98
parent 937b176d
...@@ -277,7 +277,7 @@ def _PrepareAndRunPage(test, page_set, expectations, finder_options, ...@@ -277,7 +277,7 @@ def _PrepareAndRunPage(test, page_set, expectations, finder_options,
logging.error('Aborting multi-tab test after tab %s crashed', logging.error('Aborting multi-tab test after tab %s crashed',
page.url) page.url)
raise raise
logging.warning(e) logging.warning(str(e))
state.StopBrowser() state.StopBrowser()
if finder_options.profiler: if finder_options.profiler:
...@@ -301,7 +301,7 @@ def _PrepareAndRunPage(test, page_set, expectations, finder_options, ...@@ -301,7 +301,7 @@ def _PrepareAndRunPage(test, page_set, expectations, finder_options,
if test.is_multi_tab_test: if test.is_multi_tab_test:
logging.error('Aborting multi-tab test after browser crashed') logging.error('Aborting multi-tab test after browser crashed')
raise raise
logging.warning(e) logging.warning(str(e))
def _UpdatePageSetArchivesIfChanged(page_set): def _UpdatePageSetArchivesIfChanged(page_set):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment