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 693482 - Crash on starting fullscreen GL application
Crash on starting fullscreen GL application
Status: RESOLVED FIXED
Product: mutter
Classification: Core
Component: general
git master
Other Linux
: Normal normal
: ---
Assigned To: mutter-maint
mutter-maint
Depends on:
Blocks:
 
 
Reported: 2013-02-09 16:33 UTC by Rico Tzschichholz
Modified: 2013-02-09 19:56 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
meta-window-actor: Make sure that we have a shape region in get_paint_volume (1.33 KB, patch)
2013-02-09 17:22 UTC, drago01
needs-work Details | Review
meta-window-actor: Make sure that the shape_region is always set (1.13 KB, patch)
2013-02-09 19:52 UTC, drago01
committed Details | Review

Description Rico Tzschichholz 2013-02-09 16:33:24 UTC
When starting 0.A.D mutter crashes with that NRE

INT_cairo_region_get_extents (region=0x0, extents=extents@entry=0x7fffffffd7d0)
    at /build/buildd/cairo-1.12.12/src/cairo-region.c:500
500     /build/buildd/cairo-1.12.12/src/cairo-region.c: Datei oder Verzeichnis n
(gdb) bt
  • #0 INT_cairo_region_get_extents
    at /build/buildd/cairo-1.12.12/src/cairo-region.c line 500
  • #1 meta_window_actor_get_shape_bounds
    at compositor/meta-window-actor.c line 563
  • #2 meta_window_actor_get_paint_volume
    at compositor/meta-window-actor.c line 668
  • #3 _clutter_actor_get_paint_volume_real
    at ./clutter-actor.c line 16926
  • #4 _clutter_actor_get_paint_volume_mutable
    at ./clutter-actor.c line 17002
  • #5 _clutter_actor_finish_queue_redraw
    at ./clutter-actor.c line 8441
  • #6 _clutter_stage_maybe_finish_queue_redraws
    at ./clutter-stage.c line 4103
  • #7 _clutter_stage_do_update
    at ./clutter-stage.c line 1226
  • #8 master_clock_update_stages
    at ./clutter-master-clock.c line 386
  • #9 clutter_clock_dispatch
    at ./clutter-master-clock.c line 520
  • #10 g_main_dispatch
    at /build/buildd/glib2.0-2.35.7+git20130207.d7c8eda1/./glib/gmain.c line 3054
  • #11 g_main_context_dispatch
    at /build/buildd/glib2.0-2.35.7+git20130207.d7c8eda1/./glib/gmain.c line 3630
  • #12 g_main_context_iterate
    at /build/buildd/glib2.0-2.35.7+git20130207.d7c8eda1/./glib/gmain.c line 3701
  • #13 g_main_loop_run
    at /build/buildd/glib2.0-2.35.7+git20130207.d7c8eda1/./glib/gmain.c line 3895
  • #14 meta_run
    at core/main.c line 545
  • #15 main
    at main.c line 430

Comment 1 drago01 2013-02-09 17:22:41 UTC
Created attachment 235590 [details] [review]
meta-window-actor: Make sure that we have a shape region in get_paint_volume

Frozen or unredirected windows may not have a shape region  if we they frozen
or unredirected directly after getting mapped or while unmapped.
Comment 2 Rico Tzschichholz 2013-02-09 19:19:39 UTC
Review of attachment 235590 [details] [review]:

Fixed the crash here.
Comment 3 Jasper St. Pierre (not reading bugmail) 2013-02-09 19:30:14 UTC
Review of attachment 235590 [details] [review]:

The invariant I want to maintain here is that shape_region is always valid, or at the very least, not NULL. Thus, we should never have to do if (!priv->shape_region).
Comment 4 drago01 2013-02-09 19:52:44 UTC
Created attachment 235598 [details] [review]
meta-window-actor: Make sure that the shape_region is always set

Start off with an empty region to make sure that the shape_region is
always set even for unredirected and frozen windows.
Comment 5 Jasper St. Pierre (not reading bugmail) 2013-02-09 19:54:46 UTC
Review of attachment 235598 [details] [review]:

I can't see any issues with this. needs_reshape is going to be TRUE due to the sync_actor_position in meta_window_actor_new, and get_paint_volume calls the pre-paint funcs. Owen, if you have any issues with it, please re-open the bug and comment. This is some messy code, and I think you're the only one who has everything in your head.
Comment 6 drago01 2013-02-09 19:56:16 UTC
Attachment 235598 [details] pushed as 1c680be - meta-window-actor: Make sure that the shape_region is always set