You are not logged in.
I'm using a unitfile to automatically start xfce on a tty. When using gdk-pixbuf2 > 2.42.12-2, xfce crashes on startup.
Minimal repro:
[Unit]
After=graphical.target
[Service]
User=test
WorkingDirectory=/home/test
PAMName=login
Environment=XDG_SESSION_TYPE=x11
TTYPath=/dev/tty8
StandardInput=tty
UtmpIdentifier=tty8
UtmpMode=user
ExecStartPre=/usr/bin/chvt 8
ExecStart=/usr/bin/startxfce4 -- vt8 -keeptty
Restart=noYou can find a thread related to such a unit file here: https://forum.archlinux.de/d/34830-auto … und-startx
Changing to
ExecStart=/usr/bin/startx xfwm4 -- vt8 -keepttyruns, but still causes a few coredumps and doesn't seem usable.
List of crashing programs (possibly non-exhaustive):
tumblerd
xfdesktop
xfce4-panel
xfce4-sessionDowngrading to e.g. gdk-pixbuf2 = 2.42.12-2 makes this work again. I've also noticed that omitting
PAMName=loginmakes it start up, but you can't interact with it (will lead to freeze).
Can you repro this as well? Do you think I misconfigured the environment (maybe glycin is missing something or can't access something) or is this a bug?
Directly running
startxfce4in the tty works fine.
Offline
Changing to
ExecStart=/usr/bin/startx xfwm4 -- vt8 -keeptty
runs
Your original approach likely breaks logind integration, make sure to have the startxfce4 script source /etc/X11/xinit/xinitrc.d/50-systemd-user.sh
Do you have coredumps for the crashing processes?
https://wiki.archlinux.org/title/Core_d … _core_dump
Edit: if that's not it, check system journal and .xsession-errors for possible explanations for your failing startxfce runs.
Last edited by seth (2025-10-24 08:48:27)
Offline
Hi,
I've tried to use
ExecStart=/usr/bin/startx -- vt8 -keepttyand put
/etc/X11/xinit/xinitrc.d/50-systemd-user.sh &
startxfce4into the user's .xinitrc - should that be sufficient?
The result seems to be unchanged.
Here is a stack trace of xfce4-panel: https://termbin.com/tj36
And of xfce4-session: https://termbin.com/lhn3
xfce4-session seems to crash first. Before that happens there are lines about tumblerd complaining about not being able to lead plugins (no such file or directory):
tumbler-raw-thumbnail.so
tumbler-odf-thumbnailer.so
tumbler-gepub-thumbnailer.so
(some more)
tumbler was also crashing before, but didn't this time - previously I disabled all plugins to see if they are the problem.
(I've tried to disable tumbler enough to stop to trying to load the plugins, but I had no success.
But I've just confirmed the above on a fresh install.)
Offline
. /etc/X11/xinit/xinitrc.d/50-systemd-user.sh
startxfce4If xfce4-session crashes the rest will just crash because the session and X11 server are gone.
#0 0x00007fa36209894c n/a (libc.so.6 + 0x9894c)
#1 0x00007fa36203e410 raise (libc.so.6 + 0x3e410)
#2 0x00007fa36202557a abort (libc.so.6 + 0x2557a)
#3 0x00007fa362358111 n/a (libglib-2.0.so.0 + 0x1e111)
#4 0x00007fa3623ccf19 g_assertion_message_expr (libglib-2.0.so.0 + 0x92f19)
#5 0x00007fa363122bbf n/a (libwnck-3.so.0 + 0x29bbf)
#6 0x00007fa363124308 n/a (libwnck-3.so.0 + 0x2b308)
#7 0x00007fa3631268e6 n/a (libwnck-3.so.0 + 0x2d8e6)
#8 0x00007fa363128177 n/a (libwnck-3.so.0 + 0x2f177)
#9 0x00007fa363110998 n/a (libwnck-3.so.0 + 0x17998)
#10 0x00007fa363112ad8 n/a (libwnck-3.so.0 + 0x19ad8)
#11 0x00007fa362398f8d n/a (libglib-2.0.so.0 + 0x5ef8d)
#12 0x00007fa36239a657 n/a (libglib-2.0.so.0 + 0x60657)
#13 0x00007fa36239aa17 g_main_loop_run (libglib-2.0.so.0 + 0x60a17)
#14 0x00007fa362b6bc0f gtk_main (libgtk-3.so.0 + 0x36bc0f)
#15 0x00005586b903f213 main (/usr/bin/xfce4-session + 0x11213)
#16 0x00007fa362027675 n/a (libc.so.6 + 0x27675)
#17 0x00007fa362027729 __libc_start_main (libc.so.6 + 0x27729)
#18 0x00005586b903f4f5 _start (/usr/bin/xfce4-session + 0x114f5)and it aborts on an assertion
. /etc/X11/xinit/xinitrc.d/50-systemd-user.sh
xtermAnd then run "startxfce4" in the xterm.
Also check "printenv" because you might lack some variables you otherwise export in your shell rc?
Offline
Xterm does make it easier to see the error (I've seen it before while testing this):
/usr/bin/startxfce4: X server already running on display :0
Another Window Manager (Xfwm4) is already running on screen :0.0
To replace the current window manager, try "--replace"
Bail out! Wnck:ERROR:../libwnck/libwnck/xutils.c:1510:default_icon_at_size: assertion failed: (base)
Bail out! Gtk:ERROR:../gtk/gtk/gtkiconhelper.c:495:ensure_surface_for_gicon: assertion failed (error == NULL): Failed to load /usr/share/icons/elementary/status/24/image-missing.svg: Loader process exited early with status '1'Command: "bwrap" "--unshare-all" "--die-with-parent" "--chdir" "/" "--ro-bind" "/usr" "/usr" "--dev" "/dev" "--ro-bind-try" "/etc/ld.so.cache" "/etc/ld.so.cache" "--ro-bind-try" "/nix/store" "/nix/store" "--tmpfs" "/tmp-home" "--tmpfs" "/tmp-run" "--clearenv" "--setenv" "HOME" "/tmp-home" "--setenv" "XDG_RUNTIME_DIR" "/tmp-run" "--setenv" "XDG_RUNTIME_DIR" "/run/user/1000" "--symlink" "/usr/lib" "/lib64" "--symlink" "/usr/lib" "/lib" "--ro-bind-try" "/etc/fonts/conf.d" "/etc/fonts/conf.d" "--ro-bind-try" "/etc/fonts/fonts.conf" "/etc/fonts/fonts.conf" "--ro-bind-try" "/home/test/.cache/fontconfig" "/home/test/.cache/fontconfig" "--ro-bind-try" "/var/cache/fontconfig" "/var/cache/fontconfig" "--bind-try" "/home/test/.cache/glycin/usr/lib/glycin-loaders/2+/glycin-svg" "/home/test/.cache/glycin/usr/lib/glycin-loaders/2+/glycin-svg" "--setenv" "XDG_CACHE_HOME" "/home/test/.cache/glycin/usr/lib/glycin-loaders/2+/glycin-svg" "--seccomp" "21" "/usr/lib/glycin-loaders/2+/glycin-svg" "--dbus-fd" "20" (gdk-pixbuf-error-quark, 0) Also, here is the stderr:
(xfce4-session:2141): xfce4-session-WARNING **: 20:23:08.588: No SSH authentication agent found
gpg-agent: a gpg-agent is already running - not starting a new one
(xfwm4:2170): xfwm4-WARNING **: 20:23:08.639: Could not find a screen to manage, exiting
(xfce4-panel:2180): Gtk-WARNING **: 20:23:08.769: Could not load a pixbuf from icon theme.
This may indicate that pixbuf loaders or the mime database could not be found.
**
Wnck:ERROR:../libwnck/libwnck/xutils.c:1510:default_icon_at_size: assertion failed: (base)
(xfce4-panel:2180): libxfce4ui-WARNING **: 20:23:09.011: ICE I/O Error
(xfce4-panel:2180): libxfce4ui-WARNING **: 20:23:09.011: Disconnected from session manager.
(xfce4-panel:2180): Gtk-WARNING **: 20:23:09.033: Invalid icon size 16
**
Gtk:ERROR:../gtk/gtk/gtkiconhelper.c:495:ensure_surface_for_gicon: assertion failed (error == NULL): Failed to load /usr/share/icons/elementary/status/24/image-missing.svg: Loader process exited early with status '1'Command:
"bwrap" "--unshare-all" "--die-with-parent" "--chdir" "/" "--ro-bind" "/usr" "/usr" "--dev" "/dev" "--ro-bind-try" "/etc/ld.so.cache" "/etc/ld.so.cache" "--ro-bind-try" "/nix/store" "/nix/store" "--tmpfs" "/tmp-home" "--tmpfs" "/tmp-run" "--clearenv" "--setenv" "HOME" "/tmp-home" "--setenv" "XDG_RUNTIME_DIR" "/tmp-run" "--symlink" "/usr/lib" "/lib64" "--symlink" "/usr/lib" "/lib" "--ro-bind-try" "/etc/fonts/conf.d" "/etc/fonts/conf.d" "--ro-bind-try" "/etc/fonts/fonts.conf" "/etc/fonts/fonts.conf" "--ro-bind-try" "/home/test/.cache/fontconfig" "/home/test/.cache/fontconfig" "--ro-bind-try" "/var/cache/fontconfig" "/var/cache/fontconfig" "--bind-try" "/home/test/.cache/glycin/usr/lib/glycin-loaders/2+/glycin-svg" "/home/test/.cache/glycin/usr/lib/glycin-loaders/2+/glycin-svg" "--setenv" "XDG_CACHE_HOME" "/home/test/.cache/glycin/usr/lib/glycin-loaders/2+/glycin-svg" "--seccomp" "21" "/usr/lib/glycin-loaders/2+/glycin-svg" "--dbus-fd" "20" (gdk-pixbuf-error-quark, 0)I'm pretty sure I'm not lacking something in env that I've had before - It just may be that I need something new. It works just fine when downgrading gdk-pixbuf2 ...
Seems like it can't find the pixbuf loaders even though they are in /usr/lib/glycin-loaders/2+/ or maybe it can't parse the svg that's part of xfce: /usr/share/icons/elementary/status/24/image-missing.svg
I've tried to delete the svg, but it still crashes while mentioning "Invalid icon size 16" (and no such file or directory).
Last edited by tectux (2025-10-24 20:30:41)
Offline
/usr/bin/startxfce4: X server already running on display :0
Another Window Manager (Xfwm4) is already running on screen :0.0How does that happen?
So loading the image fails, let's say because glycin is stupid or you don't have the icon or it's bogus - why would that result in xfce4-session to abort?
Also the glycin error comes after the xfce4-session (?) assertion?
Don't run the script, but just "xfce4-session"
Offline
/usr/bin/startxfce4: X server already running on display :0 Another Window Manager (Xfwm4) is already running on screen :0.0How does that happen?
heh, probably by running startxfce4 multiple times (not related to error, I think). I've rebooted before running xfce4-session in xterm:
xfce4-session &> session.log
Aborted (core dumped)
why would that result in xfce4-session to abort?
Also the glycin error comes after the xfce4-session (?) assertion?
not sure. Maybe xfce4-session can't handle the image loader refusing to return any data (because of a panic?) instead of e.g. an error and crashes too?
The weird part is that it works normally when running startxfce4 in a tty without a unit file.
Somehow it's losing the ability to load the loaders. Perhaps it's bwrap that can't deal with the environment...
I also tried to run the bwrap command.
Inside the unitfile (xterm), I get:
bwrap: Unexped capabilties but not setuid, old file caps config?In a plain tty, I get (I have no open fd to offer, so that may be expected):
bwrap: Can't read seccomp data: Bad file desciptorI've also tried to compare the caps, but
cat /proc/<PID>/status | grep Cap
capsh --decode=[...]seem to indicate that there is no difference in caps (of the pids) ...
Last edited by tectux (2025-10-24 22:37:54)
Offline
I seem to have found the problem:
https://gitlab.postmarketos.org/postmar … ssues/3868
With
ExecStart=/usr/bin/setpriv --ambient-caps="-all" /usr/bin/startxfce4 -- vt8 -keepttyEverything seems to work again. Not sure if it's a bug, but it's a new problem which may affect other software started by a unitfile as well.
Instead of setpriv, this seems to work as well:
CapabilityBoundingSet=
AmbientCapabilities=Offline
seth wrote:why would that result in xfce4-session to abort?
Also the glycin error comes after the xfce4-session (?) assertion?not sure. Maybe xfce4-session can't handle the image loader refusing to return any data (because of a panic?) instead of e.g. an error and crashes too?
No, the program simply aborts because that is what it is instructed to do in libwnck when loading the pixbuf fails: https://gitlab.gnome.org/GNOME/libwnck/ … ls.c#L1510
Xfce dev: https://gravatar.com/gaelbonithon
Offline
[Edit: for gdk-pixbuf2-noglycin]
https://bbs.archlinux.org/viewtopic.php … 4#p2269344
Problem seems librsvg…
Last edited by seth (2025-10-25 15:15:41)
Offline
tectux wrote:seth wrote:why would that result in xfce4-session to abort?
Also the glycin error comes after the xfce4-session (?) assertion?not sure. Maybe xfce4-session can't handle the image loader refusing to return any data (because of a panic?) instead of e.g. an error and crashes too?
No, the program simply aborts because that is what it is instructed to do in libwnck when loading the pixbuf fails: https://gitlab.gnome.org/GNOME/libwnck/ … ls.c#L1510
Ok, that makes sense. But pixbuf fails because bwrap fails. Making bwrap happy made it work for me.
Offline