NEW 281806
[GLIB] test-webkitpy randomly freezing after XvfbDriverTest.test_xvfb_not_replying returns
https://bugs.webkit.org/show_bug.cgi?id=281806
Summary [GLIB] test-webkitpy randomly freezing after XvfbDriverTest.test_xvfb_not_rep...
Lauro Moura
Reported 2024-10-18 22:43:35 PDT
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
Attachments
Note You need to log in before you can comment on or make changes to this bug.