Bug 229971 - run_webkit_tests failed to print error message in python3 in linux_get_crash_log.py
Summary: run_webkit_tests failed to print error message in python3 in linux_get_crash_...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Tools / Tests (show other bugs)
Version: Other
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Jonathan Bedard
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2021-09-06 15:58 PDT by Aakash Jain
Modified: 2021-09-07 08:45 PDT (History)
6 users (show)

See Also:


Attachments
Patch (1.63 KB, patch)
2021-09-07 07:57 PDT, Jonathan Bedard
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Aakash Jain 2021-09-06 15:58:41 PDT
run_webkit_tests failed to print error message in python3 in linux_get_crash_log.py 

From https://build.webkit.org/#/builders/63/builds/2245/steps/11/logs/stdio

17:18:52.297 3 worker/11 stopping
17:18:52.614 3 Some workers failed to gracefully shut down, but in-flight exception taking precedence
17:18:52.725 3 TypeError("can only concatenate str (not "bytes") to str (from worker/3)") raised, exiting
17:18:52.725 3 Flushing stdout
17:18:52.725 3 Flushing stderr
17:18:52.725 3 Stopping helper
17:18:52.725 3 Cleaning up port
TypeError raised: can only concatenate str (not "bytes") to str (from worker/3)
Traceback (most recent call last):
  File "/app/webkit/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py", line 92, in main
    run_details = run(port, options, args, stderr)
  File "/app/webkit/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py", line 494, in run
    run_details = manager.run(args)
  File "/app/webkit/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py", line 413, in run
    temp_initial_results, temp_retry_results, temp_enabled_pixel_tests_in_retry = self._run_test_subset(test_inputs, device_type=device_type)
  File "/app/webkit/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py", line 487, in _run_test_subset
    initial_results = self._run_tests(test_inputs, self._options.repeat_each, self._options.iterations, int(self._options.child_processes), retrying=False, device_type=device_type)
  File "/app/webkit/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py", line 566, in _run_tests
    return self._runner.run_tests(self._expectations[device_type], new_test_inputs, num_workers, retrying, device_type)
  File "/app/webkit/Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py", line 179, in run_tests
    pool.wait()
  File "/app/webkit/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/task_pool.py", line 451, in __exit__
    reraise(*inflight)
  File "/app/webkit/Tools/Scripts/libraries/autoinstalled/python-3/six.py", line 703, in reraise
    raise value
  File "/app/webkit/Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py", line 179, in run_tests
    pool.wait()
  File "/app/webkit/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/task_pool.py", line 423, in wait
    self.queue.receive()(self)
  File "/app/webkit/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/task_pool.py", line 133, in __call__
    reraise(*self.exc_info)
  File "/app/webkit/Tools/Scripts/libraries/autoinstalled/python-3/six.py", line 702, in reraise
    raise value.with_traceback(tb)
  File "/app/webkit/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/task_pool.py", line 296, in main
    queue.send(_Result(value=task(None), id=task.id))
  File "/app/webkit/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/task_pool.py", line 56, in __call__
    return self.function(*self.args, **self.kwargs)
  File "/app/webkit/Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py", line 76, in run_shard
    return Worker.instance.run_tests(shard)
  File "/app/webkit/Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py", line 318, in run_tests
    Worker.instance.run_test(input, shard.name)
  File "/app/webkit/Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py", line 346, in run_test
    result = self._run_test_with_or_without_timeout(test_input, test_timeout_sec, stop_when_done)
  File "/app/webkit/Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py", line 403, in _run_test_with_or_without_timeout
    return self._run_test_in_this_thread(test_input, stop_when_done)
  File "/app/webkit/Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py", line 489, in _run_test_in_this_thread
    return self._run_single_test(self._driver, test_input, stop_when_done)
  File "/app/webkit/Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py", line 492, in _run_single_test
    return single_test_runner.run_single_test(
  File "/app/webkit/Tools/Scripts/webkitpy/layout_tests/controllers/single_test_runner.py", line 46, in run_single_test
    return runner.run()
  File "/app/webkit/Tools/Scripts/webkitpy/layout_tests/controllers/single_test_runner.py", line 121, in run
    return self._run_compare_test()
  File "/app/webkit/Tools/Scripts/webkitpy/layout_tests/controllers/single_test_runner.py", line 124, in _run_compare_test
    driver_output = self._driver.run_test(self._driver_input(), self._stop_when_done)
  File "/app/webkit/Tools/Scripts/webkitpy/port/driver.py", line 834, in run_test
    return self._driver.run_test(driver_input, stop_when_done)
  File "/app/webkit/Tools/Scripts/webkitpy/port/driver.py", line 255, in run_test
    self.error_from_test, crash_log = self._get_crash_log(text, self.error_from_test, newer_than=start_time)
  File "/app/webkit/Tools/Scripts/webkitpy/port/driver.py", line 324, in _get_crash_log
    return self._port._get_crash_log(self._crashed_process_name, self._crashed_pid, stdout, stderr, newer_than, target_host=self._target_host)
  File "/app/webkit/Tools/Scripts/webkitpy/port/gtk.py", line 246, in _get_crash_log
    return GDBCrashLogGenerator(self._executive, name, pid, newer_than,
  File "/app/webkit/Tools/Scripts/webkitpy/port/linux_get_crash_log.py", line 156, in generate_crash_log
    crash_log, errors = self._get_gdb_output(coredump_path)
  File "/app/webkit/Tools/Scripts/webkitpy/port/linux_get_crash_log.py", line 63, in _get_gdb_output
    stdout = ('ERROR: The gdb process exited with non-zero return code %s\n\n' % proc.returncode) + stdout
TypeError: can only concatenate str (not "bytes") to str (from worker/3)
Comment 1 Jonathan Bedard 2021-09-07 07:57:23 PDT
Created attachment 437503 [details]
Patch
Comment 2 Aakash Jain 2021-09-07 08:09:32 PDT
Comment on attachment 437503 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=437503&action=review

> Tools/Scripts/webkitpy/port/linux_get_crash_log.py:63
> +            stdout = (b'ERROR: The gdb process exited with non-zero return code %s\n\n' % str(proc.returncode)) + stdout

should we use {} and .format() instead of %s
Comment 3 Jonathan Bedard 2021-09-07 08:17:07 PDT
Comment on attachment 437503 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=437503&action=review

>> Tools/Scripts/webkitpy/port/linux_get_crash_log.py:63
>> +            stdout = (b'ERROR: The gdb process exited with non-zero return code %s\n\n' % str(proc.returncode)) + stdout
> 
> should we use {} and .format() instead of %s

Bytes don't have `.format()`, so we need to use %.
Comment 4 EWS 2021-09-07 08:44:48 PDT
Committed r282087 (241387@main): <https://commits.webkit.org/241387@main>

All reviewed patches have been landed. Closing bug and clearing flags on attachment 437503 [details].
Comment 5 Radar WebKit Bug Importer 2021-09-07 08:45:19 PDT
<rdar://problem/82823545>