gnome-settings-daemon crashed with SIGSEGV in cairo_set_source_surface()

Bug #661283 reported by Matt Zimmerman on 2010-10-15
This bug affects 5 people
Affects Status Importance Assigned to Milestone
gnome-settings-daemon (Ubuntu)
Robert Ancell

Bug Description

Binary package hint: gnome-settings-daemon

This is a different system from my bug 660063, which is also a gnome-settings-daemon crash

ProblemType: Crash
DistroRelease: Ubuntu 10.10
Package: gnome-settings-daemon 2.32.0-0ubuntu2
ProcVersionSignature: Ubuntu 2.6.35-22.34-generic
Uname: Linux 2.6.35-22-generic i686
Architecture: i386
Date: Fri Oct 15 11:36:19 2010
EcryptfsInUse: Yes
ExecutablePath: /usr/lib/gnome-settings-daemon/gnome-settings-daemon
InstallationMedia: Ubuntu-Netbook 10.04 "Lucid Lynx" - Alpha i386 (20100315)
ProcCmdline: /usr/lib/gnome-settings-daemon/gnome-settings-daemon
 PATH=(custom, user)
 Segfault happened at: 0xb78b96 <cairo_set_source_surface+38>: mov 0x4(%esi),%ecx
 PC (0x00b78b96) ok
 source "0x4(%esi)" (0x00000004) not located in a known VMA region (needed readable region)!
 destination "%ecx" ok
SegvReason: reading NULL VMA
Signal: 11
SourcePackage: gnome-settings-daemon
 cairo_set_source_surface () from /usr/lib/
 gdk_cairo_set_source_pixbuf () from /usr/lib/
 gnome_bg_create_pixmap () from /usr/lib/
 ?? () from /usr/lib/gnome-settings-daemon-2.0/
 g_cclosure_marshal_VOID__VOID () from /usr/lib/
Title: gnome-settings-daemon crashed with SIGSEGV in cairo_set_source_surface()
UserGroups: adm admin cdrom dialout lpadmin plugdev sambashare

Matt Zimmerman (mdz) wrote :

 *INT_cairo_set_source_surface (cr=0x0, surface=0x83f6800, x=0, y=0)
 IA__gdk_cairo_set_source_pixbuf (cr=0x0, pixbuf=0x82d6848,
 gnome_bg_create_pixmap (bg=0x82a7818, window=0x822c050,
 draw_background (manager=<value optimized out>,
 g_cclosure_marshal_VOID__VOID ()

Changed in gnome-settings-daemon (Ubuntu):
importance: Undecided → Medium
tags: removed: need-i386-retrace
Matt Zimmerman (mdz) on 2010-10-15
visibility: private → public
Martin Pitt (pitti) wrote :

Robert, do you have some time to look into this? Looks like it's stumbling over the NULL pointer here, so I guess some allocation failed earlier on?

Changed in gnome-settings-daemon (Ubuntu):
assignee: nobody → Robert Ancell (robert-ancell)
Robert Ancell (robert-ancell) wrote :

Matt, how reproducible is this? What steps can I take to reproduce it?

Looking through the stack trace shows:
- The Cairo context is NULL
- This only seems possible if the background pixmap is NULL
- The background pixmap only seems to be able to be NULL if a connection to the X server was not possible (in gnome-desktop-2.32.1/libgnome-desktop/gnome-bg.c:make_root_pixmap()).

These event should have triggered some g_warnings, which I would have expected to show in ~/.xsession-errors and maybe /var/log/Xorg.0.log.

Matt, could you reproduce and attach the above two logs?

Matt Zimmerman (mdz) wrote :

I've had gnome-settings-daemon continue to crash on me regularly in 10.10 (bug 685785), but haven't seen this particular trace recur and I don't have any way to reproduce it. I filed this over two months ago, so to be honest I'm having trouble remembering the exact circumstances which surrounded the crash.

It looks as if another possible NULL return is if gdk_pixmap_foreign_new_for_screen fails. In any case, someone should be checking for an error return and not dereferencing the null pointer, right?

I'm surprised that ~/.xsession-errors wasn't automatically attached by apport; if it's routinely useful for diagnosing crashes like this one, that should probably be changed.

Robert Ancell (robert-ancell) wrote :

There was an attached log but it didn't contain anything useful. It might have been from the session after the crash however.

Robert Ancell (robert-ancell) wrote :

Was fixed in gnome-desktop 2.32.1-0ubuntu2

Changed in gnome-settings-daemon (Ubuntu):
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers