$ LC_ALL=uk_UA ./python -m test -vuall test_sys -m test_remote_exec
======================================================================
ERROR: test_remote_exec (test.test_sys.TestRemoteExec.test_remote_exec)
Test basic remote exec functionality
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/serhiy/py/cpython/Lib/test/test_sys.py", line 2078, in test_remote_exec
returncode, stdout, stderr = self._run_remote_exec_test(script)
~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^
File "/home/serhiy/py/cpython/Lib/test/test_sys.py", line 2052, in _run_remote_exec_test
sys.remote_exec(proc.pid, script_path)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: Script file does not exist
----------------------------------------------------------------------
Bug report
There are two symptoms:
test_systests are failed on in non-UTF-8 locale. For example:The issue is twofold. On one side,
sys.remote_exec()encodes the path to UTF-8 (even if the bytes path was decoded using the filesystem encoding). It fails becauseos.access()can't find file using the wrong path. It can accidentally success if other file exists with such path. On other side,PyFile_OpenFile()which interprets the path as UTF-8 is used to open the file.Linked PRs