Bug 226707

Summary: Windows Python 2.7 fails to install tblib-1.7.0 due to "TypeError: environment can only contain strings"
Product: WebKit Reporter: Fujii Hironori <Hironori.Fujii>
Component: Tools / TestsAssignee: Fujii Hironori <Hironori.Fujii>
Status: RESOLVED FIXED    
Severity: Normal CC: bfulgham, darin, don.olmstead, ews-watchlist, glenn, jbedard, pvollan, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch none

Description Fujii Hironori 2021-06-06 22:41:08 PDT
Windows Python 2.7 fails to install tblib-1.7.0 due to "TypeError: environment can only contain strings"

PS C:\home\webkit\gc> python.exe ./Tools/Scripts/run-webkit-tests --wincairo --debug
Downloading setuptools-44.1.1...
Installing setuptools-44.1.1...
Installed setuptools-44.1.1!
Downloading setuptools-scm-5.0.2...
Installing setuptools-scm-5.0.2...
Installed setuptools-scm-5.0.2!
Downloading wheel-0.35.1...
Installing wheel-0.35.1...
Installed wheel-0.35.1!
Downloading six-1.15.0...
Installing six-1.15.0...
Installed six-1.15.0!
Downloading mock-3.0.5...
Installing mock-3.0.5...
Installed mock-3.0.5!
Downloading funcsigs-1.0.2...
Installing funcsigs-1.0.2...
Installed funcsigs-1.0.2!
Downloading fasteners-0.15.0...
Installing fasteners-0.15.0...
Installed fasteners-0.15.0!
Downloading monotonic-1.5.0...
Installing monotonic-1.5.0...
Installed monotonic-1.5.0!
Downloading requests-2.24.0...
Installing requests-2.24.0...
Installed requests-2.24.0!
Downloading urllib3-1.25.10...
Installing urllib3-1.25.10...
Installed urllib3-1.25.10!
Downloading chardet-3.0.4...
Installing chardet-3.0.4...
Installed chardet-3.0.4!
Downloading certifi-2020.6.20...
Installing certifi-2020.6.20...
Installed certifi-2020.6.20!
Downloading idna-2.10.0...
Installing idna-2.10.0...
Installed idna-2.10.0!
Downloading PySocks-1.7.1...
Installing PySocks-1.7.1...
Installed PySocks-1.7.1!
Downloading win-inet-pton-1.1.0...
Installing win-inet-pton-1.1.0...
Installed win-inet-pton-1.1.0!
Downloading xmltodict-0.11.0...
Installing xmltodict-0.11.0...
Installed xmltodict-0.11.0!
Downloading attrs-18.1.0...
Installing attrs-18.1.0...
Installed attrs-18.1.0!
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LC_ALL = "en_US.UTF-8",
        LC_MESSAGES = "en_US.UTF-8",
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Using port 'wincairo-win10-wk2'
Test configuration: <win10, x86_64, debug>
Placing test results in C:\home\webkit\gc\WebKitBuild\Debug\bin64\layout-test-results
Using Debug build
Pixel tests disabled
Regular timeout: 30000, slow test timeout: 150000
Command line: C:\home\webkit\gc\WebKitBuild\Debug\bin64\WebKitTestRunner.exe -

Found 71450 tests; running 17972, skipping 53478.

Verbose baseline search path: platform\wincairo-win10-wk2 -> platform\wincairo-win10 -> platform\wincairo-wk2 -> platform\wincairo -> platform\wk2 -> generic

Baseline search path: platform\wincairo -> platform\wk2 -> generic

Running 17972 tests

The _NT_SYMBOL_PATH environment variable is not set. Using Microsoft Symbol Server.
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LC_ALL = "en_US.UTF-8",
        LC_MESSAGES = "en_US.UTF-8",
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Running 16 WebKitTestRunners in parallel.

Starting 16 workers ...Downloading tblib-1.7.0...
Installing tblib-1.7.0...
Failed to install tblib-1.7.0!

TypeError raised: environment can only contain strings
Traceback (most recent call last):
  File "C:\home\webkit\gc\Tools\Scripts\webkitpy\layout_tests\run_webkit_tests.py", line 92, in main
    run_details = run(port, options, args, stderr)
  File "C:\home\webkit\gc\Tools\Scripts\webkitpy\layout_tests\run_webkit_tests.py", line 487, in run
    run_details = manager.run(args)
  File "C:\home\webkit\gc\Tools\Scripts\webkitpy\layout_tests\controllers\manager.py", line 408, 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 "C:\home\webkit\gc\Tools\Scripts\webkitpy\layout_tests\controllers\manager.py", line 482, 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 "C:\home\webkit\gc\Tools\Scripts\webkitpy\layout_tests\controllers\manager.py", line 561, in _run_tests
    return self._runner.run_tests(self._expectations[device_type], new_test_inputs, num_workers, retrying, device_type)
  File "C:\home\webkit\gc\Tools\Scripts\webkitpy\layout_tests\controllers\layout_test_runner.py", line 172, in run_tests
    ), teardown=teardown_shard,
  File "C:\home\webkit\gc\Tools\Scripts\libraries\webkitcorepy\webkitcorepy\task_pool.py", line 336, in __init__
    import tblib
  File "C:\home\webkit\gc\Tools\Scripts\libraries\webkitcorepy\webkitcorepy\autoinstall.py", line 585, in find_module
    cls.install(name)
  File "C:\home\webkit\gc\Tools\Scripts\libraries\webkitcorepy\webkitcorepy\autoinstall.py", line 569, in install
    return all([to_install.install() for to_install in packages])
  File "C:\home\webkit\gc\Tools\Scripts\libraries\webkitcorepy\webkitcorepy\autoinstall.py", line 315, in install
    stderr=setup_log,
  File "C:\Python27\lib\subprocess.py", line 185, in check_call
    retcode = call(*popenargs, **kwargs)
  File "C:\Python27\lib\subprocess.py", line 172, in call
    return Popen(*popenargs, **kwargs).wait()
  File "C:\Python27\lib\subprocess.py", line 394, in __init__
    errread, errwrite)
  File "C:\Python27\lib\subprocess.py", line 644, in _execute_child
    startupinfo)
TypeError: environment can only contain strings
Stopping Web Platform Test server ...
PS C:\home\webkit\gc>
Comment 1 Fujii Hironori 2021-06-06 22:43:05 PDT
WinPort.setup_crash_log_saving modifies _NT_SYMBOL_PATH env var.
And, _NT_SYMBOL_PATH constrains an unicode string.
Comment 2 Fujii Hironori 2021-06-06 22:53:59 PDT
Created attachment 430712 [details]
Patch
Comment 3 Darin Adler 2021-06-06 23:03:40 PDT
Comment on attachment 430712 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=430712&action=review

> Tools/ChangeLog:9
> +        WinCairo port is still using Python 2.7 that has ascii strings and
> +        unicode strings. WinPort.setup_crash_log_saving modifies

Does WinCairo port need to use Python 2?
Comment 4 Fujii Hironori 2021-06-06 23:40:37 PDT
Comment on attachment 430712 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=430712&action=review

>> Tools/ChangeLog:9
>> +        unicode strings. WinPort.setup_crash_log_saving modifies
> 
> Does WinCairo port need to use Python 2?

Yes. We didn't finish Python 3 migration yet. We are working on it to remove Python 2 support.
Comment 5 Jonathan Bedard 2021-06-07 08:47:22 PDT
Comment on attachment 430712 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=430712&action=review

>>> Tools/ChangeLog:9
>>> +        unicode strings. WinPort.setup_crash_log_saving modifies
>> 
>> Does WinCairo port need to use Python 2?
> 
> Yes. We didn't finish Python 3 migration yet. We are working on it to remove Python 2 support.

And for what it's worth, Apple's ports weren't ready for Python 3.8 until late last week
Comment 6 Fujii Hironori 2021-06-07 13:10:02 PDT
Comment on attachment 430712 [details]
Patch

Clearing flags on attachment: 430712

Committed r278570 (238568@main): <https://commits.webkit.org/238568@main>
Comment 7 Fujii Hironori 2021-06-07 13:10:05 PDT
All reviewed patches have been landed.  Closing bug.
Comment 8 Radar WebKit Bug Importer 2021-06-07 13:11:19 PDT
<rdar://problem/78959758>