Bug 248516

Summary: REGRESSION(257087@main) [GLIB] Layout test early exits with broken pipe
Product: WebKit Reporter: Lauro Moura <lmoura>
Component: WebKitGTKAssignee: Nobody <webkit-unassigned>
Status: RESOLVED DUPLICATE    
Severity: Normal CC: bugs-noreply
Priority: P2    
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=248079

Description Lauro Moura 2022-11-29 21:56:00 PST
Minimal test case so far:

./Tools/Scripts/run-webkit-tests --flatpak-verbose --no-new-test-results --no-show-results --clobber-old-results --release --wpe --results-directory=layout-test-results fast/text/international/ --child-processes=1

Bisect shows it's caused by 257087@main.

The broken output is making the bots timeout with the hard 1200sec limit.

Output:

<snip>

Running 121 tests                              
                                                                    
Running 1 WebKitTestRunner.                                                                                                             
                                                                    
[26/121] fast/text/international/bidi-listbox-atsui.html failed unexpectedly (text diff)     
[27/121] fast/text/international/bidi-listbox.html failed unexpectedly (text diff)                                   
[28/121] fast/text/international/bidi-menulist.html failed unexpectedly (text diff)                                                                                                                                                                                             [49/121] fast/text/international/generic-font-family-language-traditional.html passed                                                                                                                                                                                           BrokenPipeError raised: [Errno 32] Broken pipe                                                                                                                                                                                                                                  Traceback (most recent call last):                                                                                                                                                                                                                                                File "/app/webkit/Tools/Scripts/webkitpy/port/server_process.py", line 186, in write                                                                                                                                                                                              self._proc.stdin.flush()                                                                                                            
BrokenPipeError: [Errno 32] Broken pipe
                                                                    
During handling of the above exception, another exception occurred:
                                                                    
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 508, 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 570, 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 176, in run_tests
    pool.do(
  File "/app/webkit/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/task_pool.py", line 405, in do
    result = function(*args, **kwargs)
  File "/app/webkit/Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py", line 77, in run_shard
    return Worker.instance.run_tests(shard)
  File "/app/webkit/Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py", line 319, in run_tests
    Worker.instance.run_test(input, shard.name)
  File "/app/webkit/Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py", line 347, 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 404, 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 490, 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 493, 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 48, in run_single_test
    return runner.run()
  File "/app/webkit/Tools/Scripts/webkitpy/layout_tests/controllers/single_test_runner.py", line 123, in run
    return self._run_reftest()
  File "/app/webkit/Tools/Scripts/webkitpy/layout_tests/controllers/single_test_runner.py", line 358, in _run_reftest
    reference_output = self._driver.run_test(DriverInput(reference_test_name, self._timeout, None, should_run_pixel_test=True), self._stop_when_done)
  File "/app/webkit/Tools/Scripts/webkitpy/port/driver.py", line 863, in run_test
    return self._driver.run_test(driver_input, stop_when_done)
  File "/app/webkit/Tools/Scripts/webkitpy/port/driver.py", line 233, in run_test
    self._server_process.write(command)
  File "/app/webkit/Tools/Scripts/webkitpy/port/server_process.py", line 188, in write
    self.stop(0.0)
  File "/app/webkit/Tools/Scripts/webkitpy/port/server_process.py", line 403, in stop
    self._proc.stdin.close()
BrokenPipeError: [Errno 32] Broken pipe
Comment 1 Lauro Moura 2022-11-29 22:02:19 PST
Fujii's patch in bug248512 fixes the issue.

*** This bug has been marked as a duplicate of bug 248512 ***