After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 680354 - crashes if unable to create a root surface
crashes if unable to create a root surface
Status: RESOLVED FIXED
Product: gnome-desktop
Classification: Core
Component: libgnome-desktop
unspecified
Other Linux
: Normal normal
: ---
Assigned To: Desktop Maintainers
Desktop Maintainers
Depends on:
Blocks: 680356
 
 
Reported: 2012-07-21 06:03 UTC by William Jon McCann
Modified: 2012-08-15 16:34 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Don't crash if unable to set background (1.28 KB, patch)
2012-07-21 06:14 UTC, William Jon McCann
committed Details | Review

Description William Jon McCann 2012-07-21 06:03:59 UTC
Maximum number of clients reached
(nautilus:11353): GnomeDesktop-WARNING **: Unable to open display ':5' when setting background pixmap


Program received signal SIGSEGV, Segmentation fault.
cairo_surface_set_user_data (surface=surface@entry=0x0, key=key@entry=0x7ffff7554970, user_data=0xc0f340,
    destroy=0x7ffff69ecd80 <gdk_rgba_free>) at cairo-surface.c:794
794         if (CAIRO_REFERENCE_COUNT_IS_INVALID (&surface->ref_count))
  • #0 cairo_surface_set_user_data
    at cairo-surface.c line 794
  • #1 gnome_bg_create_surface
    at gnome-bg.c line 1142
  • #2 nautilus_desktop_background_ensure_realized
    at nautilus-desktop-background.c line 240
  • #3 nautilus_desktop_background_set_up_widget
    at nautilus-desktop-background.c line 305
  • #4 g_closure_invoke
    at gclosure.c line 777

Comment 1 William Jon McCann 2012-07-21 06:14:04 UTC
Created attachment 219370 [details] [review]
Don't crash if unable to set background
Comment 2 Ray Strode [halfline] 2012-08-10 19:21:41 UTC
Review of attachment 219370 [details] [review]:

::: libgnome-desktop/gnome-bg.c
@@ +1557,2 @@
 	g_return_if_fail (screen != NULL);
+	g_return_if_fail (surface != NULL);

So i assume you fixed the caller code too.
Comment 3 Colin Walters 2012-08-10 21:35:03 UTC
Can you elaborate a bit on how this happens?  Is there a crasher bug somewhere in Red Hat bugzilla e.g.?

Is "Maximum number of clients reached" from the X server?  Hmm..looks like that must be it.

It'd probably be nice to update the docstring to say "Returns: %NULL on error (e.g. out of X connections)"

Other than that good to go.
Comment 4 William Jon McCann 2012-08-15 16:34:00 UTC
Colin, thanks for the review. I think somewhere we are leaking resources when setting the wallpaper. I've been testing wallpapers a lot recently and have hit this a few times. There is definitely a bug to be tracked down there but we really shouldn't go into an undefined state when that occurs.

See bug 681928