Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 Mar 2007 17:38:27 +0300
From:      Andriy Gapon <avg@icyb.net.ua>
To:        freebsd-gnome@freebsd.org
Subject:   screen lock and gtk theme switch
Message-ID:  <4607DAE3.2090501@icyb.net.ua>

next in thread | raw e-mail | index | archive | help
Environment:
FreeBSD 6.2-RELEASE-p2 amd64
gtk-2.10.11_2
gtk-engines2-2.10.0
gnome-desktop-2.18.0
gnome-themes-2.18.0_1
gnome-control-center-2.18.0
gnome-screensaver-2.18.0_1
gdm-2.18.0
thunderbird-1.5.0.10

I am not using full GNOME desktop, but rather many GNOME and GTK
applications (i.e. no gnome-session stuff). I log in X session via GDM,
but it is configured to do xinit session. I do start
gnome-settings-daemon from my .xinitrc.

Prior to 2.18 I also started gnome-screensaver from .xinitrc, but now it
seems that it is started automatically by gnome-settings-daemon.

I don't have anything interesting in .gtkrc*. I used to have one include
there, but I removed it because of the problem described in my other
email ("gnome-theme-manager vs gtkrc-2.0"). Also, it seems that that
include was not necessary anyway, because gnome-settings-daemon
automatically applied selected GNOME/GTK theme.

The problem is that screen lock/unlock causes thunderbird (email
program) to crash:
#0  0x00000000433190dc in thr_kill () from /lib/libc.so.6
#1  0x00000000431ba01c in raise () from /usr/lib/libthr.so.2
#2  0x0000000000411c53 in nsProfileLock::FatalSignalHandler ()
#3  <signal handler called>
#4  0x00000000461a9e6f in nsLookAndFeel::InitColors () from
/usr/local/lib/thunderbird/components/libwidget_gtk2.so
#5  0x00000000461aa37a in nsLookAndFeel::nsLookAndFeel () from
/usr/local/lib/thunderbird/components/libwidget_gtk2.so
#6  0x0000000047987bde in NS_NewPresContext () from
/usr/local/lib/thunderbird/components/libgklayout.so
#7  0x0000000047994da5 in PresShell::RetargetEventToParent () from
/usr/local/lib/thunderbird/components/libgklayout.so
#8  0x0000000047c2d2a5 in nsViewManager::HandleEvent () from
/usr/local/lib/thunderbird/components/libgklayout.so
#9  0x0000000047c2e886 in nsViewManager::Refresh () from
/usr/local/lib/thunderbird/components/libgklayout.so
#10 0x0000000047c2248a in nsIView::GetViewFor () from
/usr/local/lib/thunderbird/components/libgklayout.so
#11 0x00000000461a9229 in nsCommonWidget::DispatchResizeEvent () from
/usr/local/lib/thunderbird/components/libwidget_gtk2.so
#12 0x00000000461a07b0 in nsWindow::ThemeChanged () from
/usr/local/lib/thunderbird/components/libwidget_gtk2.so
#13 0x00000000461a082d in nsWindow::ThemeChanged () from
/usr/local/lib/thunderbird/components/libwidget_gtk2.so
#14 0x00000000428dec69 in g_closure_invoke () from
/usr/local/lib/libgobject-2.0.so.0
...

It looks like the crash is caused by GTK theme change. I think this is a
known and long standing problem with thunderbird, so I don't hope that
it will be fixed any time soon. So, instead I hope to find a cause of
this GTK theme switch and eliminate it.

Looking at time stamp of a thunderbird core file it seems that crash
happens on unlock or maybe when unlock dialog appears.

There is another problem. gnome-settings-daemon also crashes when
thunderbird does. I verified that gnome-settings-daemon is OK with
lock/unlock when thunderbird does not run. Make thunderbird crash and
gnome-settings-daemon goes down too.
Maybe it is not robust enough to handle abruptly disappearing clients ?
>From gnome-settings-daemon-bugreport.txt:
System: FreeBSD 6.2-RELEASE-p2 FreeBSD 6.2-RELEASE-p2 #1: Thu Mar 15
12:45:46 EET 2007     avg@rein:/usr/obj/usr/src/sys/REIN amd64
X Vendor: The X.Org Foundation
X Vendor Release: 70200000
Selinux: No
Accessibility: Disabled
GTK+ Theme: Mist
Icon Theme: Mist

Memory status: size: 106100 vsize: 106100 resident: 19376 share:
49869302 rss: 19376 rss_rlim: 4844
CPU usage: start_time: 0 rtime: 0 utime: 0 stime: 0 cutime:0 cstime: 0
timeout: 0 it_real_value: 0 frequency: 133

Backtrace was generated from '/usr/local/libexec/gnome-settings-daemon'
[New Thread 0x52f000 (LWP 100182)]
[Switching to Thread 0x5b3800 (LWP 100102)]
0x000000004615df2a in read () from /lib/libc.so.6
#0  0x000000004615df2a in read () from /lib/libc.so.6
#1  0x0000000045f7d084 in read () from /usr/lib/libthr.so.2
#2  0x0000000045b11483 in g_timeout_add ()
   from /usr/local/lib/libglib-2.0.so.0
#3  0x0000000045b28a32 in g_static_private_free ()
   from /usr/local/lib/libglib-2.0.so.0
#4  0x0000000045f7f55b in pthread_create () from /usr/lib/libthr.so.2
#5  0x0000000000000000 in ?? ()


To sum this up: I didn't have this problem when I had GNOME 2.16 and
also had the following line in my .gtkrc-2.0:
include "/usr/local/share/themes/Mist/gtk-2.0/gtkrc"
Not sure which one was more important, but I guess that having that
include ensured that GTK theme was always the same.
Ideally it would be nice to have all issues described here resolved:
1. unnecessary GTK theme switch
2. thunderbird crash on GTK theme switch
3. gnome-settings-daemon crash on thunderbird crash

-- 
Andriy Gapon



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4607DAE3.2090501>