Crash when using OBS-Studio
On current main (4ac64883) I reliably get crashes when using OBS-Studio (qt-wayland backend):
(gdb) bt full
#0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
tid = <optimized out>
ret = 0
pd = <optimized out>
old_mask =
{__val = {26603012, 26602912, 26603012, 0, 0, 0, 0, 0, 550711865852, 13241006669616474624, 0, 13241006669616474624, 140270295639232, 140726259445728, 140270118237133, 140270295639232}}
ret = <optimized out>
#1 0x00007f93390e28f3 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
#2 0x00007f93390956a6 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
ret = <optimized out>
#3 0x00007f933907f7d3 in __GI_abort () at abort.c:79
save_stage = 1
act =
{__sigaction_handler = {sa_handler = 0x7f932e91f3cd, sa_sigaction = 0x7f932e91f3cd}, sa_mask = {__val = {3751, 26602912, 16, 96, 112, 140270295384208, 0, 47270630304, 13241006669616474624, 140726259445808, 18446744073709551488, 11, 140270118237133, 3751, 140270118237696, 140726259447168}}, sa_flags = 957287429, sa_restorer = 0x7f933924f3a0 <__GI__IO_file_jumps>}
sigs =
{__val = {32, 140726259447168, 140270287882432, 140270294058981, 3751, 140270118237696, 140726259447168, 140270293945274, 206158430256, 140270118238160, 140270295403552, 140270294059274, 206158430232, 140726259446032, 140726259445840, 13241006669616474624}}
#4 0x00007f933907f6fb in __assert_fail_base
(fmt=<optimized out>, assertion=<optimized out>, file=<optimized out>, line=<optimized out>, function=<optimized out>) at assert.c:92
str = 0x195eda0 "\256\205\225\001"
total = 4096
#5 0x00007f933908e396 in __GI___assert_fail
(assertion=0x7f932e91f600 "shsurf", file=0x7f932e91f3cd "../desktop-shell/shell.c", line=3751, function=0x7f932e91f7d0 <__PRETTY_FUNCTION__.1> "activate") at assert.c:101
#6 0x00007f932e91886b in activate (shell=0x1891500, view=0x1956310, seat=0x188bec0, flags=3) at ../desktop-shell/shell.c:3751
es = 0x19556d0
main_surface = 0x19556d0
state = 0x7f932e8d4745 <weston_surface_get_desktop_surface+24>
ws = 0x194bfb0
old_es = 0x7ffd62b471e0
shsurf = 0x0
shsurf_child = 0x1956310
shseat = 0x18e1070
__PRETTY_FUNCTION__ = "activate"
#7 0x00007f932e91889d in activate (shell=0x1891500, view=0x19407f0, seat=0x188bec0, flags=3) at ../desktop-shell/shell.c:3756
es = 0x194bfb0
main_surface = 0x194bfb0
state = 0x7f932e8d4745 <weston_surface_get_desktop_surface+24>
ws = 0x194bfb0
old_es = 0x7ffd62b47270
shsurf = 0x1940a60
shsurf_child = 0x1956580
shseat = 0x18e1070
__PRETTY_FUNCTION__ = "activate"
#8 0x00007f932e918b11 in activate_binding (seat=0x188bec0, shell=0x1891500, focus_view=0x19407f0, flags=3) at ../desktop-shell/shell.c:3837
main_view = 0x0
main_surface = 0x194bfb0
#9 0x00007f932e918b78 in click_to_activate_binding (pointer=0x193a880, time=0x7ffd62b473c0, button=272, data=0x1891500) at ../desktop-shell/shell.c:3850
#10 0x00007f933900c7dc in weston_compositor_run_button_binding (compositor=0x1135990, pointer=0x193a880, time=0x7ffd62b473c0, button=272, state=WL_POINTER_BUTTON_STATE_PRESSED) at ../libweston/bindings.c:374
handler = 0x7f932e918b19 <click_to_activate_binding>
b = 0x18eae60
tmp = 0x18ead50
#11 0x00007f9339027760 in notify_button (seat=0x188bec0, time=0x7ffd62b473c0, button=272, state=WL_POINTER_BUTTON_STATE_PRESSED) at ../libweston/input.c:1902
compositor = 0x1135990
pointer = 0x193a880
#12 0x00007f93385d6a3a in handle_pointer_button (libinput_device=0x18c93a0, pointer_event=0x18ef480) at ../libweston/libinput-device.c:194
device = 0x18d63d0
button_state = 1
seat_button_count = 1
time = {tv_sec = 16097, tv_nsec = 47841000}
#13 0x00007f93385d74eb in evdev_device_process_event (event=0x18ef480) at ../libweston/libinput-device.c:544
libinput_device = 0x18c93a0
device = 0x18d63d0
handled = 1
need_frame = false
#14 0x00007f93385d5b16 in udev_input_process_event (event=0x18ef480) at ../libweston/libinput-seat.c:208
libinput = 0x184b6f0
libinput_device = 0x18c93a0
input = 0x113f040
ret = 0
#15 0x00007f93385d5b34 in process_event (event=0x18ef480) at ../libweston/libinput-seat.c:218
#16 0x00007f93385d5b5f in process_events (input=0x113f040) at ../libweston/libinput-seat.c:228
event = 0x18ef480
#17 0x00007f93385d5bc8 in udev_input_dispatch (input=0x113f040) at ../libweston/libinput-seat.c:239
#18 0x00007f93385d5bf5 in libinput_source_dispatch (fd=21, mask=1, data=0x113f040) at ../libweston/libinput-seat.c:249
input = 0x113f040
#19 0x00007f9338fdc2b2 in wl_event_loop_dispatch (loop=0x112fd90, timeout=timeout@entry=-1) at ../src/event-loop.c:1027
ep = {{events = 1, data = {ptr = 0x189ced0, fd = 25808592, u32 = 25808592, u64 = 25808592}}, {events = 1, data = {ptr = 0x189ced0, fd = 25808592, u32 = 25808592, u64 = 25808592}}, {events = 0, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 0, data = {ptr = 0x1947f80, fd = 26509184, u32 = 26509184, u64 = 26509184}}, {events = 1655993888, data = {ptr = 0x2000007ffd, fd = 32765, u32 = 32765, u64 = 137438986237}}, {events = 0, data = {ptr = 0x194af98, fd = 26521496, u32 = 26521496, u64 = 26521496}}, {events = 26513288, data = {ptr = 0x62b4760000000000, fd = 0, u32 = 0, u64 = 7112439453896933376}}, {events = 32765, data = {ptr = 0x7f9338fdca67 <wl_connection_flush+343>, fd = 956156519, u32 = 956156519, u64 = 140270293076583}}, {events = 26269280, data = {ptr = 0x2000000000, fd = 0, u32 = 0, u64 = 137438953472}}, {events = 0, data = {ptr = 0x7ffd62b47660, fd = 1655993952, u32 = 1655993952, u64 = 140726259447392}}, {events = 1668246573, data = {ptr = 0x1949b0000005b78, fd = 23416, u32 = 23416, u64 = 113886314893433720}}, {events = 0, data = {ptr = 0x20, fd = 32, u32 = 32, u64 = 32}}, {events = 26513288, data = {ptr = 0x1400000000, fd = 0, u32 = 0, u64 = 85899345920}}, {events = 0, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 0, data = {ptr = 0x62b4760000000000, fd = 0, u32 = 0, u64 = 7112439453896933376}}, {events = 32765, data = {ptr = 0x1, fd = 1, u32 = 1, u64 = 1}}, {events = 0, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 0, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 958716576, data = {ptr = 0x1400007f93, fd = 32659, u32 = 32659, u64 = 85899378579}}, {events = 0, data = {ptr = 0x100000001, fd = 1, u32 = 1, u64 = 4294967297}}, {events = 65, data = {ptr = 0x390f06d900000000, fd = 0, u32 = 0, u64 = 4111512513890222080}}, {events = 32659, data = {ptr = 0x7ffd62b47cc8, fd = 1655995592, u32 = 1655995592, u64 = 140726259449032}}, {events = 18021776, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 0, data = {ptr = 0xb7c1816983116a00, fd = -2096010752, u32 = 2198956544, u64 = 13241006669616474624}}, {events = 959036091, data = {ptr = 0xffffff8000007f93, fd = 32659, u32 = 32659, u64 = 18446743523953770387}}, {events = 4294967295, data = {ptr = 0x2, fd = 2, u32 = 2, u64 = 2}}, {events = 1655995592, data = {ptr = 0x40112600007ffd, fd = 32765, u32 = 32765, u64 = 18033253415944189}}, {events = 0, data = {ptr = 0x7f93392d9aa0 <_rtld_local_ro>, fd = 959290016, u32 = 959290016, u64 = 140270296210080}}, {events = 4210168, data = {ptr = 0x390f0c0500000000, fd = 0, u32 = 0, u64 = 4111518200426921984}}, {events = 32659, data = {ptr = 0x7f933929babb, fd = 959036091, u32 = 959036091, u64 = 140270295956155}}, {events = 26366080, data = {ptr = 0x1924fc000000000, fd = 0, u32 = 0, u64 = 113240626689998848}}, {events = 0, data = {ptr = 0x1135618, fd = 18044440, u32 = 18044440, u64 = 18044440}}}
source = <optimized out>
i = 0
count = <optimized out>
has_timers = <optimized out>
#20 0x00007f9338fda115 in wl_display_run (display=0x11355d0) at ../src/wayland-server.c:1408
#21 0x00007f9339293e5a in wet_main (argc=1, argv=0x7ffd62b47cc8, test_data=0x0) at ../compositor/main.c:3565
ret = 1
cmdline = 0x1134d00 "core"
display = 0x11355d0
signals = {0x112c7a0, 0x112c6c0, 0x112c2d0, 0x112c1f0}
loop = 0x112fd90
i = 1
fd = -1
backend = 0x1135970 "drm-backend.so"
shell = 0x1156dc0 "desktop-shell.so"
xwayland = true
modules = 0x18df0b0 ""
option_modules = 0x0
log = 0x0
log_scopes = 0x0
flight_rec_scopes = 0x7f933929bc3e "log,drm-backend"
server_socket = 0x0
idle_time = 300
help = 0
socket_name = 0x0
version = 0
noconfig = 0
debug_protocol = 0
numlock_on = false
config_file = 0x0
config = 0x1136740
section = 0x1135740
primary_client = 0x0
primary_client_destroyed = {link = {prev = 0x20, next = 0x20}, notify = 0x0}
seat = 0x0
wet = {compositor = 0x1135990, config = 0x1136740, parsed_options = 0x0, drm_use_current_mode = false, heads_changed_listener = {link = {prev = 0x1135d90, next = 0x1135d90}, notify = 0x7f933929093d <drm_heads_changed>}, simple_output_configure = 0x0, init_failed = false, layoutput_list = {prev = 0x1155ff8, next = 0x1155ff8}, child_process_list = {prev = 0x187def0, next = 0x18880e0}, autolaunch_pid = -1, autolaunch_watch = false, use_color_manager = false}
log_ctx = 0x112dcc0
logger = 0x1134db0
flight_rec = 0x1134df0
mask = {__val = {512, 0, 9, 140270294204025, 0, 1, 48, 5, 32, 0, 3, 13241006669616474624, 2, 9223372036854775822, 0, 0}}
wait_for_debugger = false
protologger = 0x1135530
core_options = {{type = WESTON_OPTION_STRING, name = 0x7f933929bb63 "backend", short_name = 66 'B', data = 0x7ffd62b47ad0}, {type = WESTON_OPTION_STRING, name = 0x7f933929ba2d "shell", short_name = 0 '\000', data = 0x7ffd62b47ac8}, {type = WESTON_OPTION_STRING, name = 0x7f933929bb6b "socket", short_name = 83 'S', data = 0x7ffd62b47a88}, {type = WESTON_OPTION_INTEGER, name = 0x7f933929bb72 "idle-time", short_name = 105 'i', data = 0x7ffd62b47a94}, {type = WESTON_OPTION_BOOLEAN, name = 0x7f933929bb7c "xwayland", short_name = 0 '\000', data = 0x7ffd62b47ac7}, {type = WESTON_OPTION_STRING, name = 0x7f933929bb85 "modules", short_name = 0 '\000', data = 0x7ffd62b47ab0}, {type = WESTON_OPTION_STRING, name = 0x7f933929bb5f "log", short_name = 0 '\000', data = 0x7ffd62b47aa8}, {type = WESTON_OPTION_BOOLEAN, name = 0x7f933929bb8d "help", short_name = 104 'h', data = 0x7ffd62b47a90}, {type = WESTON_OPTION_BOOLEAN, name = 0x7f933929bb92 "version", short_name = 0 '\000', data = 0x7ffd62b47a84}, {type = WESTON_OPTION_BOOLEAN, name = 0x7f933929bb9a "no-config", short_name = 0 '\000', data = 0x7ffd62b47a80}, {type = WESTON_OPTION_STRING, name = 0x7f933929bba4 "config", short_name = 99 'c', data = 0x7ffd62b47a70}, {type = WESTON_OPTION_BOOLEAN, name = 0x7f933929bbab "wait-for-debugger", short_name = 0 '\000', data = 0x7ffd62b4795f}, {type = WESTON_OPTION_BOOLEAN, name = 0x7f933929bbbd "debug", short_name = 0 '\000', data = 0x7ffd62b47a7c}, {type = WESTON_OPTION_STRING, name = 0x7f933929bbc3 "logger-scopes", short_name = 108 'l', data = 0x7ffd62b47aa0}, {type = WESTON_OPTION_STRING, name = 0x7f933929bbd1 "flight-rec-scopes", short_name = 102 'f', data = 0x7ffd62b47a98}}
#22 0x000000000040114b in main (argc=1, argv=0x7ffd62b47cc8) at ../compositor/executable.c:33
STR:
- install OBS from flathub (https://flathub.org/apps/details/com.obsproject.Studio)
- launch it in a Weston session
- add a source to "Sources", e.g. a V4L2 source
- double-click on the source to open its settings window
- click "Cancel" to close the window
- while the settings window fades out, double-click on the source entry again (got to be fast)
- observe crash