Bug 57173 - Ошибка SPICE в direct.py
Summary: Ошибка SPICE в direct.py
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: openuds-server (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P1 critical
Assignee: Alexey Shabalin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-12-09 11:45 MSK by Firewolf304
Modified: 2025-12-09 11:53 MSK (History)
3 users (show)

See Also:


Attachments
Сама ошибка (4.63 KB, image/png)
2025-12-09 11:45 MSK, Firewolf304
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Firewolf304 2025-12-09 11:45:43 MSK
Created attachment 20290 [details]
Сама ошибка

# Ошибка
При запуске прямого транспорта SPICE выводит ошибку "expected str, bytes, os.PathLike but not tuple" со стороны UDSClient

# Возможная проблема
В скрипте openuds/uds/transports/SPICE/scripts/windows/direct.py идет набор в переменную extraPaths типа tuple для сборки всех virt-viewer со стороны UDSClient. 
Внутри UDSClient uds/tools.py в функции find_application перед тем как объединить extra_path идет получение с переменной среды `os.environ['PATH']`, но разделена функцией split:
```
  searchPath = os.environ['PATH'].split(os.pathsep) # searchPath is a list. wtf?! where safe? `.get("PATH", "").split(os.pathsep)`
```
После идет проверка на пустоту, где идет добаление элементов tuple в list, но добавляется как значение, а не конкатенация массива, ожидается строка

# Логи 
DEBUG 2025-12-09 13:54:35,590 Platform info:
DEBUG 2025-12-09 13:54:35,590   UDSClient version: 4.0.0
DEBUG 2025-12-09 13:54:35,838   Platform: Windows-10-10.0.19044-SP0
DEBUG 2025-12-09 13:54:35,838   Node: windows10-DEBUGGER-MACHINE
DEBUG 2025-12-09 13:54:35,838   System: Windows
DEBUG 2025-12-09 13:54:35,838   Release: 10
DEBUG 2025-12-09 13:54:35,838   Version: 10.0.19044
DEBUG 2025-12-09 13:54:35,838   Machine: AMD64
DEBUG 2025-12-09 13:54:35,838   Processor: Intel64 Family 6 Model 165 Stepping 3, GenuineIntel
DEBUG 2025-12-09 13:54:35,838   Architecture: ('64bit', 'WindowsPE')
DEBUG 2025-12-09 13:54:35,839   Python version: 3.13.7
DEBUG 2025-12-09 13:54:35,839   Python implementation: CPython
DEBUG 2025-12-09 13:54:35,839   Python compiler: MSC v.1944 64 bit (AMD64)
DEBUG 2025-12-09 13:54:35,839   Python build: ('tags/v3.13.7:bcee1c3', 'Aug 14 2025 14:15:11')
DEBUG 2025-12-09 13:54:35,839 Qt framework: PySide6
DEBUG 2025-12-09 13:54:35,839 Log level set to DEBUG
DEBUG 2025-12-09 13:54:35,839 Environment variables:
DEBUG 2025-12-09 13:54:35,839   ALLUSERSPROFILE=C:\ProgramData
DEBUG 2025-12-09 13:54:35,839   APPDATA=C:\Users\TESTER\AppData\Roaming
DEBUG 2025-12-09 13:54:35,839   COMMONPROGRAMFILES=C:\Program Files\Common Files
DEBUG 2025-12-09 13:54:35,839   COMMONPROGRAMFILES(X86)=C:\Program Files (x86)\Common Files
DEBUG 2025-12-09 13:54:35,839   COMMONPROGRAMW6432=C:\Program Files\Common Files
DEBUG 2025-12-09 13:54:35,839   COMPONENT_INSTALLER_DIR=C:\Users\TESTER\AppData\Local\Microsoft\Edge\User Data
DEBUG 2025-12-09 13:54:35,839   COMPUTERNAME=WINDOWS10-DEBUGGER-MACHINE
DEBUG 2025-12-09 13:54:35,840   COMSPEC=C:\Windows\system32\cmd.exe
DEBUG 2025-12-09 13:54:35,840   DRIVERDATA=C:\Windows\System32\Drivers\DriverData
DEBUG 2025-12-09 13:54:35,840   EDGE_BROWSER_PID=11648
DEBUG 2025-12-09 13:54:35,840   EDGE_CRASHPAD_PIPE_NAME=\\.\pipe\crashpad_11648_ZRCTVNEIVEEDWCKR
DEBUG 2025-12-09 13:54:35,840   EDGE_METRICS_CLIENT_ID_HASH=-8580487689746786014
DEBUG 2025-12-09 13:54:35,840   EDGE_METRICS_SESSION_ID=22
DEBUG 2025-12-09 13:54:35,840   EDGE_RUNTIME_VARIATIONS_SEED_ETAG="AKUqZyhHUXDuohnQ897PbFAKTzpdl9ymel7c75hdBRg="
DEBUG 2025-12-09 13:54:35,840   EDGE_USER_DATA_DIR=C:\Users\TESTER\AppData\Local\Microsoft\Edge\User Data
DEBUG 2025-12-09 13:54:35,840   EDGE_UX_CONFIG_CORRELATION_ID=47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=
DEBUG 2025-12-09 13:54:35,840   EDGE_VARIATIONS_SEED_ETAG="vaTAXTvuXwLB8roOtuZCPsOijBUGMTz8H8G/A9HJ064="
DEBUG 2025-12-09 13:54:35,840   FPS_BROWSER_APP_PROFILE_STRING=Internet Explorer
DEBUG 2025-12-09 13:54:35,840   FPS_BROWSER_USER_PROFILE_STRING=Default
DEBUG 2025-12-09 13:54:35,840   HOMEDRIVE=C:
DEBUG 2025-12-09 13:54:35,840   HOMEPATH=\Users\TESTER
DEBUG 2025-12-09 13:54:35,840   LOCALAPPDATA=C:\Users\TESTER\AppData\Local
DEBUG 2025-12-09 13:54:35,840   LOGONSERVER=\\SERVER-TEST
DEBUG 2025-12-09 13:54:35,840   NUMBER_OF_PROCESSORS=3
DEBUG 2025-12-09 13:54:35,840   NWLANGUAGE=RUSSKI
DEBUG 2025-12-09 13:54:35,840   NWUSERNAME=student
DEBUG 2025-12-09 13:54:35,840   ONEDRIVE=C:\Users\TESTER\OneDrive
DEBUG 2025-12-09 13:54:35,840   ONEDRIVECONSUMER=C:\Users\TESTER\OneDrive
DEBUG 2025-12-09 13:54:35,840   OS=Windows_NT
DEBUG 2025-12-09 13:54:35,840   PATH=C:\Users\TESTER\AppData\Local\Temp\_MEI95402\PySide6;C:\Users\TESTER~1\AppData\Local\Temp\_MEI95402;C:\Program Files (x86)\Microsoft\Edge\Application;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Users\TESTER\AppData\Local\Microsoft\WindowsApps;Y:.;
DEBUG 2025-12-09 13:54:35,840   PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
DEBUG 2025-12-09 13:54:35,841   PROCESSOR_ARCHITECTURE=AMD64
DEBUG 2025-12-09 13:54:35,841   PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 165 Stepping 3, GenuineIntel
DEBUG 2025-12-09 13:54:35,841   PROCESSOR_LEVEL=6
DEBUG 2025-12-09 13:54:35,841   PROCESSOR_REVISION=a503
DEBUG 2025-12-09 13:54:35,841   PROGRAMDATA=C:\ProgramData
DEBUG 2025-12-09 13:54:35,841   PROGRAMFILES=C:\Program Files
DEBUG 2025-12-09 13:54:35,841   PROGRAMFILES(X86)=C:\Program Files (x86)
DEBUG 2025-12-09 13:54:35,841   PROGRAMW6432=C:\Program Files
DEBUG 2025-12-09 13:54:35,841   PSMODULEPATH=C:\Program Files\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules
DEBUG 2025-12-09 13:54:35,841   PUBLIC=C:\Users\Public
DEBUG 2025-12-09 13:54:35,841   SESSIONNAME=Console
DEBUG 2025-12-09 13:54:35,841   SYSTEMDRIVE=C:
DEBUG 2025-12-09 13:54:35,841   SYSTEMROOT=C:\Windows
DEBUG 2025-12-09 13:54:35,841   TEMP=C:\Users\TESTER~1\AppData\Local\Temp
DEBUG 2025-12-09 13:54:35,841   TMP=C:\Users\TESTER~1\AppData\Local\Temp
DEBUG 2025-12-09 13:54:35,841   USERDNSDOMAIN=TEST.DOMAIN
DEBUG 2025-12-09 13:54:35,841   USERDOMAIN=TEST
DEBUG 2025-12-09 13:54:35,841   USERDOMAIN_ROAMINGPROFILE=TEST
DEBUG 2025-12-09 13:54:35,841   USERNAME=TESTER
DEBUG 2025-12-09 13:54:35,841   USERPROFILE=C:\Users\TESTER
DEBUG 2025-12-09 13:54:35,841   WINDIR=C:\Windows
DEBUG 2025-12-09 13:54:35,841   WINDOWS_LOGIN=0
DEBUG 2025-12-09 13:54:35,842   _PYI_APPLICATION_HOME_DIR=C:\Users\TESTER~1\AppData\Local\Temp\_MEI95402
DEBUG 2025-12-09 13:54:35,842   _PYI_ARCHIVE_FILE=C:\Program Files (x86)\UDSClient\UDSClient.exe
DEBUG 2025-12-09 13:54:35,842   _PYI_PARENT_PROCESS_LEVEL=1
DEBUG 2025-12-09 13:54:35,842   QT_PLUGIN_PATH=C:\Users\TESTER~1\AppData\Local\Temp\_MEI95402\PySide6\plugins
DEBUG 2025-12-09 13:54:35,842   QML2_IMPORT_PATH=C:\Users\TESTER~1\AppData\Local\Temp\_MEI95402\PySide6\qml
DEBUG 2025-12-09 13:54:35,842   PYSIDE6_OPTION_PYTHON_ENUM=True
DEBUG 2025-12-09 13:54:35,842 Python path: ['C:\\Users\\TESTER~1\\AppData\\Local\\Temp\\_MEI95402\\base_library.zip', 'C:\\Users\\TESTER~1\\AppData\\Local\\Temp\\_MEI95402\\python3.13\\lib-dynload', 'C:\\Users\\TESTER~1\\AppData\\Local\\Temp\\_MEI95402']
DEBUG 2025-12-09 13:54:35,842 Python executable: C:\Program Files (x86)\UDSClient\UDSClient.exe
DEBUG 2025-12-09 13:54:35,842 Python version: 3.13.7 (tags/v3.13.7:bcee1c3, Aug 14 2025, 14:15:11) [MSC v.1944 64 bit (AMD64)]
DEBUG 2025-12-09 13:54:35,842 Python version info: sys.version_info(major=3, minor=13, micro=7, releaselevel='final', serial=0)
DEBUG 2025-12-09 13:54:35,842 Python prefix: C:\Users\TESTER~1\AppData\Local\Temp\_MEI95402
DEBUG 2025-12-09 13:54:35,842 Python base prefix: C:\Users\TESTER~1\AppData\Local\Temp\_MEI95402
DEBUG 2025-12-09 13:54:35,842 Python executable: C:\Program Files (x86)\UDSClient\UDSClient.exe
DEBUG 2025-12-09 13:54:35,842 Python argv: ['C:\\Program Files (x86)\\UDSClient\\UDSClient.exe', 'udss://***.***.***.***/cg92prwtrv2wr7bceyt3lquui97dn1feshuecrsz/5VXhHVyUjD3HA8Exr1MR1Br56lXK7Nwu']
DEBUG 2025-12-09 13:54:35,842 Python modules path: ['C:\\Users\\TESTER~1\\AppData\\Local\\Temp\\_MEI95402\\base_library.zip', 'C:\\Users\\TESTER~1\\AppData\\Local\\Temp\\_MEI95402\\python3.13\\lib-dynload', 'C:\\Users\\TESTER~1\\AppData\\Local\\Temp\\_MEI95402']
DEBUG 2025-12-09 13:54:35,842 Python modules importer cache path: {'C:\\Users\\TESTER~1\\AppData\\Local\\Temp\\_MEI95402\\base_library.zip': <zipimporter object "C:\Users\TESTER~1\AppData\Local\Temp\_MEI95402\base_library.zip\">, 'C:\\Users\\TESTER~1\\AppData\\Local\\Temp\\_MEI95402\\base_library.zip\\encodings': <zipimporter object "C:\Users\TESTER~1\AppData\Local\Temp\_MEI95402\base_library.zip\encodings\">, 'C:\\Users\\TESTER~1\\AppData\\Local\\Temp\\_MEI95402\\python3.13\\lib-dynload': PyiFrozenFinder(C:\Users\TESTER~1\AppData\Local\Temp\_MEI95402\python3.13\lib-dynload), 'C:\\Users\\TESTER~1\\AppData\\Local\\Temp\\_MEI95402': PyiFrozenFinder(C:\Users\TESTER~1\AppData\Local\Temp\_MEI95402), 'C:\\Users\\TESTER~1\\AppData\\Local\\Temp\\_MEI95402\\ctypes': PyiFrozenFinder(C:\Users\TESTER~1\AppData\Local\Temp\_MEI95402\ctypes), 'C:\\Users\\TESTER~1\\AppData\\Local\\Temp\\_MEI95402\\base_library.zip\\re': <zipimporter object "C:\Users\TESTER~1\AppData\Local\Temp\_MEI95402\base_library.zip\re\">, 'C:\\Users\\TESTER~1\\AppData\\Local\\Temp\\_MEI95402\\importlib': PyiFrozenFinder(C:\Users\TESTER~1\AppData\Local\Temp\_MEI95402\importlib), 'C:\\Users\\TESTER~1\\AppData\\Local\\Temp\\_MEI95402\\zipfile': PyiFrozenFinder(C:\Users\TESTER~1\AppData\Local\Temp\_MEI95402\zipfile), 'C:\\Users\\TESTER~1\\AppData\\Local\\Temp\\_MEI95402\\pathlib': PyiFrozenFinder(C:\Users\TESTER~1\AppData\Local\Temp\_MEI95402\pathlib), 'C:\\Users\\TESTER~1\\AppData\\Local\\Temp\\_MEI95402\\zipfile\\_path': PyiFrozenFinder(C:\Users\TESTER~1\AppData\Local\Temp\_MEI95402\zipfile\_path), 'C:\\Users\\TESTER~1\\AppData\\Local\\Temp\\_MEI95402\\_pyi_rth_utils': PyiFrozenFinder(C:\Users\TESTER~1\AppData\Local\Temp\_MEI95402\_pyi_rth_utils), 'C:\\Users\\TESTER~1\\AppData\\Local\\Temp\\_MEI95402\\shiboken6': PyiFrozenFinder(C:\Users\TESTER~1\AppData\Local\Temp\_MEI95402\shiboken6), 'C:\\Users\\TESTER~1\\AppData\\Local\\Temp\\_MEI95402\\PySide6': PyiFrozenFinder(C:\Users\TESTER~1\AppData\Local\Temp\_MEI95402\PySide6), 'C:\\Users\\TESTER~1\\AppData\\Local\\Temp\\_MEI95402\\PySide6\\support': PyiFrozenFinder(C:\Users\TESTER~1\AppData\Local\Temp\_MEI95402\PySide6\support), 'C:\\Users\\TESTER~1\\AppData\\Local\\Temp\\_MEI95402\\urllib': PyiFrozenFinder(C:\Users\TESTER~1\AppData\Local\Temp\_MEI95402\urllib), 'C:\\Users\\TESTER~1\\AppData\\Local\\Temp\\_MEI95402\\uds': PyiFrozenFinder(C:\Users\TESTER~1\AppData\Local\Temp\_MEI95402\uds), 'C:\\Users\\TESTER~1\\AppData\\Local\\Temp\\_MEI95402\\uds\\ui': PyiFrozenFinder(C:\Users\TESTER~1\AppData\Local\Temp\_MEI95402\uds\ui), 'C:\\Users\\TESTER~1\\AppData\\Local\\Temp\\_MEI95402\\uds\\ui\\pyside6': PyiFrozenFinder(C:\Users\TESTER~1\AppData\Local\Temp\_MEI95402\uds\ui\pyside6), 'C:\\Users\\TESTER~1\\AppData\\Local\\Temp\\_MEI95402\\json': PyiFrozenFinder(C:\Users\TESTER~1\AppData\Local\Temp\_MEI95402\json), 'C:\\Users\\TESTER~1\\AppData\\Local\\Temp\\_MEI95402\\http': PyiFrozenFinder(C:\Users\TESTER~1\AppData\Local\Temp\_MEI95402\http), 'C:\\Users\\TESTER~1\\AppData\\Local\\Temp\\_MEI95402\\email': PyiFrozenFinder(C:\Users\TESTER~1\AppData\Local\Temp\_MEI95402\email), 'C:\\Users\\TESTER~1\\AppData\\Local\\Temp\\_MEI95402\\cryptography': PyiFrozenFinder(C:\Users\TESTER~1\AppData\Local\Temp\_MEI95402\cryptography), 'C:\\Users\\TESTER~1\\AppData\\Local\\Temp\\_MEI95402\\cryptography\\x509': PyiFrozenFinder(C:\Users\TESTER~1\AppData\Local\Temp\_MEI95402\cryptography\x509), 'C:\\Users\\TESTER~1\\AppData\\Local\\Temp\\_MEI95402\\cryptography\\hazmat': PyiFrozenFinder(C:\Users\TESTER~1\AppData\Local\Temp\_MEI95402\cryptography\hazmat), 'C:\\Users\\TESTER~1\\AppData\\Local\\Temp\\_MEI95402\\cryptography\\hazmat\\bindings': PyiFrozenFinder(C:\Users\TESTER~1\AppData\Local\Temp\_MEI95402\cryptography\hazmat\bindings), 'C:\\Users\\TESTER~1\\AppData\\Local\\Temp\\_MEI95402\\cryptography\\hazmat\\primitives': PyiFrozenFinder(C:\Users\TESTER~1\AppData\Local\Temp\_MEI95402\cryptography\hazmat\primitives), 'C:\\Users\\TESTER~1\\AppData\\Local\\Temp\\_MEI95402\\cryptography\\hazmat\\primitives\\asymmetric': PyiFrozenFinder(C:\Users\TESTER~1\AppData\Local\Temp\_MEI95402\cryptography\hazmat\primitives\asymmetric), 'C:\\Users\\TESTER~1\\AppData\\Local\\Temp\\_MEI95402\\cryptography\\hazmat\\primitives\\serialization': PyiFrozenFinder(C:\Users\TESTER~1\AppData\Local\Temp\_MEI95402\cryptography\hazmat\primitives\serialization), 'C:\\Users\\TESTER~1\\AppData\\Local\\Temp\\_MEI95402\\cryptography\\hazmat\\primitives\\ciphers': PyiFrozenFinder(C:\Users\TESTER~1\AppData\Local\Temp\_MEI95402\cryptography\hazmat\primitives\ciphers), 'C:\\Users\\TESTER~1\\AppData\\Local\\Temp\\_MEI95402\\cryptography\\hazmat\\decrepit': PyiFrozenFinder(C:\Users\TESTER~1\AppData\Local\Temp\_MEI95402\cryptography\hazmat\decrepit), 'C:\\Users\\TESTER~1\\AppData\\Local\\Temp\\_MEI95402\\cryptography\\hazmat\\decrepit\\ciphers': PyiFrozenFinder(C:\Users\TESTER~1\AppData\Local\Temp\_MEI95402\cryptography\hazmat\decrepit\ciphers), 'C:\\Users\\TESTER~1\\AppData\\Local\\Temp\\_MEI95402\\certifi': PyiFrozenFinder(C:\Users\TESTER~1\AppData\Local\Temp\_MEI95402\certifi), 'C:\\Users\\TESTER~1\\AppData\\Local\\Temp\\_MEI95402\\importlib\\resources': PyiFrozenFinder(C:\Users\TESTER~1\AppData\Local\Temp\_MEI95402\importlib\resources), 'C:\\Users\\TESTER~1\\AppData\\Local\\Temp\\_MEI95402\\psutil': PyiFrozenFinder(C:\Users\TESTER~1\AppData\Local\Temp\_MEI95402\psutil)}
DEBUG 2025-12-09 13:54:35,843 Python modules hooks path: [<class 'zipimport.zipimporter'>, <bound method PyiFrozenFinder.path_hook of <class 'pyimod02_importers.PyiFrozenFinder'>>, <function FileFinder.path_hook.<locals>.path_hook_for_FileFinder at 0x00000201418509A0>]
DEBUG 2025-12-09 13:54:35,843 Python modules meta path: [<class '_frozen_importlib.BuiltinImporter'>, <class '_frozen_importlib.FrozenImporter'>, <class '_frozen_importlib_external.PathFinder'>]
DEBUG 2025-12-09 13:54:35,884 Initializing connector for win32(AMD64)
DEBUG 2025-12-09 13:54:35,885 Arguments: ['C:\\Program Files (x86)\\UDSClient\\UDSClient.exe', 'udss://***.***.***.***/abcdefgh/abcdefgh']
DEBUG 2025-12-09 13:54:35,885 Mac OS *NOT* Detected
DEBUG 2025-12-09 13:54:35,894 Setting request URL to https://***.***.***.***/uds/rest/client
DEBUG 2025-12-09 13:54:35,894 Starting execution
INFO 2025-12-09 13:54:36,639 Hostname: windows10-DEBUGGER-MACHINE
DEBUG 2025-12-09 13:54:38,192 Transport data received
ERROR 2025-12-09 13:54:38,209 Get Transport Data
Traceback (most recent call last):
  File "UDSClient.py", line 172, in fetch_transport_data
  File "<string>", line 19, in <module>
  File "uds\tools.py", line 116, in find_application
  File "<frozen ntpath>", line 100, in join
TypeError: expected str, bytes or os.PathLike object, not tuple
ERROR 2025-12-09 13:54:38,210 Error: expected str, bytes or os.PathLike object, not tuple
DEBUG 2025-12-09 13:54:39,951 ** Remote log data: , 0
DEBUG 2025-12-09 13:54:39,952 Main execution finished correctly: 0
DEBUG 2025-12-09 13:54:39,952 Exiting