WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
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
Add attachment
proposed patch, testcase, etc.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug