linuxmint / cinnamon

A Linux desktop featuring a traditional layout, built from modern technology and introducing brand new innovative features.
GNU General Public License v2.0
4.49k stars 730 forks source link

Cinnamon flash (like a strobe) and crash. #2488

Closed soulearth closed 10 years ago

soulearth commented 10 years ago

Hello,

I have Ubuntu 12.04.3 LTS with Cinnamon. I install Cinnamon with the following repository: ppa:gwendal-lebihan-dev/cinnamon-stable

Everything worked fine until the last update.

Since the update (Cinnamon 2.0.2), the game "Wakfu" flash (like a strobe), sparkles and crash. I had no problems during the update.

Wakfu works well with other GUIs ( tested with gnome 3 and unity ).

Can you help me?

I am available to provide more information or log. It will just explain what information and how.

Thank you

clfarron4 commented 10 years ago

My first reaction is what graphics card are you using and what drivers are you using for it?

michael-schaller commented 10 years ago

I've experienced similar issues twice already with Chrome and fullscreen Flash video players but I can't reproduce it. The stack trace seems to indicate that this is related to Intel graphics and Cogl:

Stacktrace:
 #0  brw_update_renderbuffer_surface (brw=0x1347650, rb=0x226adf0, unit=0) at brw_wm_surface_state.c:1109
         intel = 0x1347650
         ctx = 0x1347650
         irb = 0x226adf0
         mt = 0x0
         region = <optimized out>
         surf = <optimized out>
         tile_x = 0
         tile_y = 56390880
         format = 0
         __FUNCTION__ = "brw_update_renderbuffer_surface"
 #1  0x00007ffb83b92800 in brw_update_renderbuffer_surfaces (brw=0x1347650) at brw_wm_surface_state.c:1205
         intel = 0x1347650
         ctx = 0x1347650
         i = <optimized out>
 #2  0x00007ffb83b7b8b2 in brw_upload_state (brw=0x1347650) at brw_state_upload.c:498
         atom = <optimized out>
         ctx = 0x1347650
         intel = 0x1347650
         state = 0x135dcbc
         i = <optimized out>
         dirty_count = 0
 #3  0x00007ffb83b687c7 in brw_try_draw_prims (max_index=<optimized out>, min_index=<optimized out>, ib=0x7fffd6ee8618, nr_prims=20269528, prim=0x7fffd6ee8600, arrays=<optimized out>, ctx=0x1347650) at brw_draw.c:493
         estimated_max_prim_size = 4096
         retval = <optimized out>
         i = <optimized out>
         fail_next = false
 #4  brw_draw_prims (ctx=0x1347650, prim=0x7fffd6ee8600, nr_prims=20269528, ib=0x7fffd6ee8618, index_bounds_valid=<optimized out>, min_index=0, max_index=3, tfb_vertcount=0x0) at brw_draw.c:589
         arrays = <optimized out>
 #5  0x00007ffb836e4559 in vbo_draw_arrays (ctx=0x1347650, mode=7, start=0, count=<optimized out>, numInstances=1, baseInstance=<optimized out>) at ../../../../../src/mesa/vbo/vbo_exec_array.c:645
         vbo = 0x13d3a70
         exec = 0x13d46b8
         prim = {{mode = 7, indexed = 0, begin = 1, end = 1, weak = 0, no_current_update = 0, pad = 0, start = 0, count = 4, basevertex = 0, num_instances = 1, base_instance = 0}, {mode = 0, indexed = 0, begin = 0, end = 0, weak = 0, no_current_update = 0, pad = 0, start = 0, count = 0, basevertex = 0, num_instances = 0, base_instance = 0}}
 #6  0x00007ffb95cccd9d in _cogl_journal_flush_modelview_and_entries (batch_start=<optimized out>, batch_len=1, data=0x7fffd6ee87f0) at ./cogl-journal.c:315
         state = 0x7fffd6ee87f0
         framebuffer = 0x2266cc0
         attributes = 0x4748260
         draw_flags = 31
         ctx = 0x1fd3500
 #7  0x00007ffb95ccc8bf in _cogl_journal_flush_vbo_offsets_and_entries (batch_start=<optimized out>, batch_len=<optimized out>, data=<optimized out>) at ./cogl-journal.c:667
         state = <optimized out>
         ctx = <optimized out>
         stride = <optimized out>
         i = <optimized out>
         attribute_entry = <optimized out>
 #8  0x00007ffb95ccc4b2 in _cogl_journal_flush_clip_stacks_and_entries (batch_start=0x4f22fd0, batch_len=1, data=0x7fffd6ee87f0) at ./cogl-journal.c:746
         state = 0x7fffd6ee87f0
         ctx = 0x1fd3500
 #9  0x00007ffb95ccdd12 in _cogl_journal_flush (journal=0x226b030) at ./cogl-journal.c:1452
         state = {journal = 0x226b030, attribute_buffer = 0x27061e0, attributes = 0x132ce30, current_attribute = 24, stride = 32, array_offset = 0, current_vertex = 0, indices = 0x7ffb98fcbc81, indices_type_size = 78163984, modelview_stack = 0x2260aa0, projection_stack = 0x2260b00, pipeline = 0x4fe1c40}
         i = <optimized out>
         modelview_stack = <optimized out>
         ctx = <optimized out>
 #10 0x00007ffb95cd0803 in cogl_framebuffer_clear4f (framebuffer=0x2266cc0, buffers=2, red=0.13333334, green=0.400000006, blue=0.733333349, alpha=1) at ./cogl-framebuffer.c:423
         clip_stack = 0x4e89550
         scissor_x0 = 0
         scissor_y0 = 0
         scissor_x1 = 2560
         scissor_y1 = 1440
 #11 0x00007ffb961a6925 in ?? () from /tmp/tmpJiE72R/usr/lib/x86_64-linux-gnu/libclutter-1.0.so.0
 No symbol table info available.
 #12 0x00007ffb9926fca2 in g_closure_invoke (closure=0x126b990, return_value=0x0, n_param_values=1, param_values=0x7fffd6ee8b60, invocation_hint=<optimized out>) at /build/buildd/glib2.0-2.32.3/./gobject/gclosure.c:777
         marshal = 0x7ffb9926e8c0 <g_type_class_meta_marshal>
         marshal_data = <optimized out>
         in_marshal = <optimized out>
         real_closure = 0x126b970
         __PRETTY_FUNCTION__ = "g_closure_invoke"
 #13 0x00007ffb99281339 in signal_emit_unlocked_R (node=<optimized out>, detail=0, instance=<optimized out>, emission_return=0x0, instance_and_params=0x7fffd6ee8b60) at /build/buildd/glib2.0-2.32.3/./gobject/gsignal.c:3585
         accumulator = 0x0
         emission = {next = 0x0, instance = 0x2267400, ihint = {signal_id = 243, detail = 0, run_type = G_SIGNAL_RUN_LAST}, state = EMISSION_RUN, chain_type = 33487872}
         class_closure = 0x126b990
         hlist = 0x4b4f928
         handler_list = 0x2268400
         return_accu = 0x0
         accu = {g_type = 0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
         signal_id = 243
         max_sequential_handler_number = 21918
         return_value_altered = 1
 #14 0x00007ffb99289099 in g_signal_emit_valist (instance=0x2267400, signal_id=<optimized out>, detail=0, var_args=<optimized out>) at /build/buildd/glib2.0-2.32.3/./gobject/gsignal.c:3296
         instance_and_params = 0x7fffd6ee8b60
         signal_return_type = 4
         param_values = 0x7fffd6ee8b78
         node = 0x126b9c0
         i = <optimized out>
         n_params = 0
         __PRETTY_FUNCTION__ = "g_signal_emit_valist"
 #15 0x00007ffb99289242 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at /build/buildd/glib2.0-2.32.3/./gobject/gsignal.c:3352
         var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fffd6ee8e60, reg_save_area = 0x7fffd6ee8da0}}
 #16 0x00007ffb9614a3f5 in clutter_actor_continue_paint () from /tmp/tmpJiE72R/usr/lib/x86_64-linux-gnu/libclutter-1.0.so.0
 No symbol table info available.
 #17 0x00007ffb961592cc in ?? () from /tmp/tmpJiE72R/usr/lib/x86_64-linux-gnu/libclutter-1.0.so.0
 No symbol table info available.
 #18 0x00007ffb961aa7ef in ?? () from /tmp/tmpJiE72R/usr/lib/x86_64-linux-gnu/libclutter-1.0.so.0
 No symbol table info available.
 #19 0x00007ffb96142538 in ?? () from /tmp/tmpJiE72R/usr/lib/x86_64-linux-gnu/libclutter-1.0.so.0
 No symbol table info available.
 #20 0x00007ffb961a946e in ?? () from /tmp/tmpJiE72R/usr/lib/x86_64-linux-gnu/libclutter-1.0.so.0
 No symbol table info available.
 #21 0x00007ffb961903cd in ?? () from /tmp/tmpJiE72R/usr/lib/x86_64-linux-gnu/libclutter-1.0.so.0
 No symbol table info available.
 #22 0x00007ffb98fb2d53 in g_main_dispatch (context=0x1229430) at /build/buildd/glib2.0-2.32.3/./glib/gmain.c:2539
         dispatch = 0x7ffb96190220
         was_in_call = 0
         user_data = 0x0
         callback = 0
         cb_funcs = 0x0
         cb_data = 0x0
         current_source_link = {data = 0x2255640, next = 0x0}
         need_destroy = <optimized out>
         source = 0x2255640
         current = 0x2571450
         i = <optimized out>
 #23 g_main_context_dispatch (context=0x1229430) at /build/buildd/glib2.0-2.32.3/./glib/gmain.c:3075
 No locals.
 #24 0x00007ffb98fb30a0 in g_main_context_iterate (dispatch=1, block=<optimized out>, context=0x1229430, self=<optimized out>) at /build/buildd/glib2.0-2.32.3/./glib/gmain.c:3146
         timeout = 0
         some_ready = 1
         fds = <optimized out>
         max_priority = 150
         nfds = 11
         allocated_nfds = <optimized out>
 #25 g_main_context_iterate (context=0x1229430, block=<optimized out>, dispatch=1, self=<optimized out>) at /build/buildd/glib2.0-2.32.3/./glib/gmain.c:3083
         some_ready = 1
 #26 0x00007ffb98fb349a in g_main_loop_run (loop=0x1229e60) at /build/buildd/glib2.0-2.32.3/./glib/gmain.c:3340
         __PRETTY_FUNCTION__ = "g_main_loop_run"
 #27 0x00007ffb99c81761 in meta_run () from /tmp/tmpJiE72R/usr/lib/libmuffin.so.0
 No symbol table info available.
 #28 0x000000000040179b in main (argc=1, argv=0x7fffd6ee9588) at main.c:283
         ctx = <optimized out>
         error = 0x0
         ecode = <optimized out>
