<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>273060</bug_id>
          
          <creation_ts>2024-04-22 01:45:18 -0700</creation_ts>
          <short_desc>[Win] UnicodeDecodeError on run-webkit-tests on non-English System Locale Windows 11</short_desc>
          <delta_ts>2024-05-16 00:06:10 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Local Build</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Other</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Trivial</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kohei Asano">kohei.asano</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>fujii</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2030152</commentid>
    <comment_count>0</comment_count>
    <who name="Kohei Asano">kohei.asano</who>
    <bug_when>2024-04-22 01:45:18 -0700</bug_when>
    <thetext>I tried to run `python Tools/Scripts/run-webkit-tests --release` on Windows 11, Japanese PowerShell. I got many UnicodeDecodeError like a following message


```
UnicodeDecodeError: &apos;utf-8&apos; codec can&apos;t decode byte 0x90 in position 0: invalid start byte
[16242/21282] storage/indexeddb/mozilla/key-requirements.html passed
During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File &quot;C:\Python311\Lib\multiprocessing\process.py&quot;, line 314, in _bootstrap
    self.run()
  File &quot;C:\Python311\Lib\multiprocessing\process.py&quot;, line 108, in run
    self._target(*self._args, **self._kwargs)
  File &quot;C:\Users\0300093582\WebKit\Tools\Scripts\libraries\webkitcorepy\webkitcorepy\task_pool.py&quot;, line 308, in main
    typ, typ(&apos;{} (from {})&apos;.format(str(exception), name)), traceback,
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: function takes exactly 5 arguments (1 given)
```

This can be resolved by changing, system language to English via
Start Menu -&gt; Control Panel -&gt; Region -&gt; Admistrative -&gt; Change system locale...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2030394</commentid>
    <comment_count>1</comment_count>
    <who name="Kohei Asano">kohei.asano</who>
    <bug_when>2024-04-22 17:31:04 -0700</bug_when>
    <thetext>This error wouldn&apos;t depend on PowerShell, would cause Command Prompt as well. 
This is longer log, we suspect Shift_JIS from taskkill.exe is problematic.

```
[16175/21282] webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html pas                                                                                                                        Process Process-31:
worker/30 stopping
Traceback (most recent call last):
  File &quot;C:\Users\\WebKit\Tools\Scripts\libraries\webkitcorepy\webkitcorepy\task_pool.py&quot;, line 303, in main
    queue.send(_Result(value=task(None), id=task.id))
                             ^^^^^^^^^^
  File &quot;C:\Users\\WebKit\Tools\Scripts\libraries\webkitcorepy\webkitcorepy\task_pool.py&quot;, line 56, in __call__
    return self.function(*self.args, **self.kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File &quot;C:\Users\\WebKit\Tools\Scripts\webkitpy\layout_tests\controllers\layout_test_runner.py&quot;, line 77, in run_shard
    return Worker.instance.run_tests(shard)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File &quot;C:\Users\\WebKit\Tools\Scripts\webkitpy\layout_tests\controllers\layout_test_runner.py&quot;, line 325, in run_tests
    Worker.instance.run_test(input, shard.name)
  File &quot;C:\Users\\WebKit\Tools\Scripts\webkitpy\layout_tests\controllers\layout_test_runner.py&quot;, line 353, in run_test
    result = self._run_test_with_or_without_timeout(test_input, test_timeout_sec, stop_when_done)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File &quot;C:\Users\\WebKit\Tools\Scripts\webkitpy\layout_tests\controllers\layout_test_runner.py&quot;, line 410, in _run_test_with_or_without_timeout
    return self._run_test_in_this_thread(test_input, stop_when_done)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File &quot;C:\Users\\WebKit\Tools\Scripts\webkitpy\layout_tests\controllers\layout_test_runner.py&quot;, line 496, in _run_test_in_this_thread
    return self._run_single_test(self._driver, test_input, stop_when_done)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File &quot;C:\Users\\WebKit\Tools\Scripts\webkitpy\layout_tests\controllers\layout_test_runner.py&quot;, line 499, in _run_single_test
    return single_test_runner.run_single_test(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File &quot;C:\Users\\WebKit\Tools\Scripts\webkitpy\layout_tests\controllers\single_test_runner.py&quot;, line 48, in run_single_test
    return runner.run()
           ^^^^^^^^^^^^
  File &quot;C:\Users\\WebKit\Tools\Scripts\webkitpy\layout_tests\controllers\single_test_runner.py&quot;, line 133, in run
    return self._run_compare_test()
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File &quot;C:\Users\\WebKit\Tools\Scripts\webkitpy\layout_tests\controllers\single_test_runner.py&quot;, line 136, in _run_compare_test
    driver_output = self._driver.run_test(self._driver_input(), self._stop_when_done)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File &quot;C:\Users\\WebKit\Tools\Scripts\webkitpy\port\driver.py&quot;, line 888, in run_test
    return self._driver.run_test(driver_input, stop_when_done)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File &quot;C:\Users\\WebKit\Tools\Scripts\webkitpy\port\driver.py&quot;, line 251, in run_test
    out, err = self._server_process.stop(self._port.driver_stop_timeout() if stop_when_done else 0.0)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File &quot;C:\Users\\WebKit\Tools\Scripts\webkitpy\port\server_process.py&quot;, line 409, in stop
    return self._wait_for_stop(timeout_secs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File &quot;C:\Users\\WebKit\Tools\Scripts\webkitpy\port\server_process.py&quot;, line 422, in _wait_for_stop
    self._kill()
  File &quot;C:\Users\\WebKit\Tools\Scripts\webkitpy\port\server_process.py&quot;, line 440, in _kill
    self._target_host.executive.kill_process(self._proc.pid)
  File &quot;C:\Users\\WebKit\Tools\Scripts\webkitpy\common\system\executive.py&quot;, line 199, in kill_process
    self.run_command(command, ignore_errors=True)
  File &quot;C:\Users\\WebKit\Tools\Scripts\webkitpy\common\system\executive.py&quot;, line 424, in run_command
    output = string_utils.decode(output, encoding=self._child_process_encoding()).replace(&apos;\r\n&apos;, &apos;\n&apos;)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File &quot;C:\Users\\WebKit\Tools\Scripts\libraries\webkitcorepy\webkitcorepy\string_utils.py&quot;, line 46, in decode
    return data.decode(encoding, errors=errors)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
UnicodeDecodeError: &apos;utf-8&apos; codec can&apos;t decode byte 0x90 in position 0: invalid start byte
...
UnicodeDecodeError: &apos;utf-8&apos; codec can&apos;t decode byte 0x90 in position 0: invalid start byte
[16242/21282] storage/indexeddb/mozilla/key-requirements.html passed
During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File &quot;C:\Python311\Lib\multiprocessing\process.py&quot;, line 314, in _bootstrap
    self.run()
  File &quot;C:\Python311\Lib\multiprocessing\process.py&quot;, line 108, in run
    self._target(*self._args, **self._kwargs)
  File &quot;C:\Users\\WebKit\Tools\Scripts\libraries\webkitcorepy\webkitcorepy\task_pool.py&quot;, line 308, in main
    typ, typ(&apos;{} (from {})&apos;.format(str(exception), name)), traceback,
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: function takes exactly 5 arguments (1 given)
...
[34/35] js/dom/navigator-language.html failed unexpectedly (text diff)
Stopping WebSocket server ...
UnicodeDecodeError raised: &apos;utf-8&apos; codec can&apos;t decode byte 0x90 in position 0: invalid start byte
Traceback (most recent call last):
  File &quot;C:\Users\\WebKit\Tools\Scripts\webkitpy\layout_tests\run_webkit_tests.py&quot;, line 94, in main
    run_details = run(port, options, args, stderr)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File &quot;C:\Users\\WebKit\Tools\Scripts\webkitpy\layout_tests\run_webkit_tests.py&quot;, line 566, in run
    run_details = manager.run(args)
                  ^^^^^^^^^^^^^^^^^
  File &quot;C:\Users\\WebKit\Tools\Scripts\webkitpy\layout_tests\controllers\manager.py&quot;, line 470, in run
    self._runner.stop_servers()
  File &quot;C:\Users\\WebKit\Tools\Scripts\webkitpy\layout_tests\controllers\layout_test_runner.py&quot;, line 291, in stop_servers
    self._port.stop_websocket_server()
  File &quot;C:\Users\\WebKit\Tools\Scripts\webkitpy\port\base.py&quot;, line 1008, in stop_websocket_server
    Port._websocket_server.stop()
  File &quot;C:\Users\\WebKit\Tools\Scripts\webkitpy\layout_tests\servers\http_server_base.py&quot;, line 140, in stop
    self._stop_running_server()
  File &quot;C:\Users\\WebKit\Tools\Scripts\webkitpy\layout_tests\servers\websocket_server.py&quot;, line 178, in _stop_running_server
    self._wait_for_action(self._check_and_kill)
  File &quot;C:\Users\\WebKit\Tools\Scripts\webkitpy\layout_tests\servers\http_server_base.py&quot;, line 199, in _wait_for_action
    if action():
       ^^^^^^^^
  File &quot;C:\Users\\WebKit\Tools\Scripts\webkitpy\layout_tests\servers\websocket_server.py&quot;, line 200, in _check_and_kill
    self._executive.run_command([&quot;taskkill.exe&quot;, &quot;/f&quot;, &quot;/t&quot;, &quot;/pid&quot;, self._pid], ignore_errors=True)
  File &quot;C:\Users\\WebKit\Tools\Scripts\webkitpy\common\system\executive.py&quot;, line 424, in run_command
    output = string_utils.decode(output, encoding=self._child_process_encoding()).replace(&apos;\r\n&apos;, &apos;\n&apos;)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File &quot;C:\Users\\WebKit\Tools\Scripts\libraries\webkitcorepy\webkitcorepy\string_utils.py&quot;, line 46, in decode
    return data.decode(encoding, errors=errors)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
UnicodeDecodeError: &apos;utf-8&apos; codec can&apos;t decode byte 0x90 in position 0: invalid start byte
Stopping WebSocket server ...Failed to stop pywebsocket: pid file is missing
Exception ignored in atexit callback: &lt;function LayoutTestRunner.__init__.&lt;locals&gt;.&lt;lambda&gt; at 0x0000016806AC59E0&gt;
Traceback (most recent call last):
  File &quot;C:\Users\\WebKit\Tools\Scripts\webkitpy\layout_tests\controllers\layout_test_runner.py&quot;, line 125, in &lt;lambda&gt;
    atexit.register(lambda: self.stop_servers())
                            ^^^^^^^^^^^^^^^^^^^
  File &quot;C:\Users\\WebKit\Tools\Scripts\webkitpy\layout_tests\controllers\layout_test_runner.py&quot;, line 291, in stop_servers
    self._port.stop_websocket_server()
  File &quot;C:\Users\\WebKit\Tools\Scripts\webkitpy\port\base.py&quot;, line 1011, in stop_websocket_server
    Port._websocket_secure_server.stop()
  File &quot;C:\Users\\WebKit\Tools\Scripts\webkitpy\layout_tests\servers\http_server_base.py&quot;, line 140, in stop
    self._stop_running_server()
  File &quot;C:\Users\\WebKit\Tools\Scripts\webkitpy\layout_tests\servers\websocket_server.py&quot;, line 178, in _stop_running_server
    self._wait_for_action(self._check_and_kill)
  File &quot;C:\Users\\WebKit\Tools\Scripts\webkitpy\layout_tests\servers\http_server_base.py&quot;, line 199, in _wait_for_action
    if action():
       ^^^^^^^^
  File &quot;C:\Users\\WebKit\Tools\Scripts\webkitpy\layout_tests\servers\websocket_server.py&quot;, line 200, in _check_and_kill
    self._executive.run_command([&quot;taskkill.exe&quot;, &quot;/f&quot;, &quot;/t&quot;, &quot;/pid&quot;, self._pid], ignore_errors=True)
  File &quot;C:\Users\\WebKit\Tools\Scripts\webkitpy\common\system\executive.py&quot;, line 424, in run_command
    output = string_utils.decode(output, encoding=self._child_process_encoding()).replace(&apos;\r\n&apos;, &apos;\n&apos;)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File &quot;C:\Users\\WebKit\Tools\Scripts\libraries\webkitcorepy\webkitcorepy\string_utils.py&quot;, line 46, in decode
    return data.decode(encoding, errors=errors)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
UnicodeDecodeError: &apos;utf-8&apos; codec can&apos;t decode byte 0x90 in position 0: invalid start byte
```</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2030476</commentid>
    <comment_count>2</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2024-04-23 00:36:27 -0700</bug_when>
    <thetext>How about an idea of using pywin32 rather than taskkill.exe?

from win32.win32process import TerminateProcess
from win32.win32api import OpenProcess
import win32con

handle = OpenProcess(win32con.PROCESS_TERMINATE, False, 12345)
TerminateProcess(handle, 0)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2035716</commentid>
    <comment_count>3</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2024-05-16 00:06:10 -0700</bug_when>
    <thetext>python - subprocess: deleting child processes in Windows - Stack Overflow
https://stackoverflow.com/q/1230669</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>