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 681676 - crash when opening (very long) option menu
crash when opening (very long) option menu
Status: RESOLVED FIXED
Product: mutter
Classification: Core
Component: general
git master
Other Linux
: Normal critical
: ---
Assigned To: mutter-maint
mutter-maint
3.6.1
: 682518 684170 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2012-08-12 11:14 UTC by Frederic Peters
Modified: 2012-10-02 21:33 UTC
See Also:
GNOME target: ---
GNOME version: 3.5/3.6


Attachments
window-actor: Don't create a mask texture unnecessarily (1.97 KB, patch)
2012-08-12 23:00 UTC, Jasper St. Pierre (not reading bugmail)
committed Details | Review
big gray rectangle (70.76 KB, image/png)
2012-09-21 07:23 UTC, Frederic Peters
  Details

Description Frederic Peters 2012-08-12 11:14:52 UTC
I had to open the 'Product' menu to reassign a bug report, I was using epiphany and this uses an option menu, filled with a log of entries perhaps it went over some limit in window size, the sure thing is that I got this crash:

Program terminated with signal 11, Segmentation fault.
  • #0 cogl_object_unref
    at ./cogl-object.c line 103
  • #0 cogl_object_unref
    at ./cogl-object.c line 103
  • #1 cogl_handle_unref
    at ./cogl-object.c line 110
  • #2 build_and_scan_frame_mask
    at compositor/meta-window-actor.c line 2207
  • #3 check_needs_reshape
    at compositor/meta-window-actor.c line 2284
  • #4 meta_window_actor_pre_paint
    at compositor/meta-window-actor.c line 2359
  • #5 pre_paint_windows
    at compositor/compositor.c line 1175
  • #6 meta_repaint_func
    at compositor/compositor.c line 1192
  • #7 _clutter_run_repaint_functions
    at ./clutter-main.c line 3580
  • #8 master_clock_update_stages
    at ./clutter-master-clock.c line 369
  • #9 clutter_clock_dispatch
    at ./clutter-master-clock.c line 519
  • #10 g_main_dispatch
    at gmain.c line 2707
  • #11 g_main_context_dispatch
    at gmain.c line 3211
  • #12 g_main_context_iterate
    at gmain.c line 3282
  • #13 g_main_loop_run
    at gmain.c line 3476
  • #14 meta_run
    at core/main.c line 545
  • #15 main
    at main.c line 411

Comment 1 Jasper St. Pierre (not reading bugmail) 2012-08-12 16:44:11 UTC
Huh. It couldn't create the mask texture. Next time you get that crash, could you try:

    p meta_texture_rectangle_check (paint_tex)

I'll also see if I can stop creating a mask texture for unshaped, unframed windows again.
Comment 2 Frederic Peters 2012-08-12 20:12:56 UTC
meta_texture_rectangle_check(paint_tex) returns FALSE.
Comment 3 Jasper St. Pierre (not reading bugmail) 2012-08-12 23:00:50 UTC
Created attachment 220956 [details] [review]
window-actor: Don't create a mask texture unnecessarily

Mask texture resources may be expensive. Don't create one
if we don't need to, like on an unshaped window without
a frame.


Try this out.
Comment 4 Jasper St. Pierre (not reading bugmail) 2012-08-23 15:46:26 UTC
*** Bug 682518 has been marked as a duplicate of this bug. ***
Comment 5 Jasper St. Pierre (not reading bugmail) 2012-09-20 21:56:18 UTC
*** Bug 684170 has been marked as a duplicate of this bug. ***
Comment 6 drago01 2012-09-20 21:56:52 UTC
Review of attachment 220956 [details] [review]:

This makes sense, fine with RT approval. (Still does not address the fact that the window is lager then GL_MAX_TEXTURE_SIZE but we there isn't much that we can do in that case).
Comment 7 Bastien Nocera 2012-09-20 22:04:21 UTC
(In reply to comment #2)
> meta_texture_rectangle_check(paint_tex) returns FALSE.

Same here.
Comment 8 Alban Browaeys 2012-09-21 00:38:05 UTC
could it be related to the fact that intialy the dropdown shows up as shrinked with arrows then when one reach one bound it expands to its full size.
Also the flag passed to this mask_texure cogl_new_from_data is NO_SLICING thus nothing could be done except prevent the dropdown to get this big (and avoid segfault by a check for the return value).
Comment 9 Matthias Clasen 2012-09-21 01:05:23 UTC
A shell crash fix sounds freeze break worthy. Approval 1 of 2 for the release team. You may have to get the second one on the list.
Comment 10 Frederic Peters 2012-09-21 07:23:00 UTC
Created attachment 224898 [details]
big gray rectangle

It doesn't fix the issue completely, sometimes I get a dark gray rectangle instead of the menu content. (see screenshot).
Comment 11 Colin Walters 2012-09-21 13:04:34 UTC
(In reply to comment #6)
> Review of attachment 220956 [details] [review]:
> 
> This makes sense, fine with RT approval. (Still does not address the fact that
> the window is lager then GL_MAX_TEXTURE_SIZE but we there isn't much that we
> can do in that case).

We could just not show the window, and log the failure.  Would be hard for application authors to debug, but on the other hand, this is something that toolkits should be handling internally.
Comment 12 Jasper St. Pierre (not reading bugmail) 2012-09-26 16:54:15 UTC
This needs to make it in 3.6.1
Comment 13 Jasper St. Pierre (not reading bugmail) 2012-10-02 21:33:16 UTC
Attachment 220956 [details] pushed as 7938458 - window-actor: Don't create a mask texture unnecessarily