Hi Ricardo, Ricardo Wurmus <rek...@elephly.net> writes:
> Argh, it’s unfortunately incorrect. The problem here is that > “/home/bob” ends up being owned by root, which is the sole problem. > > I’m trying to find another reproducer. I think I’ve found one.
(use-modules (gnu) (gnu system nss)) (use-service-modules desktop xorg) (use-package-modules certs gdb gnome linux) (operating-system (host-name "antelope") (timezone "Europe/Paris") (locale "en_US.utf8") (keyboard-layout (keyboard-layout "us" "altgr-intl")) (bootloader (bootloader-configuration (bootloader grub-efi-bootloader) (target "/boot/efi") (keyboard-layout keyboard-layout))) (file-systems (cons (file-system (device (file-system-label "my-root")) (mount-point "/") (type "ext4")) %base-file-systems)) (users (cons (user-account (name "bob") (comment "Alice's brother") (group "users") (supplementary-groups '("wheel" "netdev" "audio" "video"))) %base-user-accounts)) (packages (append (list nss-certs gdb gvfs strace) %base-packages)) (services (append (list (service gnome-desktop-service-type) (set-xorg-configuration (xorg-configuration (keyboard-layout keyboard-layout))) (service (service-type (name 'break-gnome) (extensions (list (service-extension activation-service-type (lambda _ #~(let* ((pw (getpw "bob")) (uid (passwd:uid pw)) (gid (passwd:gid pw))) (mkdir-p "/home/bob/.local/share/gnome-shell") (chown "/home/bob" uid gid) (chown "/home/bob/.local" uid gid) (chown "/home/bob/.local/share" uid gid) (chown "/home/bob/.local/share/gnome-shell" uid gid) (copy-file #$(local-file "notifications") "/home/bob/.local/share/gnome-shell/notifications") (chown "/home/bob/.local/share/gnome-shell/notifications" uid gid) ))))) (default-value #t)))) %desktop-services)) (name-service-switch %mdns-host-lookup-nss))
The notification file is attached (it’s the one that was originally causing me problems).
notifications
Description: Binary data
After running GNOME 3.28 for a while, I’ve had several crashes. It used to crash whenever I opened a URL from Emacs, but fiddling with dconf has fixed that. It currently crashes every time I run ERC (I’ve turned on notifications there), and I can’t seem to fix it. Interestingly, there is a discussion about this on the Arch Linux forums <https://bbs.archlinux.org/viewtopic.php?pid=1778640>. I’m not sure if there’s anything useful for us in there, though. I did get a backtrace of the crash.
#0 0x00007f5b368666b6 in __strlen_sse2 () from /gnu/store/h90vnqw0nwd0hhm1l5dgxsdrigddfmq4-glibc-2.28/lib/libc.so.6 #1 0x00007f5b37718318 in do_lookup.isra () from /gnu/store/cgy82g6yv8l1chawgch47zh23b0jll3l-glib-2.56.3/lib/libgio-2.0.so.0 #2 0x00007f5b3771890b in g_resource_get_info () from /gnu/store/cgy82g6yv8l1chawgch47zh23b0jll3l-glib-2.56.3/lib/libgio-2.0.so.0 #3 0x00007f5b37718e8d in g_resources_get_info () from /gnu/store/cgy82g6yv8l1chawgch47zh23b0jll3l-glib-2.56.3/lib/libgio-2.0.so.0 #4 0x00007f5b36533e15 in _gdk_pixbuf_new_from_resource_try_pixdata () from /gnu/store/fnna82d4mjfw8qmnr5l0g3rlr07jw134-gdk-pixbuf-2.38.1/lib/libgdk_pixbuf-2.0.so.0 #5 0x00007f5b36533f64 in gdk_pixbuf_new_from_resource () from /gnu/store/fnna82d4mjfw8qmnr5l0g3rlr07jw134-gdk-pixbuf-2.38.1/lib/libgdk_pixbuf-2.0.so.0 #6 0x00007f5b37012a99 in icon_info_ensure_scale_and_pixbuf () from /gnu/store/4ls7vk12bckr2d74492abg81am6nz3br-gtk+-3.24.7/lib/libgtk-3.so.0 #7 0x00007f5b37012d4c in load_icon_thread () from /gnu/store/4ls7vk12bckr2d74492abg81am6nz3br-gtk+-3.24.7/lib/libgtk-3.so.0 #8 0x00007f5b3772d4cd in g_task_thread_pool_thread () from /gnu/store/cgy82g6yv8l1chawgch47zh23b0jll3l-glib-2.56.3/lib/libgio-2.0.so.0 #9 0x00007f5b375a20ee in g_thread_pool_thread_proxy () from /gnu/store/cgy82g6yv8l1chawgch47zh23b0jll3l-glib-2.56.3/lib/libglib-2.0.so.0 #10 0x00007f5b375a1765 in g_thread_proxy () from /gnu/store/cgy82g6yv8l1chawgch47zh23b0jll3l-glib-2.56.3/lib/libglib-2.0.so.0 #11 0x00007f5b36994019 in start_thread () from /gnu/store/h90vnqw0nwd0hhm1l5dgxsdrigddfmq4-glibc-2.28/lib/libpthread.so.0 #12 0x00007f5b368c492f in clone () from /gnu/store/h90vnqw0nwd0hhm1l5dgxsdrigddfmq4-glibc-2.28/lib/libc.so.6 Detaching from program: /gnu/store/lv4bxsnjnc9d5bgpsz358bn8l63z6972-gnome-shell-3.28.2/bin/..gnome-shell-real-real, process 3673 [Inferior 1 (process 3673) detached]
It looks like GNOME Shell passes some bad icon data into GTK+, which results in a null filename that gets dereferenced. (GNOME Shell is not in the backtrace – it tells GTK+ to run this thread from the “load_texture_async” function in “st-texture-cache.c”. I think the “bad” user files are not the root cause here. There’s definitely something wrong with notifications. (I just plugged in a USB drive and, sure enough, GNOME Shell crashed.) The notification daemon code is written in JavaScript (“js/ui/notificationDaemon.js”). I glanced at it and its Git history, but couldn’t find anything. -- Tim