michael-schaller commented 10 years ago

This time - again viewing a fullscreen Flash video in Chrome - Cinnamon didn't crash for me but it flickered like crazy and the whole window manager was messed up like windows rendered improperly, only parts of windows were shown, ... . To me this looks like an issue with Muffin.

~/.xsession-errors showed these entries before I restarted Cinnamon via Alt+F2 -> r:

Window manager warning: Treating resize request of legacy application 0x1e11885 (Google Chr) as a fullscreen request
Window manager warning: Log level 16: STACK_OP_RAISE_ABOVE: sibling window 0x1e11885 not in stack
Window manager warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x2c00004 (None)
Window manager warning: meta_window_activate called by a pager with a 0 timestamp; the pager needs to be fixed.
Window manager warning: Log level 16: STACK_OP_RAISE_ABOVE: sibling window 0x1e0005d not in stack
Window manager warning: Log level 16: STACK_OP_LOWER_BELOW: sibling window 0x1e0005d not in stack

Ubuntu: 12.04 amd64 Chrome version: 30.0.1599.101-1 Chrome Flash: 11.9.900.117 (ppapi) Cinnamon: 2.0.2-20131011040307-precise Muffin: 2.0.1-20131011003005-precise

michael-schaller commented 10 years ago

I've tried to reproduce the issue with Wakfu and there I can instantly and at will reproduce the Cinnamon crash. Instructions:

sudo apt-get install libxtst6:i386
cd /tmp
wget http://dl.ak.ankama.com/games/installers/wakfu-amd64.tar.gz
tar -xf wakfu-amd64.tar.gz
cd wakfu
./wakfu

Press Play Press Options Reconfigure to use fullscreen non-windowed mode (and restart Wakfu if it doesn't flicker yet) Screen should already flicker crazily Press Alt+Tab and Cinnamon should crash

Here is the full updated crash report with Cinnamon 2.0.2 stable: https://dl.dropboxusercontent.com/u/1080918/_usr_bin_cinnamon.1000.crash.xz

I've also switched to Cinnamon Nightly and the crash still happens with the current packages.

soulearth commented 10 years ago

Hello everyone,

I have an Intel HD 2000 graphics card. I use native linux drivers.

Wisheu it's exactly this bug. Effectively, cinnamon crash when I press alt + tab .

Thank you for your help. good day

michael-schaller commented 10 years ago

Looks like this is an issue with the Intel graphics driver. Searching the web I've found this trail: 1) https://bugs.freedesktop.org/show_bug.cgi?id=59280 has a similar stack trace 2) Bug 59280 is a duplicate of https://bugs.freedesktop.org/show_bug.cgi?id=55984 3) Bug 55984 comment 143 points to the commit http://cgit.freedesktop.org/~danvet/drm-intel/commit/?id=262b6d363fcff16359c93bd58c297f961f6e6273 4) Looking at the commit it seems an update to kernel 3.8 with matching Xorg and Mesa might resolve the issue

So I've updated my graphics stack on Ubuntu 12.04. I've included the command I've used but depending on your setup this might not work for you! Many people - especially Steam users - use the X Updates PPA or even the graphics driver supplied by Intel directly via 01.org! So please be careful with this command: sudo apt-get install linux-generic-lts-raring mesa-common-dev-lts-raring x11-xserver-utils-lts-raring xserver-common-lts-raring xserver-xorg-lts-raring libgl1-mesa-glx-lts-raring:i386

After a reboot I've tried Wakfu again but unfortunately it didn't work anymore because it couldn't set the fullscreen resolution I've configured previously anymore. I'e removed the Wakfu seetings file ~/.local/share/data/Ankama/Wakfu/game/preferences/userPreferences.properties and afterwards Wakfu didn't flicker and didn't crash Cinnamon anymore. Wohoo!

So in the end this really looks like an Intel graphics driver issue to me. I wonder though why it didn't happen with previous Cinnamon versions... Anyhow... I can finally remove this Wakfu stuff from my computer again.

michael-schaller commented 10 years ago

@soulearth were you also able to fix this issue on your machine?

soulearth commented 10 years ago

Hello,

I have not tested it yet but your solution looks good. As I installed Steam, I do not know if I can follow your procedure. What do you think?

It is surprising that the bug affects only cinnamon ...

Thank you for your help.