[Webkit-unassigned] [Bug 242083] New: [run-benchmark] Avoid race condition when killing the browser sub-process on Linux

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Jun 28 14:30:12 PDT 2022


https://bugs.webkit.org/show_bug.cgi?id=242083

            Bug ID: 242083
           Summary: [run-benchmark] Avoid race condition when killing the
                    browser sub-process on Linux
           Product: WebKit
           Version: WebKit Nightly Build
          Hardware: Unspecified
                OS: Unspecified
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: Tools / Tests
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: clopez at igalia.com

When the run-benchmark runner for Linux attempts to kill the browser first it kills the main browser process and then it kills all the browser subprocess if those are still alive.

The issue is that there is a race condition between the check of the subprocess being alive and the kill call, sometimes the the child ends in the interval between the is_running() and kill() call causing an exception on the runner.

This can be seen here https://build.webkit.org/#/builders/26/builds/2163/steps/13/logs/stdio

2022-06-28 08:58:10,070 - INFO - Cleaning Benchmark
2022-06-28 08:58:10,098 - ERROR - Error running benchmark plan: jetstream2
Traceback (most recent call last):
  File "/home/buildbot/worker/GTK-Linux-64-bit-Release-Perf/build/Tools/Scripts/webkitpy/browserperfdash/browserperfdash_runner.py", line 163, in run
    runner.execute()
  File "/home/buildbot/worker/GTK-Linux-64-bit-Release-Perf/build/Tools/Scripts/webkitpy/benchmark_runner/benchmark_runner.py", line 120, in execute
    self._run_benchmark(int(self._plan['count']), web_root)
  File "/home/buildbot/worker/GTK-Linux-64-bit-Release-Perf/build/Tools/Scripts/webkitpy/benchmark_runner/benchmark_runner.py", line 90, in _run_benchmark
    result = self._run_one_test(web_root, self._plan['entry_point'])
  File "/home/buildbot/worker/GTK-Linux-64-bit-Release-Perf/build/Tools/Scripts/webkitpy/benchmark_runner/webserver_benchmark_runner.py", line 61, in _run_one_test
    self._browser_driver.close_browsers()
  File "/home/buildbot/worker/GTK-Linux-64-bit-Release-Perf/build/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_browser_driver.py", line 85, in close_browsers
    browser_child.kill()
  File "/usr/lib/python3/dist-packages/psutil/__init__.py", line 383, in wrapper
    raise NoSuchProcess(self.pid, self._name)
psutil.NoSuchProcess: psutil.NoSuchProcess process no longer exists (pid=9447)

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20220628/3b026935/attachment.htm>


More information about the webkit-unassigned mailing list