| Summary: | systemd related commit breaks exporting env vars | ||
|---|---|---|---|
| Product: | [Plasma] plasmashell | Reporter: | Ahmad Samir <a.samirh78> |
| Component: | general | Assignee: | David Edmundson <kde> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | CC: | faure, henri, kde, kdelibs-bugs-null, nate, plasma-bugs-null |
| Priority: | VHI | Keywords: | regression |
| Version First Reported In: | master | ||
| Target Milestone: | 1.0 | ||
| Platform: | Other | ||
| OS: | Linux | ||
| Latest Commit: | https://invent.kde.org/plasma/plasma-workspace/-/commit/875bcf1918381873f11eaa286ee3e8780c069676 | Version Fixed/Implemented In: | |
| Sentry Crash Report: | |||
| Attachments: | output of env | ||
|
Description
Ahmad Samir
2020-08-12 12:41:57 UTC
What's happening is we're now relying on systemd to the launching which should fix some other bugs, but that relies on systemd having the right environment. A quite major bug means that calling dbus-update-activation-environment --all --systemd Fails if any one var contains the symbol \033 This should be worked around with: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/198 OK, I'll test that and report back. (And systemd... is just weird). Thanks :) Can confirm. For example this broke GDK_* env vars which causes GTK-based software to be tiny on high DPI setups. I built plasma-workspace from git master, with the change from MR 198 included, and still hit this issue. (The hack I mentioned in the OP still works though). Note that, AFAICS, the issue doesn't happen when I log in to "plasma (full wayland)" session. Can I see the output of: qdbus org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager.Environment dbus-update-activation-environment --all --systemd from a terminal to make sure we're talking the same bug? $ qdbus-qt5 org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager.Environment DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus HOME=/home/ahmad LANG=en_US.UTF-8 LOGNAME=ahmad PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin SHELL=/bin/bash USER=ahmad XDG_RUNTIME_DIR=/run/user/1000 DISPLAY=:0 GTK2_RC_FILES=/etc/gtk-2.0/gtkrc:/home/ahmad/.gtkrc-2.0:/home/ahmad/.config/gtkrc-2.0 GTK_RC_FILES=/etc/gtk/gtkrc:/home/ahmad/.gtkrc:/home/ahmad/.config/gtkrc XAUTHORITY=/run/user/1000/xauth_FbfOei XCURSOR_SIZE=36 XCURSOR_THEME=breeze_cursors $ dbus-update-activation-environment --all --systemd --verbose dbus-update-activation-environment: setting SHELL=/bin/bash dbus-update-activation-environment: setting WINDOWID=83886087 dbus-update-activation-environment: setting COLORTERM=truecolor dbus-update-activation-environment: setting LANGUAGE= dbus-update-activation-environment: setting SHELL_SESSION_ID=bfa26dfc07b24a3aa600ba5435046206 dbus-update-activation-environment: setting GTK_RC_FILES=/etc/gtk/gtkrc:/home/ahmad/.gtkrc:/home/ahmad/.config/gtkrc dbus-update-activation-environment: setting XCURSOR_SIZE=36 dbus-update-activation-environment: setting GPG_TTY=/dev/pts/1 dbus-update-activation-environment: setting PWD=/home/ahmad dbus-update-activation-environment: setting LOGNAME=ahmad dbus-update-activation-environment: setting XAUTHORITY=/run/user/1000/xauth_FbfOei dbus-update-activation-environment: setting LS_OPTIONS=-N --color=tty -T 0 dbus-update-activation-environment: setting GTK2_RC_FILES=/etc/gtk-2.0/gtkrc:/home/ahmad/.gtkrc-2.0:/home/ahmad/.config/gtkrc-2.0 dbus-update-activation-environment: setting HOME=/home/ahmad dbus-update-activation-environment: setting LANG=en_US.UTF-8 dbus-update-activation-environment: setting KONSOLE_DBUS_SERVICE=:1.90 dbus-update-activation-environment: setting KONSOLE_DBUS_SESSION=/Sessions/1 dbus-update-activation-environment: setting PROFILEHOME= dbus-update-activation-environment: setting INVOCATION_ID=445e69f49d394213958a6722dc3c5d13 dbus-update-activation-environment: setting KONSOLE_VERSION=200403 dbus-update-activation-environment: setting MANAGERPID=3763 dbus-update-activation-environment: setting TERM=xterm-256color dbus-update-activation-environment: setting USER=ahmad dbus-update-activation-environment: setting COLORFGBG=15;0 dbus-update-activation-environment: setting DISPLAY=:0 dbus-update-activation-environment: setting SHLVL=1 dbus-update-activation-environment: setting XDG_RUNTIME_DIR=/run/user/1000 dbus-update-activation-environment: setting JOURNAL_STREAM=8:76101 dbus-update-activation-environment: setting XCURSOR_THEME=breeze_cursors dbus-update-activation-environment: setting PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin dbus-update-activation-environment: setting DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus dbus-update-activation-environment: setting KONSOLE_DBUS_WINDOW=/Windows/1 dbus-update-activation-environment: setting _=/usr/bin/dbus-update-activation-environment That ^ was when stuff are broken. Now with the isAvailable() hack from the OP, and stuff working properly:
$ qdbus-qt5 org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager.Environment
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
HOME=/home/ahmad
LANG=en_US.UTF-8
LOGNAME=ahmad
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
SHELL=/bin/bash
USER=ahmad
XDG_RUNTIME_DIR=/run/user/1000
COLORFGBG=15;0
COLORTERM=truecolor
DISPLAY=:0
GPG_TTY=/dev/pts/1
GTK2_RC_FILES=/etc/gtk-2.0/gtkrc:/home/ahmad/.gtkrc-2.0:/home/ahmad/.config/gtkrc-2.0
GTK_RC_FILES=/etc/gtk/gtkrc:/home/ahmad/.gtkrc:/home/ahmad/.config/gtkrc
KONSOLE_DBUS_SERVICE=:1.90
KONSOLE_DBUS_SESSION=/Sessions/1
KONSOLE_DBUS_WINDOW=/Windows/1
KONSOLE_VERSION=200403
LANGUAGE=
LS_OPTIONS=-N --color=tty -T 0
PROFILEHOME=
PWD=/home/ahmad
SHELL_SESSION_ID=bfa26dfc07b24a3aa600ba5435046206
SHLVL=1
TERM=xterm-256color
WINDOWID=83886087
XAUTHORITY=/run/user/1000/xauth_mWfKbR
XCURSOR_SIZE=36
XCURSOR_THEME=breeze_cursors
_=/usr/bin/dbus-update-activation-environment
$ dbus-update-activation-environment --all --systemd --verbose
dbus-update-activation-environment: setting SHELL=/bin/bash
dbus-update-activation-environment: setting SESSION_MANAGER=local/homeBox:@/tmp/.ICE-unix/21388,unix/homeBox:/tmp/.ICE-unix/21388
dbus-update-activation-environment: setting WINDOWID=37748743
dbus-update-activation-environment: setting QT_SCREEN_SCALE_FACTORS=DP1=1;HDMI1=1;HDMI2=1;HDMI3=1;VGA1=1;VIRTUAL1=1;
dbus-update-activation-environment: setting COLORTERM=truecolor
dbus-update-activation-environment: setting XDG_CONFIG_DIRS=/etc/xdg
dbus-update-activation-environment: setting LESS=-RMicJj.2
dbus-update-activation-environment: setting XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session11
dbus-update-activation-environment: setting HISTCONTROL=ignoredups:erasedups:ignorespace
dbus-update-activation-environment: setting GTK_IM_MODULE=cedilla
dbus-update-activation-environment: setting MACHTYPE=x86_64-suse-linux
dbus-update-activation-environment: setting G_BROKEN_FILENAMES=1
dbus-update-activation-environment: setting HOSTNAME=homeBox
dbus-update-activation-environment: setting HISTSIZE=50000
dbus-update-activation-environment: setting LANGUAGE=en_US:en_GB
dbus-update-activation-environment: setting FROM_HEADER=
dbus-update-activation-environment: setting MINICOM=-c on
dbus-update-activation-environment: setting FREETYPE_PROPERTIES=truetype:interpreter-version=35
dbus-update-activation-environment: setting KDE_DEBUG=1
dbus-update-activation-environment: setting JAVA_ROOT=/usr/lib64/jvm/jre-openjdk
dbus-update-activation-environment: setting JAVA_HOME=/usr/lib64/jvm/jre-openjdk
dbus-update-activation-environment: setting AUDIODRIVER=pulseaudio
dbus-update-activation-environment: setting USE_CCACHE=0
dbus-update-activation-environment: setting JRE_HOME=/usr/lib64/jvm/java-11-openjdk-11
dbus-update-activation-environment: setting INPUT_METHOD=none
dbus-update-activation-environment: setting CPU=x86_64
dbus-update-activation-environment: setting SHELL_SESSION_ID=28d2573e1a444b81a606f6e3908b63d1
dbus-update-activation-environment: setting JAVA_BINDIR=/usr/lib64/jvm/jre-openjdk/bin
dbus-update-activation-environment: setting MAN_POSIXLY_CORRECT=1
dbus-update-activation-environment: setting XMODIFIERS=@im=local
dbus-update-activation-environment: setting DESKTOP_SESSION=/usr/share/xsessions/plasma5
dbus-update-activation-environment: setting LC_MONETARY=C
dbus-update-activation-environment: setting GTK_RC_FILES=/etc/gtk/gtkrc:/home/ahmad/.gtkrc:/home/ahmad/.config/gtkrc
dbus-update-activation-environment: setting XCURSOR_SIZE=36
dbus-update-activation-environment: setting GPG_TTY=/dev/pts/0
dbus-update-activation-environment: setting EDITOR=vim
dbus-update-activation-environment: setting XDG_SEAT=seat0
dbus-update-activation-environment: setting PWD=/home/ahmad
dbus-update-activation-environment: setting QEMU_AUDIO_DRV=pa
dbus-update-activation-environment: setting XDG_SESSION_DESKTOP=KDE
dbus-update-activation-environment: setting LOGNAME=ahmad
dbus-update-activation-environment: setting XDG_SESSION_TYPE=x11
dbus-update-activation-environment: setting MANOPT=--nj
dbus-update-activation-environment: setting MANPATH=/usr/local/man:/usr/local/share/man:/usr/share/man
dbus-update-activation-environment: setting XAUTHORITY=/run/user/1000/xauth_mWfKbR
dbus-update-activation-environment: setting LS_OPTIONS=-N --color=tty -T 0
dbus-update-activation-environment: setting XKEYSYMDB=/usr/X11R6/lib/X11/XKeysymDB
dbus-update-activation-environment: setting GTK2_RC_FILES=/etc/gtk-2.0/gtkrc:/home/ahmad/.gtkrc-2.0:/home/ahmad/.config/gtkrc-2.0
dbus-update-activation-environment: setting XNLSPATH=/usr/X11R6/lib/X11/nls
dbus-update-activation-environment: setting HOME=/home/ahmad
dbus-update-activation-environment: setting LANG=en_GB.UTF-8
dbus-update-activation-environment: setting XDG_CURRENT_DESKTOP=KDE
dbus-update-activation-environment: setting KONSOLE_DBUS_SERVICE=:1.118
dbus-update-activation-environment: setting KONSOLE_DBUS_SESSION=/Sessions/1
dbus-update-activation-environment: setting PROFILEHOME=
dbus-update-activation-environment: setting OSTYPE=linux
dbus-update-activation-environment: setting XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
dbus-update-activation-environment: setting QT_IM_SWITCHER=imsw-multi
dbus-update-activation-environment: setting LESS_ADVANCED_PREPROCESSOR=no
dbus-update-activation-environment: setting KONSOLE_VERSION=200403
dbus-update-activation-environment: setting QML_DISABLE_DISTANCEFIELD=1
dbus-update-activation-environment: setting XSESSION_IS_UP=yes
dbus-update-activation-environment: setting KDE_SESSION_UID=1000
dbus-update-activation-environment: setting GEM_HOME=/home/ahmad/Blog/gems
dbus-update-activation-environment: setting PKGSYSTEM_ENABLE_FSYNC=0
dbus-update-activation-environment: setting LESSCLOSE=
dbus-update-activation-environment: setting XDG_SESSION_CLASS=user
dbus-update-activation-environment: setting TERM=xterm-256color
dbus-update-activation-environment: setting G_FILENAME_ENCODING=@locale,UTF-8,ISO-8859-15,CP1252
dbus-update-activation-environment: setting HOST=homeBox
dbus-update-activation-environment: setting LESSOPEN=
dbus-update-activation-environment: setting USER=ahmad
dbus-update-activation-environment: setting SDL_AUDIODRIVER=pulse
dbus-update-activation-environment: setting COLORFGBG=15;0
dbus-update-activation-environment: setting KDE_SESSION_VERSION=5
dbus-update-activation-environment: setting MORE=-sl
dbus-update-activation-environment: setting CSHEDIT=emacs
dbus-update-activation-environment: setting DISPLAY=:0
dbus-update-activation-environment: setting SHLVL=1
dbus-update-activation-environment: setting WINDOWMANAGER=/usr/bin/startplasma-x11
dbus-update-activation-environment: setting PAGER=less
dbus-update-activation-environment: setting QT_IM_MODULE=xim
dbus-update-activation-environment: setting SYSTEMD_PAGER=less
dbus-update-activation-environment: setting LC_MEASUREMENT=C
dbus-update-activation-environment: setting XDG_VTNR=7
dbus-update-activation-environment: setting XDG_SESSION_ID=11
dbus-update-activation-environment: setting SYSTEMD_LESS=RMiaj5c+X
dbus-update-activation-environment: setting XDG_RUNTIME_DIR=/run/user/1000
dbus-update-activation-environment: setting LC_TIME=en_GB.UTF-8
dbus-update-activation-environment: setting QT_AUTO_SCREEN_SCALE_FACTOR=0
dbus-update-activation-environment: setting LC_COLLATE=en_GB.UTF-8
dbus-update-activation-environment: setting XCURSOR_THEME=breeze_cursors
dbus-update-activation-environment: setting XDG_DATA_DIRS=/usr/local/share:/usr/share
dbus-update-activation-environment: setting KDE_FULL_SESSION=true
dbus-update-activation-environment: setting PATH=/home/ahmad/.bin:/home/ahmad/Blog/gems/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/bin:/bin
dbus-update-activation-environment: setting QT_ENABLE_HIGHDPI_SCALING=0
dbus-update-activation-environment: setting HISTFILESIZE=50000
dbus-update-activation-environment: setting DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
dbus-update-activation-environment: setting PROFILEREAD=true
dbus-update-activation-environment: setting KDE_APPLICATIONS_AS_SCOPE=1
dbus-update-activation-environment: setting MAIL=/var/spool/mail/ahmad
dbus-update-activation-environment: setting HOSTTYPE=x86_64
dbus-update-activation-environment: setting LESSKEY=/home/ahmad/.lesskey.bin
dbus-update-activation-environment: setting LC_NUMERIC=C
dbus-update-activation-environment: setting KONSOLE_DBUS_WINDOW=/Windows/1
dbus-update-activation-environment: setting BASH_FUNC_mc%%=() { . /usr/share/mc/mc-wrapper.sh
}
dbus-update-activation-environment: setting _=/usr/bin/dbus-update-activation-environment
dbus-update-activation-environment: warning: error sending to systemd: org.freedesktop.DBus.Error.InvalidArgs: Invalid environment assignments
dbus-update-activation-environment: warning: error sending to systemd: org.freedesktop.DBus.Error.InvalidArgs: Invalid environment assignments Ok, same root bug - which is good. But if you've applied my patches, potentially it's a different non-printable character messing it up? Maybe I should change my validation to be a whitelist instead of a blacklist. Can I have the output of env > someFile to try and find which one it is. Your post gave me an idea, so I ran a for loop and unset the env vars one by one and checked dbus-update-activation-environment output, it turns out un-setting XDG_RUNTIME_DIR makes the dbus command not give the warning. Looking closer it seems that deleting /run/user/<user id>/systemd/ makes dbus-update-activation-environment work. The contest of the "systemd" dir are: $ file * notify: socket private: socket units: directory $ file units/* units/invocation:at-spi-dbus-bus.service: broken symbolic link to c2ba627c3ca748859356659127411e20 units/invocation:dbus.service: broken symbolic link to 4e21c9c301ad4becbde8b93d23f5e868 units/invocation:dbus.socket: broken symbolic link to 2560e237ecd44211b10f2513018b98e7 units/invocation:pulseaudio.service: broken symbolic link to 25547a4bbe8b488ebb37ed535438c3a3 I suspect (if it's the same bug) that XDG_RUNTIME_DIR contains some unprintable character in the bye string Could I still have "env > someFile" so I can open it in a hex editor? Created attachment 130865 [details]
output of env
This is from a new user account, to rule out any custom stuff I have in my regular account (have had for too many years, with some many changes, some of which I've even forgotten I'd had).
Just to confirm that file is from a setup which hit the error when doing dbus-update-activation-environment --all --systemd? (In reply to David Edmundson from comment #12) > Just to confirm that file is from a setup which hit the error when doing > dbus-update-activation-environment --all --systemd? Yeah, same system, different user, same error. Ok. I can't see it in my hex editor. I'm going to change our validation check regardless, then ask you to retest it. Can you cherry-pick this: https://invent.kde.org/plasma/plasma-workspace/commit/ee1b939e19de2895ff04816661dc9d02492f880c and report back. Then I'll make an official MR Yeah! that works, dbus-update-activation-environment --all --systemd --verbose now doesn't print that warning/error, and all env vars are exported :) Thanks! (you saved me from spending more time trying to get qdbus to call "an array of strings" aka type="as" from the CLI, which I don't know the magic incantation of :)). Friendly ping. A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/224 |