New crash after !1633
I'm seeing a new crash - reverting !1633 (ae6d83fb) and gnome-shell!1537 (fc1d1e53) or the following patch works around the issue:
--- a/src/wayland/meta-wayland-surface.c
+++ b/src/wayland/meta-wayland-surface.c
@@ -1563,7 +1563,12 @@ meta_wayland_surface_get_relative_coordinates (MetaWaylandSurface *surface,
float *sx,
float *sy)
{
- MetaWaylandSurfaceRoleClass *surface_role_class =
+ MetaWaylandSurfaceRoleClass *surface_role_class;
+
+ if (!surface->role)
+ return;
+
+ surface_role_class =
META_WAYLAND_SURFACE_ROLE_GET_CLASS (surface->role);
surface_role_class->get_relative_coordinates (surface->role,
STR:
- open nautilus
- navigate to some random folder
- in the top bar-bar / location-bar click the top-most folder to open the folder drop-down menu. Click "Add to bookmarks"
- observe a shell crash
#0 __GI_raise (sig=<optimized out>) at ../sysdeps/unix/sysv/linux/raise.c:49
set = {__val = {0, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 89854880, 39, 140124428299929}}
pid = <optimized out>
tid = <optimized out>
#1 0x0000000000402c2c in dump_gjs_stack_on_signal_handler (signo=11) at ../src/main.c:349
sa =
{__sigaction_handler = {sa_handler = 0x402b06 <dump_gjs_stack_alarm_sigaction>, sa_sigaction = 0x402b06 <dump_gjs_stack_alarm_sigaction>}, sa_mask = {__val = {0 <repeats 16 times>}}, sa_flags = 0, sa_restorer = 0x0}
i = 65
#2 0x00007f7141d71a60 in <signal handler called> () at /lib64/libc.so.6
#3 0x00007f7142074d69 in META_WAYLAND_SURFACE_ROLE_GET_CLASS (ptr=0x0) at ../src/wayland/meta-wayland-surface.h:43
#4 0x00007f71420785c7 in meta_wayland_surface_get_relative_coordinates
(surface=0x4dcc8c0, abs_x=567.822144, abs_y=111.052338, sx=0x7ffcc0a5a2ac, sy=0x7ffcc0a5a2a8) at ../src/wayland/meta-wayland-surface.c:1567
surface_role_class = 0x1019bd1f0
#5 0x00007f714206e1db in meta_wayland_pointer_get_relative_coordinates (pointer=0x7f71040476f0, surface=0x4dcc8c0, sx=0x7ffcc0a5a2fc, sy=0x7ffcc0a5a2f8)
at ../src/wayland/meta-wayland-pointer.c:1048
xf = 0
yf = 0
pos = {x = 567.822144, y = 111.052338}
#6 0x00007f714206da5b in meta_wayland_pointer_send_enter (pointer=0x7f71040476f0, pointer_resource=0x5a006f0, serial=14, surface=0x4dcc8c0)
at ../src/wayland/meta-wayland-pointer.c:818
sx = 32625
sy = 67401456
#7 0x00007f714206dafd in meta_wayland_pointer_broadcast_enter (pointer=0x7f71040476f0, serial=14, surface=0x4dcc8c0)
at ../src/wayland/meta-wayland-pointer.c:843
pointer_resource = 0x5a006f0
#8 0x00007f714206de79 in meta_wayland_pointer_set_focus (pointer=0x7f71040476f0, surface=0x4dcc8c0) at ../src/wayland/meta-wayland-pointer.c:936
client = 0x58e5a60
pos = {x = 567.822144, y = 111.052338}
focus_window = 0x0
input_device = 0x7f71040476f0
backend = 0x16c60e0
cursor_tracker = 0x16e3280
clutter_backend = 0x172ec00
clutter_seat = 0x7f7120009290
__func__ = "meta_wayland_pointer_set_focus"
#9 0x00007f714206cf29 in default_grab_focus (grab=0x7f7104047748, surface=0x4dcc8c0) at ../src/wayland/meta-wayland-pointer.c:428
pointer = 0x7f71040476f0
seat = 0x1a26fc0
display = 0x1bda020
backend = 0x16c60e0
cursor_tracker = 0x16e3280
--Type <RET> for more, q to quit, c to continue without paging--
clutter_backend = 0x172ec00
clutter_seat = 0x7f7120009290
#10 0x00007f714206c9ac in sync_focus_surface (pointer=0x7f71040476f0) at ../src/wayland/meta-wayland-pointer.c:252
interface = 0x7f71421621a0 <default_pointer_grab_interface>
display = 0x1bda020
backend = 0x16c60e0
cursor_tracker = 0x16e3280
clutter_backend = 0x172ec00
clutter_seat = 0x7f7120009290
__func__ = "sync_focus_surface"
#11 0x00007f714206d47a in repick_for_event (pointer=0x7f71040476f0, for_event=0x59dc990) at ../src/wayland/meta-wayland-pointer.c:608
backend = 0x16c60e0
stage = 0x1a14210
actor = 0x3faca80
surface = 0x4dcc8c0
#12 0x00007f714206d4b0 in meta_wayland_pointer_update (pointer=0x7f71040476f0, event=0x59dc990) at ../src/wayland/meta-wayland-pointer.c:616
#13 0x00007f714207269c in meta_wayland_seat_update (seat=0x1a26fc0, event=0x59dc990) at ../src/wayland/meta-wayland-seat.c:357
#14 0x00007f7142059ef3 in meta_wayland_compositor_update (compositor=0x1734800, event=0x59dc990) at ../src/wayland/meta-wayland.c:196
#15 0x00007f7141fe6435 in meta_display_handle_event (display=0x1bda020, event=0x59dc990) at ../src/core/events.c:237
backend = 0x16c60e0
window = 0x4d4f520
bypass_clutter = 0
bypass_wayland = 0
gesture_tracker = 0x67
sequence = 0x0
compositor = 0x1734800
#16 0x00007f7141fe696e in event_callback (event=0x59dc990, data=0x1bda020) at ../src/core/events.c:477
display = 0x1bda020
#17 0x00007f714221be16 in _clutter_event_process_filters (event=0x59dc990) at ../clutter/clutter/clutter-event.c:1791
event_filter = 0x1729530
context = 0x191c910
l = 0x16d5c60 = {0x1729530}
next = 0x0
#18 0x00007f714223956d in emit_crossing_event (event=0x59dc990, device=0x19af070) at ../clutter/clutter/clutter-main.c:1444
sequence = 0x0
grab_actor = 0x0
#19 0x00007f7142239ec0 in _clutter_process_event_details (stage=0x1a14210, context=0x191c910, event=0x59dc990) at ../clutter/clutter/clutter-main.c:1798
device = 0x19af070
clutter_context = 0x191c910
backend = 0x172ec00
#20 0x00007f714223a7b4 in _clutter_process_event (event=0x59dc990) at ../clutter/clutter/clutter-main.c:2094
context = 0x191c910
--Type <RET> for more, q to quit, c to continue without paging--
stage = 0x1a14210
#21 0x00007f7142239872 in create_crossing_event
(stage=0x1a14210, device=0x19af070, sequence=0x0, event_type=CLUTTER_LEAVE, source=0x3faca80, related=0x3fac730, coords=..., time=0)
at ../clutter/clutter/clutter-main.c:1585
event = 0x59dc990
#22 0x00007f71422399d1 in clutter_stage_update_device
(stage=0x1a14210, device=0x19af070, sequence=0x0, point=..., time=0, new_actor=0x3fac730, emit_crossing=1) at ../clutter/clutter/clutter-main.c:1622
device_type = CLUTTER_POINTER_DEVICE
old_actor = 0x3faca80
device_actor_changed = 1
__func__ = "clutter_stage_update_device"
#23 0x00007f7142263288 in on_device_actor_reactive_changed (actor=0x3faca80, pspec=0x1a0aae0, entry=0x4c82890) at ../clutter/clutter/clutter-stage.c:3533
self = 0x1a14210
new_device_actor = 0x3fac730
__func__ = "on_device_actor_reactive_changed"
#24 0x00007f7142d31e2a in g_closure_invoke
(closure=0x58f90b0, return_value=0x0, n_param_values=2, param_values=0x7ffcc0a5aa00, invocation_hint=0x7ffcc0a5a980) at ../gobject/gclosure.c:810
marshal = 0x7f7142d340d0 <g_cclosure_marshal_VOID__PARAM>
marshal_data = 0x0
in_marshal = 0
real_closure = 0x58f9090
__func__ = "g_closure_invoke"
#25 0x00007f7142d5b273 in signal_emit_unlocked_R.isra.0
(node=node@entry=0x16c1e00, detail=detail@entry=575, instance=instance@entry=0x3faca80, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffcc0a5aa00) at ../gobject/gsignal.c:3738
tmp = <optimized out>
handler = 0x58561c0
accumulator = 0x0
emission =
{next = 0x0, instance = 0x3faca80, ihint = {signal_id = 1, detail = 575, run_type = G_SIGNAL_RUN_FIRST}, state = EMISSION_RUN, chain_type = 0x4 [None]}
hlist = <optimized out>
handler_list = 0x59be640
return_accu = 0x0
accu =
{g_type = 0x0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
signal_id = 1
max_sequential_handler_number = 18515
return_value_altered = <optimized out>
#26 0x00007f7142d4ef82 in g_signal_emit_valist
(instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffcc0a5abd0) at ../gobject/gsignal.c:3494
--Type <RET> for more, q to quit, c to continue without paging--
instance_and_params = 0x7ffcc0a5aa00
signal_return_type = <optimized out>
param_values = 0x7ffcc0a5aa18
node = <optimized out>
i = <optimized out>
n_params = <optimized out>
__func__ = "g_signal_emit_valist"
#27 0x00007f7142d4f1a3 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../gobject/gsignal.c:3550
var_args = {{gp_offset = 32, fp_offset = 48, overflow_arg_area = 0x7ffcc0a5acb0, reg_save_area = 0x7ffcc0a5abf0}}
#28 0x00007f7142d38ea4 in g_object_dispatch_properties_changed (object=0x3faca80, n_pspecs=<optimized out>, pspecs=<optimized out>)
at ../gobject/gobject.c:1206
i = <optimized out>
#29 0x00007f7142d3a1ca in g_object_notify_by_spec_internal (pspec=<optimized out>, object=0x3faca80) at ../gobject/gobject.c:1299
nqueue = 0x0
notify_pspec = 0x1a0aae0
__func__ = "g_object_notify_by_pspec"
#30 g_object_notify_by_pspec (object=0x3faca80, pspec=<optimized out>) at ../gobject/gobject.c:1409
__func__ = "g_object_notify_by_pspec"
#31 0x00007f71421f02ca in clutter_actor_set_reactive (actor=0x3faca80, reactive=0) at ../clutter/clutter/clutter-actor.c:12400
__func__ = "clutter_actor_set_reactive"
#32 0x00007f71420577b6 in meta_wayland_actor_surface_dispose (object=0x59451c0) at ../src/wayland/meta-wayland-actor-surface.c:92
actor_surface = 0x59451c0
priv = 0x5945190
cb = 0x59451d0
next = 0x59451c8
#33 0x00007f7142d3e9e8 in g_object_unref (_object=<optimized out>) at ../gobject/gobject.c:3465
weak_locations = 0x0
old_ref = <optimized out>
object = 0x59451c0
__func__ = "g_object_unref"
#34 g_object_unref (_object=0x59451c0) at ../gobject/gobject.c:3395
object = 0x59451c0
__func__ = "g_object_unref"
#35 0x00007f7142077dd9 in wl_surface_destructor (resource=0x591dbf0) at ../src/wayland/meta-wayland-surface.c:1320
_pp = 0x4dcc8e8
_ptr = 0x59451c0
surface = 0x4dcc8c0
compositor = 0x1734800
cb = 0x7ffcc0a5b050
next = 0x0
#36 0x00007f714181c97f in destroy_resource (element=0x591dbf0, data=data@entry=0x0, flags=0) at src/wayland-server.c:724
resource = 0x591dbf0
--Type <RET> for more, q to quit, c to continue without paging--
#37 0x00007f714181e311 in wl_resource_destroy (resource=<optimized out>) at src/wayland-server.c:741
client = 0x58e5a60
id = 48
flags = <optimized out>
#38 0x00007f7142077298 in wl_surface_destroy (client=0x58e5a60, resource=0x591dbf0) at ../src/wayland/meta-wayland-surface.c:885
#39 0x00007f71412b1b10 in ffi_call_unix64 () at ../src/x86/unix64.S:76
#40 0x00007f71412b10a3 in ffi_call (cif=cif@entry=0x7ffcc0a5b020, fn=<optimized out>, rvalue=<optimized out>,
rvalue@entry=0x0, avalue=avalue@entry=0x7ffcc0a5b0f0) at ../src/x86/ffi64.c:525
classes = {X86_64_INTEGER_CLASS, X86_64_NO_CLASS, 95216640, X86_64_NO_CLASS}
stack = <optimized out>
argp = 0x7ffcc0a5aef0 ""
arg_types = <optimized out>
gprcount = 2
ssecount = <optimized out>
ngpr = 1
nsse = 0
i = <optimized out>
avn = <optimized out>
ret_in_memory = <optimized out>
reg_args = <optimized out>
#41 0x00007f7141819fd5 in wl_closure_invoke (closure=closure@entry=0x5969700, target=<optimized out>,
target@entry=0x591dbf0, opcode=opcode@entry=0, data=<optimized out>, data@entry=0x58e5a60, flags=<optimized out>) at src/connection.c:1018
count = <optimized out>
cif = {abi = FFI_UNIX64, nargs = 2, arg_types = 0x7ffcc0a5b040, rtype = 0x7f71412b20d0 <ffi_type_void>, bytes = 0, flags = 0}
ffi_types =
{0x7f71412b21f0 <ffi_type_pointer>, 0x7f71412b21f0 <ffi_type_pointer>, 0x7f71412b2190 <ffi_type_sint32>, 0x7f71412b2190 <ffi_type_sint32>, 0x0, 0x0, 0x7ffcc0a5b0f0, 0x7f71419cb8ed <cogl_matrix_entry_get+434>, 0x26d24d0, 0x26d19c0, 0x7ffcc0a5b110, 0x7f71421e220d <clutter_actor_pick+178>, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7ffcc0baf9e7 <clock_gettime+87>, 0x7f7142059ef6 <on_after_update>, 0x7ffcc0a5b120, 0x1a14210}
ffi_args =
{0x7ffcc0a5b000, 0x7ffcc0a5b008, 0x5a2cec8, 0x5a2ced0, 0x191ea10, 0x7f7142c3e515 <g_get_monotonic_time+37>, 0x2610, 0x7ffcc0a5b1a0, 0x7ffcc0a5b1a0, 0x29f, 0x7ffcc0a5b1c0, 0x7f7142c2405f <g_hash_table_lookup+47>, 0x7ffcc0a5b1a0, 0x7f714181b761 <log_closure+81>, 0x16da900, 0x591dbf0, 0x7ffcc0a5b1c0, 0x0, 0x0, 0x7ffcc0a5b4b0, 0x7f71418243c0 <wl_surface_requests>, 0x7f714181f5b4}
implementation = <optimized out>
#42 0x00007f714181decc in wl_client_connection_data (fd=<optimized out>, mask=<optimized out>, data=<optimized out>) at src/wayland-server.c:432
client = <optimized out>
connection = 0x59e2ca0
resource = <optimized out>
object = 0x591dbf0
closure = 0x5969700
message = 0x7f71418243c0 <wl_surface_requests>
p = {48, 524288}
resource_flags = 0
--Type <RET> for more, q to quit, c to continue without paging--
opcode = 0
size = <optimized out>
since = <optimized out>
len = <optimized out>
#43 0x00007f714181cac2 in wl_event_loop_dispatch (loop=0x16e4f60, timeout=<optimized out>) at src/event-loop.c:1027
ep =
{{events = 1, data = {ptr = 0x4b63fb0, fd = 79052720, u32 = 79052720, u64 = 79052720}}, {events = 0, data = {ptr = 0xffffffffffffffff, fd = -1, u32 = 4294967295, u64 = 18446744073709551615}}, {events = 1097938654, data = {ptr = 0x4026df400000001, fd = 1, u32 = 1, u64 = 288914220844580865}}, {events = 0, data = {ptr = 0x1000, fd = 4096, u32 = 4096, u64 = 4096}}, {events = 0, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 0, data = {ptr = 0x7ffcc0a5b400, fd = -1062882304, u32 = 3232084992, u64 = 140723540571136}}, {events = 1, data = {ptr = 0xc0a5b45000000000, fd = 0, u32 = 0, u64 = 13881699682129805312}}, {events = 32764, data = {ptr = 0x50, fd = 80, u32 = 80, u64 = 80}}, {events = 0, data = {ptr = 0x404804000000000, fd = 0, u32 = 0, u64 = 289497288424816640}}, {events = 0, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 1830545664, data = {ptr = 0x404804029ed5885, fd = 703420549, u32 = 703420549, u64 = 289497289128237189}}, {events = 0, data = {ptr = 0x1a31fe0, fd = 27467744, u32 = 27467744, u64 = 27467744}}, {events = 27469392, data = {ptr = 0x200000000, fd = 0, u32 = 0, u64 = 8589934592}}, {events = 0, data = {ptr = 0x7fffffff, fd = 2147483647, u32 = 2147483647, u64 = 2147483647}}, {events = 23863232, data = {ptr = 0x40da33b000000000, fd = 0, u32 = 0, u64 = 4673104394357571584}}, {events = 32625, data = {ptr = 0x29ed58856d1be900, fd = 1830545664, u32 = 1830545664, u64 = 3021168255119911168}}, {events = 67403840, data = {ptr = 0x6d1be90000000000, fd = 0, u32 = 0, u64 = 7862133760714604544}}, {events = 703420549, data = {ptr = 0x1a32650, fd = 27469392, u32 = 27469392, u64 = 27469392}}, {events = 67267968, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 0, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 67267992, data = {ptr = 0x16c1fc000000000, fd = 0, u32 = 0, u64 = 102491801016860672}}, {events = 0, data = {ptr = 0x7f7141bef900 <gdk_event_source_prepare>, fd = 1103034624, u32 = 1103034624, u64 = 140124411066624}}, {events = 1053265940, data = {ptr = 0x3138342f00007f71, fd = 32625, u32 = 32625, u64 = 3546642083022405489}}, {events = 808269362, data = {ptr = 0x4048040, fd = 67403840, u32 = 67403840, u64 = 67403840}}, {events = 88134384, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 0, data = {ptr = 0x7fffffff, fd = 2147483647, u32 = 2147483647, u64 = 2147483647}}, {events = 1097938654, data = {ptr = 0xc0baf9e700007f71, fd = 32625, u32 = 32625, u64 = 13887687171483139953}}, {events = 32764, data = {ptr = 0x7ffcc0a5b5f0, fd = -1062881808, u32 = 3232085488, u64 = 140723540571632}}, {events = 3232085360, data = {ptr = 0x7fffffff00007ffc, fd = 32764, u32 = 32764, u64 = 9223372032559841276}}, {events = 0, data = {ptr = 0x1, fd = 1, u32 = 1, u64 = 1}}, {events = 1105184533, data = {ptr = 0x7f71, fd = 32625, u32 = 32625, u64 = 32625}}, {events = 0, data = {ptr = 0x16c1fc0, fd = 23863232, u32 = 23863232, u64 = 23863232}}}
source = <optimized out>
i = 0
count = <optimized out>
has_timers = <optimized out>
#44 0x00007f7142059ce7 in wayland_event_source_dispatch (base=0x191e980, callback=0x0, data=0x0) at ../src/wayland/meta-wayland.c:96
source = 0x191e980
loop = 0x16e4f60
#45 0x00007f7142c3f96f in g_main_dispatch (context=0x16c1fc0) at ../glib/gmain.c:3325
dispatch = <optimized out>
prev_source = 0x0
begin_time_nsec = 0
was_in_call = <optimized out>
user_data = 0x0
callback = 0x0
cb_funcs = 0x0
cb_data = 0x0
need_destroy = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--
source = 0x191e980
current = 0x16eebb0
i = 0
#46 g_main_context_dispatch (context=0x16c1fc0) at ../glib/gmain.c:4043
#47 0x00007f7142c91758 in g_main_context_iterate.constprop.0 (context=0x16c1fc0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
at ../glib/gmain.c:4119
max_priority = 2147483647
timeout = 2163
some_ready = 1
nfds = <optimized out>
allocated_nfds = <optimized out>
fds = 0x56cfd80
#48 0x00007f7142c3f033 in g_main_loop_run (loop=0x1a2a870) at ../glib/gmain.c:4317
__func__ = "g_main_loop_run"
#49 0x00007f7141fef9db in meta_run_main_loop () at ../src/core/main.c:709
#50 0x00007f7141fef9ec in meta_run () at ../src/core/main.c:724
#51 0x0000000000402fce in main (argc=1, argv=0x7ffcc0a5b848) at ../src/main.c:507
ctx = 0x16bf440
error = 0x0
ecode = 32764
Edited by Robert Mader