Crashes when drag-and-dropping tab from maximized window to secondary display
Affected version
OS: Arch Linux
GNOME Shell version: 44.0 (fcgu's gnome-shell package)
Issue happens on Wayland
No extensions enabled at the moment of crash
Bug summary
GNOME Session crashes when detaching and drag-and-dropping a tab from a Firefox maximized window in one display to another.
The same won't happen if I detach it in the same display, and then click and drag-and-drop to the other display. It also won't happen if Firefox is not maximized.
Steps to reproduce
- As a starting point Firefox window is maximized in one display
- Click in a tab and drag it to the secondary display
- Now drop it in the secondary display
What happened
After dropping the Firefox tab into the secondary display, the session freezes for a couple of seconds and then I'm back to GDM login screen.
What did you expect to happen
To have my detached tab as a separate Firefox window in the secondary display
Relevant logs, screenshots, screencasts etc.
From coredumpctl list (trimmed non-related output):
$ coredumpctl list
TIME PID UID GID SIG COREFILE EXE SIZE
Mon 2023-03-20 08:54:35 -03 928 1000 1000 SIGSEGV present /usr/bin/gnome-shell 16.8M
Crash's stack trace obtained using coredumpctl debuginfo 928
:
#0 0x00007f5384f4e603 in meta_context_get_display (context=<optimized out>) at ../mutter/src/core/meta-context.c:240
context = Python Exception <class 'gdb.MemoryError'>: Cannot access memory at address 0x18
#1 display_from_offer (offer=<optimized out>) at ../mutter/src/wayland/meta-wayland-data-offer.c:50
context = Python Exception <class 'gdb.MemoryError'>: Cannot access memory at address 0x18
#2 destroy_data_offer (resource=<optimized out>) at ../mutter/src/wayland/meta-wayland-data-offer.c:240
offer = 0x55f98593f690
seat = <optimized out>
#3 0x00007f53820868ba in destroy_resource (element=0x55f982778040, data=data@entry=0x0, flags=0) at ../wayland-1.21.0/src/wayland-server.c:730
resource = 0x55f982778040
#4 0x00007f53820886cc in wl_resource_destroy (resource=<optimized out>) at ../wayland-1.21.0/src/wayland-server.c:747
client = 0x55f983dd71c0
id = 4278190080
flags = <optimized out>
#5 0x00007f53845914f6 in ffi_call_unix64 () at ../src/x86/unix64.S:104
#6 0x00007f538458df5e in ffi_call_int (cif=cif@entry=0x7ffd33b6e1f0, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=closure@entry=0x0) at ../src/x86/ffi64.c:673
classes = {X86_64_INTEGER_CLASS, 32765, 2220410556, 32595}
stack = <optimized out>
argp = 0x7ffd33b6e040 ""
arg_types = <optimized out>
gprcount = 2
ssecount = <optimized out>
ngpr = 1
nsse = 0
i = <optimized out>
avn = <optimized out>
flags = <optimized out>
reg_args = <optimized out>
#7 0x00007f5384590b73 in ffi_call (cif=cif@entry=0x7ffd33b6e1f0, fn=<optimized out>, rvalue=rvalue@entry=0x0, avalue=avalue@entry=0x7ffd33b6e2c0) at ../src/x86/ffi64.c:710
arg_types = 0x7ffd33b6e210
i = <optimized out>
nargs = 2
max_reg_struct_size = <optimized out>
#8 0x00007f5382083ada in wl_closure_invoke (closure=closure@entry=0x55f98265ac60, target=<optimized out>, target@entry=0x55f982778040, opcode=opcode@entry=2, data=<optimized out>, data@entry=0x55f983dd71c0, flags=2)
at ../wayland-1.21.0/src/connection.c:1025
count = <optimized out>
cif = {abi = FFI_UNIX64, nargs = 2, arg_types = 0x7ffd33b6e210, rtype = 0x7f53845921a0 <ffi_type_void>, bytes = 0, flags = 0}
ffi_types = {0x7f53845922a0 <ffi_type_pointer>, 0x7f53845922a0 <ffi_type_pointer>, 0x7f5384592330 <ffi_type_sint32>, 0x7f5384592330 <ffi_type_sint32>, 0x7f5384592330 <ffi_type_sint32>, 0x7f5384592330 <ffi_type_sint32>, 0x0, 0x7ffd33b6e3c0, 0x201, 0x7ffd33b6e208, 0x4, 0x284fd22df, 0x7ffd33b6e1f0, 0x0, 0x55f9822025b0, 0x55f982201fb0, 0x7ffd33b6e238, 0x2, 0x0, 0x7f538554cfdd <g_quark_try_string+61>, 0x55f9859d3190, 0x7ffd33b6e2f0}
ffi_args = {0x7ffd33b6e1d0, 0x7ffd33b6e1d8, 0x55f9835a3de8, 0x55f9835a3df0, 0x55f9835a3df8, 0x55f9835a3e00, 0x55f90000000f, 0x7180aec831995500, 0xde6c, 0x7f5382085471 <log_closure+81>, 0x55f9859e10d0, 0x55f981d16870, 0x7f5384df1aa0 <main_arena>, 0x0, 0x55f983dc8770, 0x7f5384caf7b8 <__libc_calloc+216>, 0x0, 0x7180aec831995500, 0x7f538208a42d, 0x7f538208f150 <wl_data_offer_requests+48>, 0x0, 0x60}
implementation = <optimized out>
#9 0x00007f538208801c in wl_client_connection_data (fd=<optimized out>, mask=<optimized out>, data=<optimized out>) at ../wayland-1.21.0/src/wayland-server.c:437
client = <optimized out>
connection = <optimized out>
resource = 0x55f982778040
object = 0x55f982778040
closure = 0x55f98265ac60
message = 0x7f538208f150 <wl_data_offer_requests+48>
p = {4278190080, 524290}
resource_flags = 0
opcode = 2
size = <optimized out>
since = <optimized out>
len = <optimized out>
#10 0x00007f53820869e2 in wl_event_loop_dispatch (loop=0x55f9821e3a00, timeout=timeout@entry=0) at ../wayland-1.21.0/src/event-loop.c:1027
ep = {{events = 1, data = {ptr = 0x55f98544a830, fd = -2059098064, u32 = 2235869232, u64 = 94530171086896}}, {events = 32595, data = {ptr = 0x55f982371690, fd = -2110318960, u32 = 2184648336, u64 = 94530119866000}}, {events = 8321--Type <RET> for more, q to quit, c to continue without paging--c
32352, data = {ptr = 0x823717047180aec8, fd = 1904258760, u32 = 1904258760, u64 = 9382993656501284552}}, {events = 22009, data = {ptr = 0x7ffd33b6e6a0, fd = 867624608, u32 = 867624608, u64 = 140725471078048}}, {events = 2237283642, data = {ptr = 0x8559b0be00007f53, fd = 32595, u32 = 32595, u64 = 9608905610061971283}}, {events = 32595, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 2239701376, data = {ptr = 0x85604a97000055f9, fd = 22009, u32 = 22009, u64 = 9610763617209177593}}, {events = 32595, data = {ptr = 0x7f5385598e1d <sysprof_collector_mark_vprintf+61>, fd = -2057728483, u32 = 2237238813, u64 = 139996696251933}}, {events = 867624512, data = {ptr = 0xa0b838af00007ffd, fd = 32765, u32 = 32765, u64 = 11581068766053695485}}, {events = 315, data = {ptr = 0xa6, fd = 166, u32 = 166, u64 = 166}}, {events = 0, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 0, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 0, data = {ptr = 0x3199550000000000, fd = 0, u32 = 0, u64 = 3573981237783560192}}, {events = 1904258760, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 2177340576, data = {ptr = 0x33b6e7e0000055f9, fd = 22009, u32 = 22009, u64 = 3726420690954376697}}, {events = 32765, data = {ptr = 0x7ffd33b6e7c8, fd = 867624904, u32 = 867624904, u64 = 140725471078344}}, {events = 0, data = {ptr = 0x857f218000000000, fd = 0, u32 = 0, u64 = 9619444162726199296}}, {events = 22009, data = {ptr = 0x96, fd = 150, u32 = 150, u64 = 150}}, {events = 2237187841, data = {ptr = 0x2800007f53, fd = 32595, u32 = 32595, u64 = 171798724435}}, {events = 48, data = {ptr = 0x7ffd33b6e780, fd = 867624832, u32 = 867624832, u64 = 140725471078272}}, {events = 867624640, data = {ptr = 0x3199550000007ffd, fd = 32765, u32 = 32765, u64 = 3573981237783592957}}, {events = 1904258760, data = {ptr = 0x55f982371690, fd = -2110318960, u32 = 2184648336, u64 = 94530119866000}}, {events = 2177727095, data = {ptr = 0x823716a800007f53, fd = 32595, u32 = 32595, u64 = 9382993259460067155}}, {events = 22009, data = {ptr = 0x55f982daace0, fd = -2099598112, u32 = 2195369184, u64 = 94530130586848}}, {events = 2199528912, data = {ptr = 0x855a3d70000055f9, fd = 22009, u32 = 22009, u64 = 9609060306194028025}}, {events = 32595, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 832132352, data = {ptr = 0x82daace07180aec8, fd = 1904258760, u32 = 1904258760, u64 = 9429038849830465224}}, {events = 22009, data = {ptr = 0xffffffffffffff88, fd = -120, u32 = 4294967176, u64 = 18446744073709551496}}, {events = 11, data = {ptr = 0x84d0fa2400000000, fd = 0, u32 = 0, u64 = 9570424240688070656}}, {events = 32595, data = {ptr = 0x55f981d16a20, fd = -2116982240, u32 = 2177985056, u64 = 94530113202720}}, {events = 8, data = {ptr = 0x33b6e75000000000, fd = 0, u32 = 0, u64 = 3726420072479064064}}, {events = 32765, data = {ptr = 0x8, fd = 8, u32 = 8, u64 = 8}}}
source = <optimized out>
i = 0
count = <optimized out>
has_timers = <optimized out>
#11 0x00007f5384f47d9d in wayland_event_source_dispatch (base=<optimized out>, callback=<optimized out>, data=<optimized out>) at ../mutter/src/wayland/meta-wayland.c:114
source = <optimized out>
loop = <optimized out>
#12 0x00007f538553aafb in g_main_dispatch (context=0x55f981c794a0) at ../glib/glib/gmain.c:3460
dispatch = 0x7f5384f47d80 <wayland_event_source_dispatch>
prev_source = 0x0
begin_time_nsec = 1355611132074
was_in_call = 0
user_data = 0x0
callback = 0x0
cb_funcs = 0x0
cb_data = 0x0
need_destroy = <optimized out>
source = 0x55f981d16a20
current = 0x55f981c81080
i = 0
#13 g_main_context_dispatch (context=0x55f981c794a0) at ../glib/glib/gmain.c:4200
#14 0x00007f53855975d9 in g_main_context_iterate.constprop.0 (context=0x55f981c794a0, block=1, dispatch=1, self=<optimized out>) at ../glib/glib/gmain.c:4276
max_priority = 150
timeout = 0
some_ready = 1
nfds = 15
allocated_nfds = <optimized out>
fds = <optimized out>
begin_time_nsec = 1355611042007
#15 0x00007f538553a0cf in g_main_loop_run (loop=0x55f983710230) at ../glib/glib/gmain.c:4479
__func__ = "g_main_loop_run"
#16 0x00007f5384ecab6b in meta_context_run_main_loop (context=context@entry=0x55f981c773d0 [MetaContextMain], error=error@entry=0x7ffd33b6e960) at ../mutter/src/core/meta-context.c:482
priv = 0x55f981c77350
__func__ = "meta_context_run_main_loop"
#17 0x000055f9801fc516 in main (argc=<optimized out>, argv=<optimized out>) at ../gnome-shell/src/main.c:663
context = 0x55f981c773d0
error = 0x0
ecode = 0