[Webkit-unassigned] [Bug 281806] New: [GLIB] test-webkitpy randomly freezing after XvfbDriverTest.test_xvfb_not_replying returns

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Oct 18 22:43:35 PDT 2024


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

            Bug ID: 281806
           Summary: [GLIB] test-webkitpy randomly freezing after
                    XvfbDriverTest.test_xvfb_not_replying returns
           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: lmoura at igalia.com

Test case: webkitpy.port.xvfbdriver_unittest.XvfbDriverTest.test_xvfb_not_replying

The issue seems to manifest more frequently on the desktop when using many parallel jobs, more than the default of `multiprocessing.cpu_count()`. This issue is happening consistently on the WPE release post-commit bot with default options, making the step fail with "no output for 1200 seocnds..."

Steps to reproduce:

./Tools/Scripts/test-webkitpy --verbose --pass-through -j 32 (on a 20-core machine)

After a while:

<snip>
[2340/2375] webkitpy.layout_tests.servers.web_platform_test_server_unittest.TestWebPlatformTestServer.test_server_fails_to_start_throws_exception passed                                                                                      
[2341/2375] webkitpy.layout_tests.servers.web_platform_test_server_unittest.TestWebPlatformTestServer.test_corrupted_subserver_files passed
[2342/2375] webkitpy.port.xvfbdriver_unittest.XvfbDriverTest.test_xvfb_not_replying passed
<stuck>

And `ps` shows many defuct ptyhon processes, so looks like something is getting stuck when reaping the existed workers.

Trace of main thread after interrupting:

Traceback (most recent call last):
  File "/home/lauro/wkdev-shared/dev/wk-webdriver/WebKit-WebDriver/Tools/Scripts/webkitpy/test/main.py", line 618, in <module>
    (pid, sts) = os.waitpid(self.pid, wait_flags)
    sys.exit(main())
             ^^^^^^
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/lauro/wkdev-shared/dev/wk-webdriver/WebKit-WebDriver/Tools/Scripts/webkitpy/test/main.py", line 341, in main
KeyboardInterrupt
    return not tester.run()
               ^^^^^^^^^^^^
  File "/home/lauro/wkdev-shared/dev/wk-webdriver/WebKit-WebDriver/Tools/Scripts/webkitpy/test/main.py", line 419, in run
    return self._run_tests(names)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/lauro/wkdev-shared/dev/wk-webdriver/WebKit-WebDriver/Tools/Scripts/webkitpy/test/main.py", line 460, in _run_tests
    test_runner.run(parallel_tests, getattr(self._options, 'child_processes', 1))
  File "/home/lauro/wkdev-shared/dev/wk-webdriver/WebKit-WebDriver/Tools/Scripts/webkitpy/test/runner.py", line 45, in run
    pool.run(('test', test_name) for test_name in test_names)
  File "/home/lauro/wkdev-shared/dev/wk-webdriver/WebKit-WebDriver/Tools/Scripts/webkitpy/common/message_pool.py", line 104, in run
    self.wait()
  File "/home/lauro/wkdev-shared/dev/wk-webdriver/WebKit-WebDriver/Tools/Scripts/webkitpy/common/message_pool.py", line 141, in wait
    self._close()
  File "/home/lauro/wkdev-shared/dev/wk-webdriver/WebKit-WebDriver/Tools/Scripts/webkitpy/common/message_pool.py", line 151, in _close
    worker.join(timeout=max(deadline - time.time(), 0))
  File "/usr/lib/python3.11/multiprocessing/process.py", line 149, in join
    res = self._popen.wait(timeout)
          ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/multiprocessing/popen_fork.py", line 40, in wait
    if not wait([self.sentinel], timeout):
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/multiprocessing/connection.py", line 930, in wait
    ready = selector.select(timeout)
            ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/selectors.py", line 415, in select
    fd_event_list = self._selector.poll(timeout)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
KeyboardInterrupt

-- 
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/20241019/6b1925e1/attachment.htm>


More information about the webkit-unassigned mailing list