GNOME Bugzilla – Bug 673640
gnome-settings-daemon crashes in get_slide() when time goes back
Last modified: 2012-04-06 13:36:44 UTC
This is a problem I experience every time my laptop shuts down because of lack of battery. On the next start, for a silly reason, my clock is wrong, and often is in the future. Then, gnome-settings-daemon crashes on login, which makes it impossible to use the machine unless you know you to close the fail whale, etc. I did not test 3.4, but the assert is still there, so it probably still happens. Even several successive attempts are not enough to fix it. But simply connecting to the network so that ntpd fixes the clock fixes everything. The stack trace is below, but it's actually "just" an assertion failure in gnome-bg.c. I find is very dangerous to make gnome-settings-daemon abort just because something unexpected happened. If possible, libgnome-desktop should recover as well as possible instead. The relevant code is: /* this should never happen since we have slides and we should always * find a current slide for the elapsed time since beginning -- we're * looping with fmod() */ g_assert_not_reached (); http://git.gnome.org/browse/gnome-desktop/tree/libgnome-desktop/gnome-bg.c#n1656 I don't exactly understand what's the problem with time being in the future as long as it doesn't change while gnome-settings-daemon is running. g-s-d crashes before the network is up, and before the logs show that ntpd was able to connect to the time servers. So maybe it gets some old timestamp from a file? I can run tests if needed. /var/log/messages says: Apr 7 12:21:14 milan ntpd_intres[1584]: host name not found: 0.fedora.pool.ntp. org Apr 7 12:21:14 milan ntpd_intres[1584]: host name not found: 1.fedora.pool.ntp. org Apr 7 12:21:14 milan ntpd_intres[1584]: host name not found: 2.fedora.pool.ntp. org Apr 7 12:21:14 milan ntpd_intres[1584]: host name not found: 3.fedora.pool.ntp. org [...] Apr 7 12:21:17 milan abrtd: Directory 'ccpp-2003-04-07-12:21:16-1597' creation detected Apr 7 12:21:17 milan abrt[1671]: Saved core dump of pid 1597 (/usr/libexec/gnome-settings-daemon) to /var/spool/abrt/ccpp-2003-04-07-12:21:16-1597 (43352064 bytes) Apr 7 12:21:17 milan gnome-session[1430]: WARNING: Application 'gnome-settings-daemon.desktop' killed by signal Apr 7 12:21:18 milan abrt[1776]: Not dumping repeating crash in '/usr/libexec/gnome-settings-daemon' [Time changes later to April 6]
+ Trace 230020
Thread 1 (Thread 0x7fe7b71c4940 (LWP 1617))
https://bugzilla.redhat.com/show_bug.cgi?id=737298
OK, just understood something: clock is not in the future, it's in the past, but by a few years. So g-s-d must be using a timestamp loaded from a file, and of course no slide exists between the last timestamp and a timestamp that occurred much before it. Apr 6 13:22:14 milan ntpd[1575]: 0.0.0.0 c61c 0c clock_step +284000401.457757 s (this is about 9 years back)
Thanks for the bug report. This particular bug has already been reported into our bug tracking system, but please feel free to report any further bugs you find. *** This bug has been marked as a duplicate of bug 673551 ***