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 672797 - Mutter 3.3.92 crashes when making VirtualBox machines full screen
Mutter 3.3.92 crashes when making VirtualBox machines full screen
Status: RESOLVED FIXED
Product: mutter
Classification: Core
Component: general
3.3.x
Other Linux
: Normal normal
: ---
Assigned To: mutter-maint
mutter-maint
Depends on:
Blocks:
 
 
Reported: 2012-03-25 12:25 UTC by Kalev Lember
Modified: 2012-03-26 11:16 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
stack: Fix crash when opening a full-screen window (1.48 KB, patch)
2012-03-25 12:31 UTC, Jasper St. Pierre (not reading bugmail)
none Details | Review

Description Kalev Lember 2012-03-25 12:25:32 UTC
I can reliably make mutter 3.3.92 crash when switching a VirtualBox machine to full screen.

The crash is from running into the "stack->added == NULL" assert in meta_stack_raise() that was added in commit 402b4774 "stack: Make meta_window_raise() and meta_window_lower() smarter". Apparently there's a code path where meta_window_new() can call meta_stack_raise() after it has set up the stack with meta_stack_add(). The meta_stack_raise() call can happen if setup_constraint_info() calls meta_window_make_fullscreen_internal():

  /* Workaround braindead legacy apps that don't know how to
   * fullscreen themselves properly - don't get fooled by
   * windows which hide their titlebar when maximized; that's
   * not the same as fullscreen, even if there are no struts
   * making the workarea smaller than the monitor.
   */
  if (meta_prefs_get_force_fullscreen() &&
      !window->hide_titlebar_when_maximized &&
      meta_rectangle_equal (new, &monitor_info->rect) &&
      window->has_fullscreen_func &&
      !window->fullscreen)
    {
      /*
      meta_topic (META_DEBUG_GEOMETRY,
      */
      meta_warning (
                  "Treating resize request of legacy application %s as a "
                  "fullscreen request\n",
                  window->desc);
      meta_window_make_fullscreen_internal (window);
    }


Also see https://bugzilla.gnome.org/show_bug.cgi?id=620744#c30 regarding the assert.


Backtrace:

  • #0 __GI_raise
    at ../nptl/sysdeps/unix/sysv/linux/raise.c line 64
  • #1 __GI_abort
    at abort.c line 91
  • #2 g_assertion_message
    at gtestutils.c line 1860
  • #3 g_assertion_message_expr
    at gtestutils.c line 1871
  • #4 meta_stack_raise
    at core/stack.c line 192
  • #5 meta_window_raise
    at core/window.c line 5920
  • #6 meta_window_make_fullscreen_internal
    at core/window.c line 4009
  • #7 setup_constraint_info
    at core/constraints.c line 460
  • #8 meta_window_constrain
  • #9 meta_window_move_resize_internal
  • #10 meta_window_new_with_attrs
    at core/window.c line 1400
  • #11 meta_window_new
    at core/window.c line 665
  • #12 event_callback
    at core/display.c line 2305
  • #13 filter_func
    at ui/ui.c line 238
  • #14 gdk_event_apply_filters
    at gdkeventsource.c line 81
  • #15 gdk_event_source_translate_event
    at gdkeventsource.c line 195
  • #16 _gdk_x11_display_queue_events
    at gdkeventsource.c line 332
  • #17 gdk_display_get_event
    at gdkdisplay.c line 310
  • #18 gdk_event_source_dispatch
    at gdkeventsource.c line 354
  • #19 g_main_dispatch
    at gmain.c line 2515
  • #20 g_main_context_dispatch
    at gmain.c line 3052
  • #21 g_main_context_iterate
    at gmain.c line 3123
  • #22 g_main_loop_run
    at gmain.c line 3317
  • #23 meta_run
    at core/main.c line 555
  • #24 main
    at main.c line 333

Comment 1 Jasper St. Pierre (not reading bugmail) 2012-03-25 12:31:26 UTC
I have a patch. See: https://mail.gnome.org/archives/release-team/2012-March/msg00274.html

I'll probably just attach it to this bug.
Comment 2 Jasper St. Pierre (not reading bugmail) 2012-03-25 12:31:54 UTC
Created attachment 210564 [details] [review]
stack: Fix crash when opening a full-screen window

When mutter recognizes a full-screen window, it tries to raise it to the top
of the stack. Unfortunately, a recent rewrite of the stack code didn't do
well with raising a window to the top of the stack if the stack wasn't in
a consistent state -- it would crash. Ensure that the stack is in a consistent
state at the top of meta_stack_raise/meta_stack_lower.

https://bugzilla.redhat.com/show_bug.cgi?id=806437
Comment 3 Kalev Lember 2012-03-25 12:41:08 UTC
Thanks Jasper. I can confirm that the patch fixes the crash I was seeing.
Comment 4 Jasper St. Pierre (not reading bugmail) 2012-03-26 11:16:16 UTC
Patch has been pushed (git bz didn't like the multiple URLs)