-
Notifications
You must be signed in to change notification settings - Fork 183
[BUG] python subprocess
commands cause bash: undefined symbol: rl_trim_arg_from_keyseq
#756
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Looking at the change log between v3.1.3 which works fine and 3.1.4-pre1 that doesn't, the changes are pretty minimal: v3.1.3...v3.1.4-pre1 The only change that looks like it could've caused this is a version bump in python: efac7bc |
try to unset ld preload |
or ld library path idk |
It's also affecting my plugin:
|
Just to be ultra-sure, I have reverted the python bump commit and verified that it's indeed the cause. |
@AAGaming00 This looks more systemic to me, I don't think the fix should be in the individual plugins. I just downloaded the plugin database submodules and searched, there are several plugins potentially affected: $ grep -r "subprocess\.check" **
plugins/ts3-qs4sd/main.py: ps = subprocess.check_output(['flatpak', 'ps'], encoding='utf-8', env=self.environ)
plugins/ts3-qs4sd/main.py: ls = subprocess.check_output(['flatpak', 'list'], encoding='utf-8', env=self.environ)
plugins/memory-deck/main.py: output = subprocess.check_output(
plugins/volume-boost/main.py: output = subprocess.check_output(self.pactl_info_cmd, text=True, shell=True)
plugins/volume-boost/main.py: output = subprocess.check_output([f'{self.pactl_get_vol_cmd} {default_sink}'], text=True, shell=True)
plugins/volume-boost/main.py: output = subprocess.check_output(self.pactl_info_cmd, text=True, shell=True)
plugins/volume-boost/main.py: output = subprocess.check_output([f'{self.pactl_get_vol_cmd} {default_sink}'], text=True, shell=True)
plugins/XIVOmega/py_modules/scapy/libs/test_pyx.py: r = subprocess.check_call(["pdflatex", "--version"],
plugins/XIVOmega/py_modules/scapy/arch/linux/__init__.py: subprocess.check_call(['ip', 'link', 'add', self.ifaces[0], 'type', 'veth', 'peer', 'name', self.ifaces[1]]) # noqa: E501
plugins/XIVOmega/py_modules/scapy/arch/linux/__init__.py: subprocess.check_call(['ip', 'link', 'del', self.ifaces[0]])
plugins/XIVOmega/py_modules/scapy/arch/linux/__init__.py: subprocess.check_call(["ip", "link", "set", self.ifaces[idx], "up"]) # noqa: E501
plugins/XIVOmega/py_modules/scapy/arch/linux/__init__.py: subprocess.check_call(["ip", "link", "set", self.ifaces[idx], "down"]) # noqa: E501
plugins/moondeck/defaults/python/lib/constants.py: name = subprocess.check_output(cmd, shell=True).decode().strip()
plugins/decky-XRGaming/main.py: output = subprocess.check_output(['su', '-l', '-c', 'XDG_RUNTIME_DIR=/run/user/1000 systemctl --user is-active xr-driver', decky.DECKY_USER], stderr=subprocess.STDOUT)
plugins/decky-XRGaming/main.py: output = subprocess.check_output([decky.DECKY_USER_HOME + "/.local/bin/breezy_vulkan_verify"], stderr=subprocess.STDOUT)
plugins/decky-XRGaming/main.py: output = subprocess.check_output(["sha256sum", decky.DECKY_USER_HOME + "/.local/share/breezy_vulkan/manifest"], stderr=subprocess.STDOUT)
plugins/decky-XRGaming/main.py: subprocess.check_output([
plugins/decky-XRGaming/main.py: subprocess.check_output([decky.DECKY_USER_HOME + "/.local/bin/breezy_vulkan_uninstall"], stderr=subprocess.STDOUT, env=env_copy)
plugins/decky-XRGaming/main.py: subprocess.check_output([decky.DECKY_USER_HOME + "/.local/bin/xr_driver_uninstall"], stderr=subprocess.STDOUT, env=env_copy)
plugins/tailscale-control/main.py: output = subprocess.check_output(
plugins/tailscale-control/main.py: output = subprocess.check_output( and here's a wider check for the number of grep -r "subprocess\." ** | wc -l
374 |
try changing the version in pyproject back I don't think that'll fix it |
@AAGaming00 reverting that commit fixed it, see the comment from @FrogTheFrog above |
wtf |
Verified that #758 fixes the issue. |
@AAGaming00 from searching around, this issue seems to be caused by the readline library. I noticed in the FIXED version, the tmp directory generated for decky-loader looks like this: (deck@steamdeck _MEIpZWvui)$ ls -l
total 30956
drwxr-xr-x 2 root root 120 Mar 21 10:52 aiohttp
drwxr-xr-x 3 root root 140 Mar 21 10:52 attrs-23.2.0.dist-info
-rwxr-xr-x 1 root root 1442277 Mar 21 10:52 base_library.zip
drwxr-xr-x 2 root root 80 Mar 21 10:52 certifi
drwxr-xr-x 4 root root 80 Mar 21 10:52 decky_loader
drwxr-xr-x 2 root root 140 Mar 21 10:52 decky_loader-3.1.4rc1.post2.dev0+d8df2e5.dist-info
drwxr-xr-x 2 root root 60 Mar 21 10:52 frozenlist
-rwxr-xr-x 1 root root 74848 Mar 21 10:52 libbz2.so.1.0
-rwxr-xr-x 1 root root 4455728 Mar 21 10:52 libcrypto.so.3
drwxr-xr-x 2 root root 1060 Mar 21 10:52 lib-dynload
-rwxr-xr-x 1 root root 47688 Mar 21 10:52 libffi.so.8
-rwxr-xr-x 1 root root 170456 Mar 21 10:52 liblzma.so.5
-rwxr-xr-x 1 root root 23320912 Mar 21 10:52 libpython3.11.so.1.0
-rwxr-xr-x 1 root root 1358520 Mar 21 10:52 libsqlite3.so.0
-rwxr-xr-x 1 root root 667864 Mar 21 10:52 libssl.so.3
-rwxr-xr-x 1 root root 30936 Mar 21 10:52 libuuid.so.1
-rwxr-xr-x 1 root root 108936 Mar 21 10:52 libz.so.1
drwxr-xr-x 2 root root 60 Mar 21 10:52 markupsafe
drwxr-xr-x 2 root root 60 Mar 21 10:52 multidict
drwxr-xr-x 2 root root 60 Mar 21 10:52 propcache
drwxr-xr-x 2 root root 60 Mar 21 10:52 setproctitle
drwxr-xr-x 2 root root 60 Mar 21 10:52 yarl and in the broken version it looks like this: (deck@steamdeck _MEIcXUfHZ)$ ls -l
total 31484
drwxr-xr-x 3 root root 100 Mar 21 11:01 aiohttp
drwxr-xr-x 3 root root 140 Mar 21 11:01 attrs-25.3.0.dist-info
-rwxr-xr-x 1 root root 1442277 Mar 21 11:01 base_library.zip
drwxr-xr-x 2 root root 80 Mar 21 11:01 certifi
drwxr-xr-x 4 root root 80 Mar 21 11:01 decky_loader
drwxr-xr-x 2 root root 140 Mar 21 11:01 decky_loader-3.1.4rc1.dist-info
drwxr-xr-x 2 root root 60 Mar 21 11:01 frozenlist
-rwxr-xr-x 1 root root 74848 Mar 21 11:01 libbz2.so.1.0
-rwxr-xr-x 1 root root 4455728 Mar 21 11:01 libcrypto.so.3
drwxr-xr-x 2 root root 1100 Mar 21 11:01 lib-dynload
-rwxr-xr-x 1 root root 47688 Mar 21 11:01 libffi.so.8
-rwxr-xr-x 1 root root 170456 Mar 21 11:01 liblzma.so.5
-rwxr-xr-x 1 root root 23320912 Mar 21 11:01 libpython3.11.so.1.0
-rwxr-xr-x 1 root root 335936 Mar 21 11:01 libreadline.so.8
-rwxr-xr-x 1 root root 1358520 Mar 21 11:01 libsqlite3.so.0
-rwxr-xr-x 1 root root 667864 Mar 21 11:01 libssl.so.3
-rwxr-xr-x 1 root root 200136 Mar 21 11:01 libtinfo.so.6
-rwxr-xr-x 1 root root 30936 Mar 21 11:01 libuuid.so.1
-rwxr-xr-x 1 root root 108936 Mar 21 11:01 libz.so.1
drwxr-xr-x 2 root root 60 Mar 21 11:01 markupsafe
drwxr-xr-x 2 root root 160 Mar 21 11:01 MarkupSafe-3.0.2.dist-info
drwxr-xr-x 2 root root 60 Mar 21 11:01 multidict
drwxr-xr-x 2 root root 60 Mar 21 11:01 propcache
drwxr-xr-x 2 root root 60 Mar 21 11:01 setproctitle
drwxr-xr-x 3 root root 60 Mar 21 11:01 setuptools
drwxr-xr-x 2 root root 60 Mar 21 11:01 yarl note that |
@wheaney appreciate the info, want to clarify. Why would readline break plugins like this? Also, it could be a change we need to make to our pyinstaller setup as well. |
It appears that there are incompatibilities between some versions of bash and readline, here's another issue I found where someone mentions it, and the two linked issues provide a bunch more info on it: conda-forge/readline-feedstock#28 |
Bash version on my deck is 5.2 |
Similar: https://discourse.ardour.org/t/vst-plugin-scan-fails/108146 It looks like if the poetry update can also exclude readline or force it to a newer version (8.2, maybe) it may fix this issue. |
Verified the system version of libreadline on the deck is 8.2 |
@AAGaming00 @TrainDoctor can #758 be merged? or any other efforts to resolve this issue before this version goes to stable? |
Please confirm
Bug Report Description
I was seeing this in Steam OS
Stable
andBeta
, but only on thePrelease
decky loader channel. My plugin makes python subprocess calls like this.These subprocess calls are failing with the following output:
If I open a Python command line session and attempt the same
subprocess
call, it succeeds:This is preventing my plugin's setup script from running.
Expected Behaviour
subprocess
commands should succeed. They're not an issue in decky loader'sStable
channel.SteamOS version
3.6.24
Selected Update Channel
Prerelease
Decky Loader Version
v3.1.4-pre1
Plugin Info
PlayCount
SteamGridDB
NonSteamLaunchers (I believe this is no longer in the store)
ProtonDB Badges
XR Gaming
Have you modified the read-only filesystem at any point?
Yes, but others are reproducing this.
Backend Logs
Mar 20 14:11:17 steamdeck systemd[1]: Started SteamDeck Plugin Loader.
Mar 20 14:11:18 steamdeck PluginLoader[1080]: [main][INFO]: Starting Decky version v3.1.4-pre1
Mar 20 14:11:18 steamdeck PluginLoader[1080]: [selector_events][DEBUG]: Using selector: EpollSelector
Mar 20 14:11:18 steamdeck PluginLoader[1080]: [loader][INFO]: plugin_path: /home/deck/homebrew/plugins
Mar 20 14:11:18 steamdeck PluginLoader[1080]: [inotify_buffer][DEBUG]: in-event <InotifyEvent: src_path=b'/home/deck/homebrew/plugins', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name=''>
Mar 20 14:11:18 steamdeck PluginLoader[1080]: [inotify_buffer][DEBUG]: in-event <InotifyEvent: src_path=b'/home/deck/homebrew/plugins/playcount-decky', wd=1, mask=IN_ISDIR|IN_OPEN, cookie=0, name='playcount-decky'>
<InotifyEvent: src_path=b'/home/deck/homebrew/plugins/NonSteamLaunchers/py_modules/lib/scanners/legacy_scanner.py', wd=29, mask=IN_OPEN, cookie=0, name='legacy_scanner.py'>
Mar 20 14:11:18 steamdeck PluginLoader[1080]: [inotify_buffer][DEBUG]: in-event <InotifyEvent: src_path=b'/home/deck/homebrew/plugins/NonSteamLaunchers/py_modules/lib/get_env_vars.py', wd=12, mask=IN_OPEN, cookie=0, name='get_env_vars.py'>
Mar 20 14:11:18 steamdeck PluginLoader[1182]: Starting migration process
Mar 20 14:11:18 steamdeck PluginLoader[1182]: Service file not found: /home/deck/.config/systemd/user/nslgamescanner.service
Mar 20 14:11:18 steamdeck PluginLoader[1182]: Symlink not found: /home/deck/.config/systemd/user/default.target.wants/nslgamescanner.service
Mar 20 14:11:18 steamdeck PluginLoader[1182]: NSLGameScanner.py not found: /home/deck/.config/systemd/user/NSLGameScanner.py
Mar 20 14:11:18 steamdeck PluginLoader[1182]: No changes made, skipping daemon reload
Mar 20 14:11:18 steamdeck PluginLoader[1182]: This is _main being called
Mar 20 14:11:18 steamdeck PluginLoader[1182]: Server runner setup
Mar 20 14:11:18 steamdeck PluginLoader[1182]: Server started at http://localhost:8675
Mar 20 14:11:19 steamdeck PluginLoader[1080]: [inotify_buffer][DEBUG]: in-event <InotifyEvent: src_path=b'/home/deck/homebrew/plugins/decky-XRGaming/bin/breezy_vulkan_setup', wd=33, mask=IN_OPEN, cookie=0, name='breezy_vulkan_setup'>
Mar 20 14:11:19 steamdeck PluginLoader[1195]: Error running setup script: b'bash: symbol lookup error: bash: undefined symbol: rl_trim_arg_from_keyseq\n'
Mar 20 14:11:20 steamdeck PluginLoader[1080]: [inotify_buffer][DEBUG]: in-event <InotifyEvent: src_path=b'/home/deck/homebrew/plugins/decky-XRGaming/bin/breezy_vulkan_setup', wd=33, mask=IN_OPEN, cookie=0, name='breezy_vulkan_setup'>
Mar 20 14:11:20 steamdeck PluginLoader[1195]: Error running setup script: b'bash: symbol lookup error: bash: undefined symbol: rl_trim_arg_from_keyseq\n'
Mar 20 14:11:28 steamdeck PluginLoader[1080]: [loader][INFO]: Hot reload enabled
Mar 20 14:11:28 steamdeck PluginLoader[1080]: [main][INFO]: Loading Decky frontend!
Mar 20 14:11:31 steamdeck PluginLoader[1080]: [wsrouter][DEBUG]: Websocket connection starting
Mar 20 14:11:31 steamdeck PluginLoader[1080]: [wsrouter][DEBUG]: Websocket connection ready
Mar 20 14:11:31 steamdeck PluginLoader[1080]: [wsrouter][DEBUG]: Started PY call utilities/get_user_info ID 1
Mar 20 14:11:31 steamdeck PluginLoader[1080]: [inotify_buffer][DEBUG]: in-event <InotifyEvent: src_path=b'/home/deck/homebrew/plugins/playcount-decky/dist/index.js', wd=7, mask=IN_OPEN, cookie=0, name='index.js'>
Mar 20 14:11:31 steamdeck PluginLoader[1080]: [inotify_buffer][DEBUG]: in-event <InotifyEvent: src_path=b'/home/deck/homebrew/plugins/protondb-decky/dist/index.js', wd=30, mask=IN_OPEN, cookie=0, name='index.js'>
Mar 20 14:11:31 steamdeck PluginLoader[1080]: [inotify_buffer][DEBUG]: in-event <InotifyEvent: src_path=b'/home/deck/homebrew/plugins/decky-XRGaming/dist/index.js', wd=32, mask=IN_OPEN, cookie=0, name='index.js'>
Mar 20 14:11:31 steamdeck PluginLoader[1080]: [inotify_buffer][DEBUG]: in-event <InotifyEvent: src_path=b'/home/deck/homebrew/plugins/NonSteamLaunchers/dist/index.js', wd=10, mask=IN_OPEN, cookie=0, name='index.js'>
Mar 20 14:11:31 steamdeck PluginLoader[1080]: [inotify_buffer][DEBUG]: in-event <InotifyEvent: src_path=b'/home/deck/homebrew/plugins/decky-steamgriddb/dist/index.js', wd=36, mask=IN_OPEN, cookie=0, name='index.js'>
Mar 20 14:11:31 steamdeck PluginLoader[1080]: [wsrouter][DEBUG]: Started PY call loader/call_legacy_plugin_method ID 13
Mar 20 14:11:31 steamdeck PluginLoader[1080]: [plugin][WARNING]: Plugin SteamGridDB is using legacy method calls. This will be removed in a future release.
Mar 20 14:11:31 steamdeck PluginLoader[1080]: [wsrouter][DEBUG]: Started PY call loader/call_legacy_plugin_method ID 14
Mar 20 14:11:36 steamdeck PluginLoader[1182]: AutoScan: False
Mar 20 14:11:36 steamdeck PluginLoader[1182]: Autoscan setting is false, stopping
Mar 20 14:11:36 steamdeck PluginLoader[1182]: ::1 [20/Mar/2025:13:11:31 -0800] "GET /autoscan HTTP/1.1" 101 0 "-" "Mozilla/5.0 (X11; Linux x86_64; Valve Steam Client/Steam Deck [Steam Deck Beta]/default/0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.6478.183 Safari/537.36"
Mar 20 14:11:49 steamdeck PluginLoader[1080]: [updater][DEBUG]: checking for updates
Mar 20 14:11:49 steamdeck PluginLoader[1080]: [updater][DEBUG]: current branch: 1
Mar 20 14:11:49 steamdeck PluginLoader[1080]: [updater][DEBUG]: release type: pre-release
Mar 20 14:11:49 steamdeck PluginLoader[1080]: [updater][DEBUG]: determining release type to find, branch is 1
Mar 20 14:11:49 steamdeck PluginLoader[1080]: [updater][DEBUG]: release type: pre-release
Mar 20 14:11:49 steamdeck PluginLoader[1080]: [updater][INFO]: Updated remote version information
Mar 20 14:11:49 steamdeck PluginLoader[1080]: [wsrouter][DEBUG]: Firing frontend event loader/notify_updates with args ()
Mar 20 14:11:49 steamdeck PluginLoader[1080]: [wsrouter][DEBUG]: Started PY call updater/get_version_info ID 20
Mar 20 14:12:46 steamdeck PluginLoader[1195]: Installing breezy for plugin version 1.0.2
Mar 20 14:12:46 steamdeck PluginLoader[1080]: [inotify_buffer][DEBUG]: in-event <InotifyEvent: src_path=b'/home/deck/homebrew/plugins/decky-XRGaming/bin/breezy_vulkan_setup', wd=33, mask=IN_OPEN, cookie=0, name='breezy_vulkan_setup'>
Mar 20 14:12:46 steamdeck PluginLoader[1195]: Error running setup script: b'bash: symbol lookup error: bash: undefined symbol: rl_trim_arg_from_keyseq\n'
Mar 20 14:12:47 steamdeck PluginLoader[1080]: [wsrouter][DEBUG]: Started PY call loader/call_plugin_method ID 32
Mar 20 14:12:47 steamdeck PluginLoader[1080]: [inotify_buffer][DEBUG]: in-event <InotifyEvent: src_path=b'/home/deck/homebrew/plugins/decky-XRGaming/bin/breezy_vulkan_setup', wd=33, mask=IN_OPEN, cookie=0, name='breezy_vulkan_setup'>
Mar 20 14:12:47 steamdeck PluginLoader[1195]: Error running setup script: b'bash: symbol lookup error: bash: undefined symbol: rl_trim_arg_from_keyseq\n'
Mar 20 14:12:48 steamdeck PluginLoader[1080]: [inotify_buffer][DEBUG]: in-event <InotifyEvent: src_path=b'/home/deck/homebrew/plugins/decky-XRGaming/bin/breezy_vulkan_setup', wd=33, mask=IN_OPEN, cookie=0, name='breezy_vulkan_setup'>
Mar 20 14:12:48 steamdeck PluginLoader[1195]: Error running setup script: b'bash: symbol lookup error: bash: undefined symbol: rl_trim_arg_from_keyseq\n'
Mar 20 14:12:50 steamdeck PluginLoader[1080]: [wsrouter][DEBUG]: Started PY call loader/call_plugin_method ID 33
Mar 20 14:12:51 steamdeck PluginLoader[1080]: [wsrouter][DEBUG]: Started PY call loader/call_plugin_method ID 34
the PY call message is repeated a bunch
Frontend Logs
[0320/141125.985055:WARNING:alloy_main_delegate.cc(578)] Alloy bootstrap is deprecated and will be removed in ~M127. See chromiumembedded/cef#3685
[0320/141126.028655:INFO:crash_reporting.cc(238)] Crash reporting enabled for process: browser
[0320/141126.037259:WARNING:task_impl.cc(31)] No task runner for threadId 0
[0320/141126.039316:WARNING:task_impl.cc(31)] No task runner for threadId 0
[0320/141126.258787:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.DBus.Properties.Get: object_path= /org/freedesktop/portal/desktop: org.freedesktop.DBus.Error.InvalidArgs: No such interface “org.freedesktop.portal.FileChooser”
[0320/141126.258828:WARNING:property.cc(144)] version: GetAndBlock: failed.
[0320/141126.259094:ERROR:select_file_dialog_linux_portal.cc(287)] Failed to read portal version property
[0320/141126.263640:INFO:crash_reporting.cc(255)] Crash reporting enabled for process: gpu-process
[0320/141126.422642:WARNING:sandbox_linux.cc(430)] InitializeSandbox() called with multiple threads in process gpu-process.
[0320/141127.174596:INFO:crash_reporting.cc(238)] Crash reporting enabled for process: utility
[0320/141127.288359:INFO:crash_reporting.cc(255)] Crash reporting enabled for process: utility
[0320/141127.579965:INFO:crash_reporting.cc(255)] Crash reporting enabled for process: renderer
[0320/141129.671528:ERROR:atom_cache.cc(229)] Add STEAM_GAME to kAtomsToCache
[0320/141130.491084:ERROR:ffmpeg_common.cc(959)] Unsupported pixel format: -1
[0320/141130.533059:INFO:crash_reporting.cc(238)] Crash reporting enabled for process: utility
[0320/141201.622266:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 1 times!
[0320/141206.973556:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 2 times!
[0320/141220.196726:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 3 times!
The text was updated successfully, but these errors were encountered: