Hang on starting an SDL2 testdraw2 binary
Affected version
Fedora 32, Xorg session, gnome-shell-3.36.2-3.fc32.x86_64, mutter-3.36.2-1.fc32.x86_64
Bug summary
I ran test/testdraw2 --fullscreen
from SDL2 13846:599a8525ff0e. My main monitor turned off and everything froze, not responding even to the VT switch combination. A couple seconds later, the second monitor turned off too and I managed to switch to a different VT.
Not sure how reproducible this is. At least on Wayland it has been starting up fine.
Steps to reproduce
test/testdraw2 --fullscreen
What happened
Everything froze.
What did you expect to happen
The executable opens as normal.
Relevant logs, screenshots, screencasts etc.
gnome-shell backtrace that I got after switching to a different VT:
#0 0x00007fe8470dbb6f in __GI___poll (fds=fds@entry=0x7ffd6b6923b8, nfds=nfds@entry=1, timeout=timeout@entry=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1 0x00007fe84420938a in poll (__timeout=-1, __nfds=1, __fds=0x7ffd6b6923b8) at /usr/include/bits/poll2.h:46
#2 _xcb_conn_wait (c=c@entry=0x55e51d530550, cond=cond@entry=0x55e5209c03d8, vector=vector@entry=0x0, count=count@entry=0x0) at xcb_conn.c:479
#3 0x00007fe84420b812 in xcb_wait_for_special_event (c=0x55e51d530550, se=0x55e5209c03b0) at xcb_in.c:795
#4 0x00007fe840d632f0 in loader_dri3_wait_for_msc () at /lib64/libGLX_mesa.so.0
#5 0x00007fe840d568ff in dri3_drawable_get_msc () at /lib64/libGLX_mesa.so.0
#6 0x00007fe840d407a2 in __glXGetVideoSyncSGI () at /lib64/libGLX_mesa.so.0
#7 0x00007fe846cb8561 in _cogl_winsys_get_vsync_counter (ctx=0x55e51d6ffdf0) at ../cogl/cogl/winsys/cogl-winsys-glx.c:1952
#8 _cogl_winsys_onscreen_swap_buffers_with_damage (onscreen=0x55e51d779ec0, rectangles=<optimized out>, n_rectangles=<optimized out>) at ../cogl/cogl/winsys/cogl-winsys-glx.c:1953
#9 0x00007fe846cae74e in cogl_onscreen_swap_buffers_with_damage (onscreen=onscreen@entry=0x55e51d779ec0, rectangles=rectangles@entry=0x7ffd6b692660, n_rectangles=n_rectangles@entry=0) at ../cogl/cogl/cogl-onscreen.c:310
#10 0x00007fe8474c050e in swap_framebuffer (view=view@entry=0x55e51d57f340 [ClutterStageViewCogl], swap_region=swap_region@entry=0x55e51ff95b00, swap_with_damage=swap_with_damage@entry=0, stage_window=0x7fe824003650) at ../clutter/clutter/cogl/clutter-stage-cogl.c:445
#11 0x00007fe8474c0f3d in clutter_stage_cogl_redraw_view (stage_window=0x7fe824003650, view=0x55e51d57f340 [ClutterStageViewCogl]) at ../clutter/clutter/cogl/clutter-stage-cogl.c:976
#12 0x00007fe8474c18da in clutter_stage_cogl_redraw (stage_window=0x7fe824003650) at ../clutter/clutter/cogl/clutter-stage-cogl.c:1008
#13 0x00007fe847497fea in clutter_stage_do_redraw (stage=0x55e51d778530 [MetaStage]) at ../clutter/clutter/clutter-stage.c:1412
#14 _clutter_stage_do_update (stage=0x55e51d778530 [MetaStage]) at ../clutter/clutter/clutter-stage.c:1538
#15 0x00007fe84747f331 in master_clock_update_stages (master_clock=0x55e51dc56600 [ClutterMasterClockDefault], stages=0x55e5214d7f20 = {...}) at ../clutter/clutter/clutter-master-clock-default.c:388
#16 clutter_clock_dispatch (source=source@entry=0x55e51d9f6380, callback=<optimized out>, user_data=<optimized out>) at ../clutter/clutter/clutter-master-clock-default.c:517
#17 0x00007fe847e9c7af in g_main_dispatch (context=0x55e51d4c6150) at ../glib/gmain.c:3309
#18 g_main_context_dispatch (context=0x55e51d4c6150) at ../glib/gmain.c:3974
#19 0x00007fe847e9cb38 in g_main_context_iterate (context=0x55e51d4c6150, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4047
#20 0x00007fe847e9ce53 in g_main_loop_run (loop=0x55e51d7d01a0) at ../glib/gmain.c:4241
#21 0x00007fe84727d430 in meta_run () at ../src/core/main.c:676
#22 0x000055e51bb2dc9c in main (argc=<optimized out>, argv=<optimized out>) at ../src/main.c:550