Evince crashes after hover the cursor on a link
On Evince main (commit 6b5317), it crashes a bit after hovering the cursor on a link (PDF document). The popup with the referenced text appears as expected, and one can continue working until next hovering.
After moving the cursor out (remove the popup), the are plenty of warnings:
(evince:491898): GLib-GObject-CRITICAL **: 08:47:56.666: instance with invalid (NULL) class pointer
(evince:491898): GLib-GObject-CRITICAL **: 08:47:56.666: g_signal_emit_valist: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
Running G_DEBUG=fatal-warnings gdb /home/gpoo/code/evince/install/bin/evince
(gdb) thread apply all bt full
Thread 1 (Thread 0x7ffff35c5a80 (LWP 492129) "evince"):
#0 g_type_name_from_class (g_class=<error reading variable: Cannot access memory at address 0x5e2609000000>) at ../../../gobject/gtype.c:4424
#1 0x00007ffff7eb1701 in g_type_name_from_instance (instance=<optimized out>) at ../../../gobject/gtype.c:4420
#2 0x00007ffff7f82217 in ev_job_cancel (job=0x5e2609000000) at ../../../../code/evince/checkout/evince/libview/ev-jobs.c:222
#3 0x00007ffff7fa1615 in ev_view_link_preview_popover_cleanup (view=view@entry=0x555555b51900) at ../../../../code/evince/checkout/evince/libview/ev-view.c:5358
#4 0x00007ffff7f9698d in ev_view_handle_cursor_over_xy (view=view@entry=0x555555b51900, x=304, y=604) at ../../../../code/evince/checkout/evince/libview/ev-view.c:2344
annot = 0x0
link = <optimized out>
field = <optimized out>
media = <optimized out>
#5 0x00007ffff7f9d7c5 in ev_view_motion_notify_event (widget=0x555555b51900, event=event@entry=0x5555558fcea0) at ../../../../code/evince/checkout/evince/libview/ev-view.c:6289
view = 0x555555b51900
window = <optimized out>
x = 1432760880
y = 0
#6 0x00007ffff7498508 in _gtk_marshal_BOOLEAN__BOXEDv (closure=0x55555565a600, return_value=0x7fffffffc8a0, instance=<optimized out>, args=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, param_types=0x5555556537f0) at gtk/gtkmarshalers.c:130
data1 = <optimized out>
data2 = 0x5555556518d0
callback = 0x7ffff7f9d4b0 <ev_view_motion_notify_event>
v_return = <optimized out>
arg0 = 0x5555558fcea0
args_copy = {{gp_offset = 32, fp_offset = 48, overflow_arg_area = 0x7fffffffca30, reg_save_area = 0x7fffffffc970}}
__func__ = "_gtk_marshal_BOOLEAN__BOXEDv"
#7 0x00007ffff7ea983c in _g_closure_invoke_va (param_types=<optimized out>, n_params=<optimized out>, args=0x7fffffffc950, instance=<optimized out>, return_value=<optimized out>, closure=0x55555565a600) at ../../../gobject/gclosure.c:895
marshal = <optimized out>
marshal_data = <optimized out>
in_marshal = <optimized out>
real_closure = 0x55555565a5e0
return_accu = <optimized out>
accu = {g_type = 0x14, 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}}}
accumulator = <optimized out>
emission = Python Exception <class 'TypeError'>: can only concatenate str (not "NoneType") to str
{next = 0x0, instance = 0x555555b51900, ihint = {signal_id = 82, detail = 0, run_type = (G_SIGNAL_RUN_LAST | G_SIGNAL_ACCUMULATOR_FIRST_RUN)}, state = EMISSION_RUN, chain_type = }
instance_type = <optimized out>
emission_return = {g_type = 0x14, 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}}}
rtype = <optimized out>
static_scope = <optimized out>
fastpath_handler = <optimized out>
closure = <optimized out>
run_type = <optimized out>
hlist = <optimized out>
l = <optimized out>
fastpath = <optimized out>
instance_and_params = <optimized out>
signal_return_type = <optimized out>
param_values = <optimized out>
node = <optimized out>
i = <optimized out>
n_params = <optimized out>
__func__ = "g_signal_emit_valist"
#8 g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffc950) at ../../../gobject/gsignal.c:3462
return_accu = <optimized out>
accu = {g_type = 0x14, 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}}}
accumulator = <optimized out>
emission = Python Exception <class 'TypeError'>: can only concatenate str (not "NoneType") to str
{next = 0x0, instance = 0x555555b51900, ihint = {signal_id = 82, detail = 0, run_type = (G_SIGNAL_RUN_LAST | G_SIGNAL_ACCUMULATOR_FIRST_RUN)}, state = EMISSION_RUN, chain_type = }
instance_type = <optimized out>
emission_return = {g_type = 0x14, 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}}}
rtype = <optimized out>
static_scope = <optimized out>
fastpath_handler = <optimized out>
closure = <optimized out>
run_type = <optimized out>
hlist = <optimized out>
l = <optimized out>
fastpath = <optimized out>
instance_and_params = <optimized out>
signal_return_type = <optimized out>
param_values = <optimized out>
node = <optimized out>
i = <optimized out>
n_params = <optimized out>
__func__ = "g_signal_emit_valist"
#9 0x00007ffff7ea9923 in g_signal_emit (instance=instance@entry=0x555555b51900, signal_id=<optimized out>, detail=detail@entry=0) at ../../../gobject/gsignal.c:3612
var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fffffffca30, reg_save_area = 0x7fffffffc970}}
#10 0x00007ffff7752784 in gtk_widget_event_internal.part.0.lto_priv.0 (widget=0x555555b51900, event=0x5555558fcea0) at ../../../gtk/gtkwidget.c:7812
signal_num = <optimized out>
return_val = <optimized out>
handled = 0
#11 0x00007ffff75f6dee in propagate_event_up (topmost=<optimized out>, event=<optimized out>, widget=0x555555b51900) at ../../../gtk/gtkmain.c:2598
tmp = <optimized out>
handled_event = <optimized out>
handled_event = 0
#12 propagate_event (widget=widget@entry=0x555555b51900, event=event@entry=0x5555558fcea0, captured=captured@entry=0, topmost=topmost@entry=0x0) at ../../../gtk/gtkmain.c:2701
handled_event = 0
#13 0x00007ffff75f6f10 in gtk_propagate_event (widget=widget@entry=0x555555b51900, event=event@entry=0x5555558fcea0) at ../../../gtk/gtkmain.c:2735
__func__ = "gtk_propagate_event"
#14 0x00007ffff75f7c3a in gtk_main_do_event (event=<optimized out>) at ../../../gtk/gtkmain.c:1921
grab_widget = 0x555555b51900
window_group = 0x555555d698e0
rewritten_event = <optimized out>
device = <optimized out>
tmp_list = <optimized out>
event_widget = <optimized out>
topmost_widget = <optimized out>
__func__ = "gtk_main_do_event"
#15 gtk_main_do_event (event=<optimized out>) at ../../../gtk/gtkmain.c:1691
__func__ = "gtk_main_do_event"
#16 0x00007ffff7c308c3 in _gdk_event_emit (event=0x5555558fcea0) at ../../../gdk/gdkevents.c:73
#17 _gdk_event_emit (event=0x5555558fcea0) at ../../../gdk/gdkevents.c:67
#18 0x00007ffff7c677a6 in gdk_event_source_dispatch (base=<optimized out>, callback=<optimized out>, data=<optimized out>) at ../../../gdk/wayland/gdkeventsource.c:124
source = <optimized out>
display = <optimized out>
event = 0x5555558fcea0
#19 0x00007ffff7d8b49d in g_main_dispatch (context=0x5555555fc6d0) at ../../../glib/gmain.c:3460
dispatch = 0x7ffff7c67780 <gdk_event_source_dispatch>
prev_source = 0x0
begin_time_nsec = 0
was_in_call = 0
user_data = 0x0
callback = 0x0
cb_funcs = <optimized out>
cb_data = <optimized out>
need_destroy = <optimized out>
source = 0x55555560e690
current = 0x5555555fc900
i = 0
#20 g_main_context_dispatch (context=0x5555555fc6d0) at ../../../glib/gmain.c:4200
#21 0x00007ffff7de6178 in g_main_context_iterate.constprop.0 (context=0x5555555fc6d0, block=<optimized out>, dispatch=1, self=<optimized out>) at ../../../glib/gmain.c:4276
max_priority = 0
timeout = 0
some_ready = 1
nfds = <optimized out>
allocated_nfds = 3
fds = 0x5555559ac580
#22 0x00007ffff7d8a1b0 in g_main_context_iteration (context=context@entry=0x5555555fc6d0, may_block=may_block@entry=1) at ../../../glib/gmain.c:4343
retval = <optimized out>
#23 0x00007ffff7153c5d in g_application_run (application=application@entry=0x5555556b7cd0, argc=argc@entry=0, argv=argv@entry=0x0) at ../../../gio/gapplication.c:2573
arguments = 0x555555a057b0
status = 0
context = 0x5555555fc6d0
acquired_context = <optimized out>
__func__ = "g_application_run"
#24 0x000055555559efb4 in main (argc=1, argv=0x7fffffffce78) at ../../../../code/evince/checkout/evince/shell/main.c:318
error = 0x0
context = <optimized out>
application = 0x5555556b7cd0
status = <optimized out>
Warning: the current language does not match this frame.
and the log of the crash (without G_DEBUG=fatal-warnings
) is as follows:
```c
Thread 1 (Thread 0x7ffff35c5a80 (LWP 491221) "evince"):
#0 g_type_check_instance_is_fundamentally_a (type_instance=0x555555dcd000, fundamental_type=0x50) at ../../../gobject/gtype.c:4166
node =
#1 0x00007ffff7e99c6d in g_object_unref (_object=0x555555dcd000) at ../../../gobject/gobject.c:3807
_g_boolean_var_133 =
object = 0x555555dcd000
old_ref =
__func__ = "g_object_unref"
#2 0x00007ffff7fa1621 in ev_view_link_preview_popover_cleanup (view=view@entry=0x555555b51d40 [EvView]) at ../../../../code/evince/checkout/evince/libview/ev-view.c:5359
#3 0x00007ffff7f9698d in ev_view_handle_cursor_over_xy (view=view@entry=0x555555b51d40 [EvView], x=466, y=425) at ../../../../code/evince/checkout/evince/libview/ev-view.c:2344
annot = 0x0
link =
field =
media =
#4 0x00007ffff7f9d7c5 in ev_view_motion_notify_event (widget=0x555555b51d40 [EvView], event=event@entry=0x555555d6a8b0) at ../../../../code/evince/checkout/evince/libview/ev-view.c:6289
view = 0x555555b51d40 [EvView]
window =
x = 80
y = 0
#5 0x00007ffff7498508 in _gtk_marshal_BOOLEAN__BOXEDv (closure=0x55555565b770, return_value=0x7fffffffc8c0, instance=, args=, marshal_data=, n_params=, param_types=0x5555556532e0) at gtk/gtkmarshalers.c:130
data1 =
data2 = 0x555555652240
callback = 0x7ffff7f9d4b0
v_return =
arg0 = 0x555555d6a8b0
args_copy = {{gp_offset = 32, fp_offset = 48, overflow_arg_area = 0x7fffffffca50, reg_save_area = 0x7fffffffc990}}
__func__ = "_gtk_marshal_BOOLEAN__BOXEDv"
#6 0x00007ffff7ea983c in _g_closure_invoke_va (param_types=, n_params=, args=0x7fffffffc970, instance=, return_value=, closure=0x55555565b770) at ../../../gobject/gclosure.c:895
marshal =
marshal_data =
in_marshal =
real_closure = 0x55555565b750
return_accu =
accu = {g_type = 0x14, 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}}}
accumulator =
emission = {next = 0x0, instance = 0x555555b51d40, ihint = {signal_id = 82, detail = 0, run_type = (G_SIGNAL_RUN_LAST | G_SIGNAL_ACCUMULATOR_FIRST_RUN)}, state = EMISSION_RUN, chain_type = 0x555555b4d8b0 [EvView/GtkContainer/GtkWidget/GInitiallyUnowned]}
instance_type =
emission_return = {g_type = 0x14, 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}}}
rtype =
static_scope =
fastpath_handler =
closure =
run_type =
hlist =
l =
fastpath =
instance_and_params =
signal_return_type =
param_values =
node =
i =
n_params =
__func__ = "g_signal_emit_valist"
#7 (closed) g_signal_emit_valist (instance=, signal_id=, detail=, var_args=var_args@entry=0x7fffffffc970) at ../../../gobject/gsignal.c:3462
return_accu =
accu = {g_type = 0x14, 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}}}
accumulator =
emission = {next = 0x0, instance = 0x555555b51d40, ihint = {signal_id = 82, detail = 0, run_type = (G_SIGNAL_RUN_LAST | G_SIGNAL_ACCUMULATOR_FIRST_RUN)}, state = EMISSION_RUN, chain_type = 0x555555b4d8b0 [EvView/GtkContainer/GtkWidget/GInitiallyUnowned]}
instance_type =
emission_return = {g_type = 0x14, 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}}}
rtype =
static_scope =
fastpath_handler =
closure =
run_type =
hlist =
l =
fastpath =
instance_and_params =
signal_return_type =
param_values =
node =
i =
n_params =
__func__ = "g_signal_emit_valist"
#8 (closed) 0x00007ffff7ea9923 in g_signal_emit (instance=instance@entry=0x555555b51d40, signal_id=, detail=detail@entry=0) at ../../../gobject/gsignal.c:3612
var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fffffffca50, reg_save_area = 0x7fffffffc990}}
#9 (closed) 0x00007ffff7752784 in gtk_widget_event_internal.part.0.lto_priv.0 (widget=0x555555b51d40 [EvView], event=0x555555d6a8b0) at ../../../gtk/gtkwidget.c:7812
signal_num =
return_val =
handled = 0
#10 (closed) 0x00007ffff75f6dee in propagate_event_up (topmost=, event=, widget=0x555555b51d40 [EvView]) at ../../../gtk/gtkmain.c:2598
tmp =
handled_event =
handled_event = 0
#11 (closed) propagate_event (widget=widget@entry=0x555555b51d40 [EvView], event=event@entry=0x555555d6a8b0, captured=captured@entry=0, topmost=topmost@entry=0x0) at ../../../gtk/gtkmain.c:2701
handled_event = 0
#12 0x00007ffff75f6f10 in gtk_propagate_event (widget=widget@entry=0x555555b51d40 [EvView], event=event@entry=0x555555d6a8b0) at ../../../gtk/gtkmain.c:2735
__func__ = "gtk_propagate_event"
#13 0x00007ffff75f7c3a in gtk_main_do_event (event=) at ../../../gtk/gtkmain.c:1921
grab_widget = 0x555555b51d40 [EvView]
window_group = 0x555555d54ec0 [GtkWindowGroup]
rewritten_event =
device =
tmp_list =
event_widget =
topmost_widget =
__func__ = "gtk_main_do_event"
#14 (closed) gtk_main_do_event (event=) at ../../../gtk/gtkmain.c:1691
__func__ = "gtk_main_do_event"
#15 0x00007ffff7c308c3 in _gdk_event_emit (event=0x555555d6a8b0) at ../../../gdk/gdkevents.c:73
#16 _gdk_event_emit (event=0x555555d6a8b0) at ../../../gdk/gdkevents.c:67
#17 (closed) 0x00007ffff7c677a6 in gdk_event_source_dispatch (base=, callback=, data=) at ../../../gdk/wayland/gdkeventsource.c:124
source =
display =
event = 0x555555d6a8b0
#18 0x00007ffff7d8b49d in g_main_dispatch (context=0x5555555fc690) at ../../../glib/gmain.c:3460
dispatch = 0x7ffff7c67780
prev_source = 0x0
begin_time_nsec = 0
was_in_call = 0
user_data = 0x0
callback = 0x0
cb_funcs =
cb_data =
need_destroy =
source = 0x55555560e8d0
current = 0x5555555fc8c0
i = 0
#19 (closed) g_main_context_dispatch (context=0x5555555fc690) at ../../../glib/gmain.c:4200
#20 0x00007ffff7de6178 in g_main_context_iterate.constprop.0 (context=0x5555555fc690, block=, dispatch=1, self=) at ../../../glib/gmain.c:4276
max_priority = 0
timeout = 0
some_ready = 1
nfds =
allocated_nfds = 3
fds = 0x5555562a3dc0
#21 0x00007ffff7d8a1b0 in g_main_context_iteration (context=context@entry=0x5555555fc690, may_block=may_block@entry=1) at ../../../glib/gmain.c:4343
retval =
#22 0x00007ffff7153c5d in g_application_run (application=application@entry=0x5555556b87f0 [EvApplication], argc=argc@entry=0, argv=argv@entry=0x0) at ../../../gio/gapplication.c:2573
arguments = 0x555555a05da0
status = 0
context = 0x5555555fc690
acquired_context =
__func__ = "g_application_run"
#23 0x000055555559efb4 in main (argc=1, argv=0x7fffffffce98) at ../../../../code/evince/checkout/evince/shell/main.c:318
error = 0x0
context =
application = 0x5555556b87f0 [EvApplication]
status =
Warning: the current language does not match this frame.
```