Proposed solution: As the stacktrace below shows the problem is caused by module cogl_texture_new_with_size at cogl/cogl/deprecated/cogl/auto-texture.c . This module is trying to create a texture with size 2560 x 1024, which is by default is configured by gdm3 with wayland for 2 monitors. This is not supported by graphics-card, causing error "Failed to create texture 2d due to size/format constraints". The error is freed by cogl_texture_new_with_size, but the variable skip_error is not set to NULL by the call to cogl_error_free (because the parameter is a copy). Then module tries to allocate a slice with max_waste -1. This also fails, causing error "Sliced texture size of 2560 x 1024 not possible with max waste set to -1". Module cogl_set_error complains about the skip_error not being NULL with message "CoglError set...", but does not set a new value to skip_error. Also the second error is programmed to be freed by cogl_error_free at cogl_texture_new_with_size, that in this way tries to free the same memory twice. This causes the crash "double free or corruption (fasttop)", unless by accident the same memory-address is allocated again. To solve, the statement skip_error = NULL; should be added: cogl_texture_new_with_size (unsigned int width, unsigned int height, CoglTextureFlags flags, CoglPixelFormat internal_format) { CoglTexture *tex; CoglError *skip_error = NULL; _COGL_GET_CONTEXT (ctx, NULL); if ((_cogl_util_is_pot (width) && _cogl_util_is_pot (height)) || (cogl_has_feature (ctx, COGL_FEATURE_ID_TEXTURE_NPOT_BASIC) && cogl_has_feature (ctx, COGL_FEATURE_ID_TEXTURE_NPOT_MIPMAP))) { /* First try creating a fast-path non-sliced texture */ tex = COGL_TEXTURE (cogl_texture_2d_new_with_size (ctx, width, height)); _cogl_texture_set_internal_format (tex, internal_format); if (!cogl_texture_allocate (tex, &skip_error)) { cogl_error_free (skip_error); skip_error = NULL; This solution is tested and solves the problem during startup and for right corner click. Stacktrace with modulenames/linenumbers: Package: gnome-shell 3.30.0-1ubuntu2 Stacktrace: #0 0xb7ef9d41 in __kernel_vsyscall () #1 0xb6a4e512 in __libc_signal_restore_set (set=0xbfcb8a0c) at ../sysdeps/unix/sysv/linux/internal-signals.h:84 set = {__val = {0, 0, 1482184750, 5789784, 2237142784, 273, 273, 3080022123, 3080956952, 16, 3080959932, 16, 3080023695, 16, 3217787612, 3066097232, 3080956952, 3080959932, 19876880, 3217787612, 3080285386, 11, 0, 3080023577, 3080285340, 3080956952, 16, 3080959932, 3080016471, 3217788168, 0, 3217787712}} pid = tid = ret = 0 #2 0xb6a4e512 in __GI_raise (sig=6) at ../sysdeps/unix/sysv/linux/raise.c:48 set = {__val = {0, 0, 1482184750, 5789784, 2237142784, 273, 273, 3080022123, 3080956952, 16, 3080959932, 16, 3080023695, 16, 3217787612, 3066097232, 3080956952, 3080959932, 19876880, 3217787612, 3080285386, 11, 0, 3080023577, 3080285340, 3080956952, 16, 3080959932, 3080016471, 3217788168, 0, 3217787712}} pid = tid = ret = 0 #3 0xb6a382b6 in __GI_abort () at abort.c:79 save_stage = 1 act = {__sigaction_handler = {sa_handler = 0xb7996077 , sa_sigaction = 0xb7996077 }, sa_mask = {__val = {3080956952, 3060745084, 3080120357, 3217787880, 3060745084, 3217788000, 32868, 20347328, 0, 28984448, 2237142784, 3060745084, 3080120310, 3080956952, 3080956952, 3217788408, 1024, 31097824, 3080018485, 3060691022, 16, 3060756628, 0, 3, 4096, 3065078356, 2, 3066019840, 4096, 3217788168, 3064530671, 0}}, sa_flags = 4096, sa_restorer = 0x3} sigs = {__val = {32, 0 }} #4 0xb6a9074c in __libc_message (action=do_abort, fmt=) at ../sysdeps/posix/libc_fatal.c:181 ap = fd = 2 list = nlist = cp = written = #5 0xb6a975dd in malloc_printerr (str=str@entry=0xb6ba525c "double free or corruption (fasttop)") at malloc.c:5336 #6 0xb6a98e6f in _int_free (av=, p=, have_lock=) at malloc.c:4216 idx = 6 old = old2 = size = fb = nextchunk = nextsize = nextinuse = prevsize = bck = fwd = __PRETTY_FUNCTION__ = "_int_free" #7 0xb7954290 in g_free () at /usr/lib/i386-linux-gnu/libglib-2.0.so.0 #8 0xb7938c53 in g_error_free () at /usr/lib/i386-linux-gnu/libglib-2.0.so.0 #9 0xb66d7058 in cogl_error_free (error=0x16cba70) at cogl-error.c:45 #10 0xb66db62c in cogl_texture_new_with_size (width=2560, height=1024, flags=COGL_TEXTURE_NO_SLICING, internal_format=COGL_PIXEL_FORMAT_RGBA_8888_PRE) at deprecated/cogl-auto-texture.c:121 tex = 0x1da83e0 skip_error = 0x16cba70 ctx = #11 0xb6e9a618 in clutter_offscreen_effect_real_create_texture (effect=0x23c3b00, width=2560, height=1024) at clutter-offscreen-effect.c:141 #12 0xb6e9ab6b in update_fbo (fbo_height=, fbo_width=, effect=0x23c3b00) at clutter-offscreen-effect.c:189 self = 0x23c3b00 priv = 0x23c3a30 self = 0x23c3b00 priv = 0x23c3a30 box = {x1 = 3.83952416e-38, y1 = -7.05064576e-06, x2 = -7.46333353e-06, y2 = -6.81363736e-06} stage = projection = {xx = 3.83970801e-38, yx = 3.83946587e-38, zx = 3.83939748e-38, wx = 3.83952416e-38, xy = 3.83970801e-38, yy = 3.71409562e-38, zy = -6.8135173e-06, wy = -3.49830611e-06, xz = -1.59032059, yz = 3.3734514e-37, zz = 3.83939748e-38, wz = -6.83245798e-06, xw = 3.83970801e-38, yw = 3.83946587e-38, zw = 0, ww = -1.59032059, private_member_inv = {1.33061024e-37, 3.83970801e-38, -6.83241933e-06, -2.85067945e-05, 3.83970801e-38, 3.83946587e-38, 3.83939748e-38, -2.43004561e-05, 3.83970801e-38, 3.83946587e-38, 3.83970801e-38, -1.01604956e-35, 2.80259693e-45, -2.02588271e-05, -3.4981374e-06, -7.46333353e-06}, private_member_type = 37501696, private_member_flags = 44250112, private_member__padding3 = 37501488} transparent = {private_member_red = 196 '\304', private_member_green = 12 '\f', private_member_blue = 81 'Q', private_member_alpha = 1 '\001', private_member_padding0 = 22088900, private_member_padding1 = 0, private_member_padding2 = 1} stage_width = 2560 stage_height = 1024 fbo_width = 2560 fbo_height = 1024 width = -4.73312366e-06 height = -7.46333353e-06 xexpand = yexpand = texture_width = texture_height = #13 0xb6e9ab6b in clutter_offscreen_effect_pre_paint (effect=0x23c3b00) at clutter-offscreen-effect.c:267 self = 0x23c3b00 priv = 0x23c3a30 box = {x1 = 3.83952416e-38, y1 = -7.05064576e-06, x2 = -7.46333353e-06, y2 = -6.81363736e-06} stage = projection = {xx = 3.83970801e-38, yx = 3.83946587e-38, zx = 3.83939748e-38, wx = 3.83952416e-38, xy = 3.83970801e-38, yy = 3.71409562e-38, zy = -6.8135173e-06, wy = -3.49830611e-06, xz = -1.59032059, yz = 3.3734514e-37, zz = 3.83939748e-38, wz = -6.83245798e-06, xw = 3.83970801e-38, yw = 3.83946587e-38, zw = 0, ww = -1.59032059, private_member_inv = {1.33061024e-37, 3.83970801e-38, -6.83241933e-06, -2.85067945e-05, 3.83970801e-38, 3.83946587e-38, 3.83939748e-38, -2.43004561e-05, 3.83970801e-38, 3.83946587e-38, 3.83970801e-38, -1.01604956e-35, 2.80259693e-45, -2.02588271e-05, -3.4981374e-06, -7.46333353e-06}, private_member_type = 37501696, private_member_flags = 44250112, private_member__padding3 = 37501488} transparent = {private_member_red = 196 '\304', private_member_green = 12 '\f', private_member_blue = 81 'Q', private_member_alpha = 1 '\001', private_member_padding0 = 22088900, private_member_padding1 = 0, private_member_padding2 = 1} stage_width = 2560 stage_height = 1024 fbo_width = 2560 fbo_height = 1024 width = -4.73312366e-06 height = -7.46333353e-06 xexpand = yexpand = texture_width = texture_height = #14 0xb6e8087b in clutter_effect_real_paint (effect=0x23c3b00, flags=CLUTTER_EFFECT_PAINT_ACTOR_DIRTY) at clutter-effect.c:211 actor_meta = 0x23c3b00 actor = pre_paint_succeeded =