guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ‘staging’ and GNOME updates


From: Timothy Sample
Subject: Re: ‘staging’ and GNOME updates
Date: Wed, 24 Apr 2019 00:10:57 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux)

Hi Ricardo,

Ricardo Wurmus <address@hidden> 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).

Attachment: 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

reply via email to

[Prev in Thread] Current Thread [Next in Thread]