hybrid GPU: 'shallow' crash while interacting with the secondary screen
while running in hybrid GPU under the following stack:
- mesa: master at a5053ba27e
- mutter: master at anything between 3.27.1 and c0d9b08e but not (c0d9b08e,70fcf745] (due to #18 (closed))
- gnome-shell: master at 0b51ead00 (if running mutter at or after ab5ac211), 3.27.1 otherwise
- gnome-shell-extensions: master at ae65a82 (not strictly necessary but to keep dpkg happy), (if running mutter at or after ab5ac211), 3.27.1 otherwise
with the following basic setup:
-[0000:00]-+-00.0 Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers [8086:5910]
+-01.0-[01]----00.0 NVIDIA Corporation GP106M [GeForce GTX 1060]
Linux uini 4.14.0-3-amd64 #1 SMP Debian 4.14.13-1 (2018-01-14) x86_64 GNU/Linux (buster/sid)
with the dGPU powered up (echo ON > /proc/acpi/bbswitch
) and started prior to opening a session (servicectl stop gdm3.service ; modprobe nouveau ; servicectl start gdm3.service
) and with an external monitor plugged into the dGPU's HDMI port after starting nouveau but before starting a GNOME Shell session.
Action:
- open a window (anything. For instance, a terminal window. Or cause GNOME-Shell to open a dialog box for any reason, e.g. rearrange logical monitors around)
- start interacting with the window using the mouse. At worst, open a new window and move it to partially cover the first on the secondary monitor
Expected:
- yawn
Obtained:
- the session crashes with the backtrace below.
Note: keeping the interactions strictly on the primary screen appears to work as fine as if there was secondary screen.
#0 0x00007fc7ba5ef000 in raise (sig=11) at ../sysdeps/unix/sysv/linux/raise.c:51
#1 0x0000563b67d1e9fb in dump_gjs_stack_on_signal_handler (signo=11) at ../src/main.c:367
#2 0x00007fc7ba5ef160 in <signal handler called> () at /lib/x86_64-linux-gnu/libpthread.so.0
#3 0x00007fc7ae15dcd0 in gbm_bo_get_plane_count (bo=0x0) at ../../../src/gbm/main/gbm.c:342
#4 0x00007fc7ba8f670a in gbm_get_next_fb_id (gpu_kms=gpu_kms@entry=0x563b68fcacb0 [MetaGpuKms], gbm_surface=0x563b693140a0, out_next_bo=out_next_bo@entry=0x563b692f6a98, out_next_fb_id=out_next_fb_id@entry=0x563b692f6a8c) at backends/native/meta-renderer-native.c:1292
#5 0x00007fc7ba8f74d1 in meta_onscreen_native_swap_buffers_with_damage (onscreen=0x563b69311c00, rectangles=0x7ffee0a3c5c0, n_rectangles=0)
at backends/native/meta-renderer-native.c:1568
#6 0x00007fc7b934e816 in cogl_onscreen_swap_buffers_with_damage (onscreen=onscreen@entry=0x563b69311c00, rectangles=rectangles@entry=0x7ffee0a3c5c0, n_rectangles=n_rectangles@entry=0) at cogl-onscreen.c:319
#7 0x00007fc7bafe9c05 in swap_framebuffer (stage_window=0x1, swap_with_damage=<optimized out>, swap_region=<synthetic pointer>, view=0x563b69315210 [MetaRendererView]) at cogl/clutter-stage-cogl.c:400
#8 0x00007fc7bafe9c05 in clutter_stage_cogl_redraw_view (stage_window=stage_window@entry=0x563b692fd990, view=0x563b69315210 [MetaRendererView])
at cogl/clutter-stage-cogl.c:845
#9 0x00007fc7bafeab7b in clutter_stage_cogl_redraw (stage_window=0x563b692fd990) at cogl/clutter-stage-cogl.c:868
#10 0x00007fc7bb056477 in clutter_stage_do_redraw (stage=0x563b68fc6860 [MetaStage]) at clutter-stage.c:1121
#11 0x00007fc7bb056477 in _clutter_stage_do_update (stage=0x563b68fc6860 [MetaStage]) at clutter-stage.c:1236
#12 0x00007fc7bb041ff9 in master_clock_update_stages (master_clock=0x563b69339c40 [ClutterMasterClockDefault], stages=0x563b6c86c830 = {...})
at clutter-master-clock-default.c:443
#13 0x00007fc7bb041ff9 in clutter_clock_dispatch (source=source@entry=0x563b69338aa0, callback=<optimized out>, user_data=<optimized out>)
at clutter-master-clock-default.c:567
#14 0x00007fc7bc380d37 in g_main_dispatch (context=0x563b68f9b440) at ../../../../glib/gmain.c:3177
#15 0x00007fc7bc380d37 in g_main_context_dispatch (context=context@entry=0x563b68f9b440) at ../../../../glib/gmain.c:3830
#16 0x00007fc7bc380f70 in g_main_context_iterate (context=0x563b68f9b440, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
at ../../../../glib/gmain.c:3903
#17 0x00007fc7bc381282 in g_main_loop_run (loop=0x563b693347e0) at ../../../../glib/gmain.c:4099
#18 0x00007fc7ba89f48c in meta_run () at core/main.c:648
#19 0x0000563b67d1e41c in main (argc=<optimized out>, argv=<optimized out>) at ../src/main.c:525
(gdb)
(in this precise run, the build was at c0d9b08e although very similar stacks have been observed on 3.27.1)
Furthermore, the journal contains:
févr. 06 16:41:51 uini gnome-shell[9490]: _cogl_buffer_gl_map_range: assertion 'data != ((void *)0)' failed
févr. 06 16:41:51 uini gnome-shell[9490]: g_error_free: assertion 'error != NULL' failed
févr. 06 16:41:51 uini gnome-shell[9490]: _cogl_buffer_bind_no_create: assertion 'ctx->current_buffer[buffer->last_target] != buffer' failed
févr. 06 16:41:51 uini gnome-shell[9490]: _cogl_buffer_gl_map_range: assertion 'data != ((void *)0)' failed
févr. 06 16:41:51 uini gnome-shell[9490]: g_error_free: assertion 'error != NULL' failed
févr. 06 16:41:51 uini gnome-shell[9490]: _cogl_buffer_bind_no_create: assertion 'ctx->current_buffer[buffer->last_target] != buffer' failed
févr. 06 16:41:51 uini gnome-shell[9490]: _cogl_buffer_gl_map_range: assertion 'data != ((void *)0)' failed
févr. 06 16:41:51 uini gnome-shell[9490]: g_error_free: assertion 'error != NULL' failed
févr. 06 16:41:51 uini gnome-shell[9490]: _cogl_buffer_bind_no_create: assertion 'ctx->current_buffer[buffer->last_target] != buffer' failed
févr. 06 16:41:51 uini gnome-shell[9490]: _cogl_buffer_gl_map_range: assertion 'data != ((void *)0)' failed
févr. 06 16:41:51 uini gnome-shell[9490]: g_error_free: assertion 'error != NULL' failed
févr. 06 16:41:51 uini gnome-shell[9490]: _cogl_buffer_bind_no_create: assertion 'ctx->current_buffer[buffer->last_target] != buffer' failed
févr. 06 16:41:51 uini gnome-shell[9490]: _cogl_buffer_gl_map_range: assertion 'data != ((void *)0)' failed
févr. 06 16:41:51 uini gnome-shell[9490]: g_error_free: assertion 'error != NULL' failed
févr. 06 16:41:51 uini gnome-shell[9490]: _cogl_buffer_bind_no_create: assertion 'ctx->current_buffer[buffer->last_target] != buffer' failed
févr. 06 16:41:51 uini gnome-shell[9490]: _cogl_buffer_gl_map_range: assertion 'data != ((void *)0)' failed
févr. 06 16:41:51 uini gnome-shell[9490]: g_error_free: assertion 'error != NULL' failed
févr. 06 16:41:51 uini gnome-shell[9490]: _cogl_buffer_bind_no_create: assertion 'ctx->current_buffer[buffer->last_target] != buffer' failed
févr. 06 16:41:51 uini gnome-shell[9490]: _cogl_buffer_gl_map_range: assertion 'data != ((void *)0)' failed
févr. 06 16:41:51 uini gnome-shell[9490]: g_error_free: assertion 'error != NULL' failed
févr. 06 16:41:51 uini gnome-shell[9490]: _cogl_buffer_bind_no_create: assertion 'ctx->current_buffer[buffer->last_target] != buffer' failed
févr. 06 16:41:51 uini gnome-shell[9490]: _cogl_buffer_gl_map_range: assertion 'data != ((void *)0)' failed
févr. 06 16:41:51 uini gnome-shell[9490]: g_error_free: assertion 'error != NULL' failed
févr. 06 16:41:51 uini gnome-shell[9490]: _cogl_buffer_bind_no_create: assertion 'ctx->current_buffer[buffer->last_target] != buffer' failed
févr. 06 16:41:51 uini gnome-shell[9490]: _cogl_buffer_gl_map_range: assertion 'data != ((void *)0)' failed
févr. 06 16:41:51 uini gnome-shell[9490]: g_error_free: assertion 'error != NULL' failed
févr. 06 16:41:51 uini gnome-shell[9490]: _cogl_buffer_bind_no_create: assertion 'ctx->current_buffer[buffer->last_target] != buffer' failed
févr. 06 16:41:51 uini gnome-shell[9490]: _cogl_buffer_gl_map_range: assertion 'data != ((void *)0)' failed
févr. 06 16:41:51 uini gnome-shell[9490]: g_error_free: assertion 'error != NULL' failed
févr. 06 16:41:51 uini gnome-shell[9490]: _cogl_buffer_bind_no_create: assertion 'ctx->current_buffer[buffer->last_target] != buffer' failed
févr. 06 16:41:51 uini gnome-shell[9490]: _cogl_buffer_gl_map_range: assertion 'data != ((void *)0)' failed
févr. 06 16:41:51 uini gnome-shell[9490]: g_error_free: assertion 'error != NULL' failed
févr. 06 16:41:51 uini org.gnome.Shell.desktop[9490]: == Stack trace for context 0x563b6944d000 ==
févr. 06 16:41:51 uini gnome-shell[9490]: _cogl_buffer_bind_no_create: assertion 'ctx->current_buffer[buffer->last_target] != buffer' failed
févr. 06 16:41:51 uini systemd[1]: Started Process Core Dump (PID 9855/UID 0).