guix-devel
[Top][All Lists]
Advanced

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

Re: ‘staging’ and GNOME updates


From: Ricardo Wurmus
Subject: Re: ‘staging’ and GNOME updates
Date: Wed, 24 Apr 2019 08:54:05 +0200
User-agent: mu4e 1.0; emacs 26.1

Hey Tim,

>   (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))))

I have almost exactly the same, except that I used a generated
notifications file (a text file containing the string “garbage”) —
without problems.

> 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.

This message seems relevant:

    https://bbs.archlinux.org/viewtopic.php?pid=1778640#p1778640

    My issue was caused by using ubuntu-cairo. It was incompatible with
    librsvg 2.42.3, which caused a crash when gnome attempted to load an
    SVG when trying to display the notification. It also caused the
    close window button to not appear in the overview.

> 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.

I don’t think it’s notifications per se, but rendering SVGs.  When
application_state exists, GNOME shell tries to restore application
windows and their icons are likely SVG files that should be rendered.

Chris reported elsewhere that GNOME sometimes crashes when the Activity
tab is accessed — that’s where the application starter is, which
displays icons.

I believe we should be using librsvg-next in the closure of gnome-shell.
We may also want to use gdk-pixbuf+svg instead of just gdk-pixbuf, but
again replacing librsvg with librsvg-next throughout.  I’m guessing that
the problem is entirely due to using an outdated variant of librsvg.

What do you think?

--
Ricardo




reply via email to

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