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 652566 - Clutter-CRITICAL **: _clutter_stage_get_window: assertion `CLUTTER_IS_STAGE (stage)' failed
Clutter-CRITICAL **: _clutter_stage_get_window: assertion `CLUTTER_IS_STAGE (...
Status: RESOLVED FIXED
Product: clutter
Classification: Platform
Component: general
git master
Other Linux
: Normal normal
: ---
Assigned To: clutter-maint
clutter-maint
Depends on:
Blocks:
 
 
Reported: 2011-06-14 14:36 UTC by Richard Hughes
Modified: 2011-06-14 16:01 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
glx: Ignore ensuring context on NULL stages (1.01 KB, patch)
2011-06-14 14:55 UTC, Emmanuele Bassi (:ebassi)
committed Details | Review
backend: Do not call ensure_context() with NULL stage (2.25 KB, patch)
2011-06-14 14:55 UTC, Emmanuele Bassi (:ebassi)
committed Details | Review
stage: Ignore do_update() on unrealized stages (1010 bytes, patch)
2011-06-14 15:12 UTC, Emmanuele Bassi (:ebassi)
committed Details | Review

Description Richard Hughes 2011-06-14 14:36:09 UTC
Program received signal SIGTRAP, Trace/breakpoint trap.
g_logv (log_domain=0x7ffff6b9d38d "Clutter", log_level=<optimized out>, format=0x7ffff41cdde2 "%s: assertion `%s' failed", args1=0x7fffffffda88) at gmessages.c:559
559		  g_private_set (g_log_depth, GUINT_TO_POINTER (depth));
Missing separate debuginfos, use: debuginfo-install libXxf86vm-1.1.1-2.fc15.x86_64 libdrm-2.4.26-1.fc15.x86_64 libexif-0.6.20-1.fc15.x86_64 libjpeg-turbo-1.1.0-2.fc15.x86_64 libpciaccess-0.12.1-1.fc15.x86_64 libtiff-3.9.5-1.fc15.x86_64 mesa-dri-drivers-7.11-0.11.20110525.0.fc15.x86_64 mesa-libGL-7.11-0.11.20110525.0.fc15.x86_64 ncurses-libs-5.8-2.20110319.fc15.x86_64
(gdb) bt
  • #0 g_logv
    at gmessages.c line 559
  • #1 g_log
    at gmessages.c line 573
  • #2 _clutter_stage_get_window
    at ./clutter-stage.c line 3253
  • #3 _clutter_stage_get_window
    at ./clutter-stage.c line 3251
  • #4 clutter_backend_glx_ensure_context
    at ./glx/clutter-backend-glx.c line 337
  • #5 _clutter_backend_ensure_context
    at ./clutter-backend.c line 481
  • #6 clutter_stage_do_redraw
    at ./clutter-stage.c line 1013
  • #7 _clutter_stage_do_update
    at ./clutter-stage.c line 1076
  • #8 clutter_clock_dispatch
    at ./clutter-master-clock.c line 384
  • #9 g_main_dispatch
    at gmain.c line 2477
  • #10 g_main_context_dispatch
    at gmain.c line 3050
  • #11 g_main_context_iterate
    at gmain.c line 3128
  • #12 g_main_loop_run
    at gmain.c line 3336
  • #13 gtk_main
    at gtkmain.c line 1358
  • #14 g_application_run
    at gapplication.c line 1326
  • #15 main
    at gcm-viewer.c line 1551

Comment 1 Richard Hughes 2011-06-14 14:36:27 UTC
Note, does not happen with 1.6, just git master.
Comment 2 Emmanuele Bassi (:ebassi) 2011-06-14 14:55:07 UTC
Created attachment 189910 [details] [review]
glx: Ignore ensuring context on NULL stages
Comment 3 Emmanuele Bassi (:ebassi) 2011-06-14 14:55:10 UTC
Created attachment 189911 [details] [review]
backend: Do not call ensure_context() with NULL stage

Always call ensure_context() if we have a valid Stage.
Comment 4 Richard Hughes 2011-06-14 15:02:05 UTC
With those two patches, a new backtrace:

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff6699af7 in _cogl_framebuffer_set_viewport (framebuffer=0x0, x=0, y=0, width=640, height=480) at ./cogl-framebuffer.c:518
518	  if (framebuffer->viewport_x == x &&
Missing separate debuginfos, use: debuginfo-install libXxf86vm-1.1.1-2.fc15.x86_64 libdrm-2.4.26-1.fc15.x86_64 libexif-0.6.20-1.fc15.x86_64 libjpeg-turbo-1.1.0-2.fc15.x86_64 libpciaccess-0.12.1-1.fc15.x86_64 libtiff-3.9.5-1.fc15.x86_64 mesa-dri-drivers-7.11-0.11.20110525.0.fc15.x86_64 mesa-libGL-7.11-0.11.20110525.0.fc15.x86_64 ncurses-libs-5.8-2.20110319.fc15.x86_64
(gdb) bt
  • #0 _cogl_framebuffer_set_viewport
    at ./cogl-framebuffer.c line 518
  • #1 cogl_set_viewport
    at ./cogl.c line 352
  • #2 _clutter_stage_maybe_setup_viewport
    at ./clutter-stage.c line 3128
  • #3 clutter_stage_do_redraw
    at ./clutter-stage.c line 1021
  • #4 _clutter_stage_do_update
    at ./clutter-stage.c line 1076
  • #5 clutter_clock_dispatch
    at ./clutter-master-clock.c line 384
  • #6 g_main_dispatch
    at gmain.c line 2477
  • #7 g_main_context_dispatch
    at gmain.c line 3050
  • #8 g_main_context_iterate
    at gmain.c line 3128
  • #9 g_main_loop_run
    at gmain.c line 3336
  • #10 gtk_main
    at gtkmain.c line 1358
  • #11 g_application_run
    at gapplication.c line 1326
  • #12 main
    at gcm-viewer.c line 1551

Comment 5 Emmanuele Bassi (:ebassi) 2011-06-14 15:12:56 UTC
Created attachment 189916 [details] [review]
stage: Ignore do_update() on unrealized stages

An unrealized stage has no resources set yet, so we might as well skip
it during the master clock spin.
Comment 6 Richard Hughes 2011-06-14 15:16:12 UTC
With all three patches it works as before. Thanks!
Comment 7 Emmanuele Bassi (:ebassi) 2011-06-14 16:01:40 UTC
Attachment 189910 [details] pushed as 0b20739 - glx: Ignore ensuring context on NULL stages
Attachment 189911 [details] pushed as 81e9bf6 - backend: Do not call ensure_context() with NULL stage
Attachment 189916 [details] pushed as 05bcd40 - stage: Ignore do_update() on unrealized stages