Evince crashed on adding text annotation
Environment: Evince 40.1, Ubuntu 21.04 Wayland Session
Tried to add a text annotation, when I clicked the location, the cursor (plus sign) froze and evince crashed.
--- stack trace ---
#0 g_type_check_instance_cast (type_instance=type_instance@entry=0x55827f2d79f0, iface_type=94018951874960) at ../../../gobject/gtype.c:4114
node = <optimized out>
iface = <optimized out>
is_instantiatable = <optimized out>
check = <optimized out>
#1 0x000055827ce0c94b in ev_window_get_toolbar (ev_window=0x55827f2d79f0) at ../shell/ev-window.c:7902
_g_boolean_var_ = <optimized out>
priv = <optimized out>
priv = <optimized out>
__func__ = {<optimized out> <repeats 22 times>}
_g_boolean_var_ = <optimized out>
#2 ev_window_document_modified_cb (document=<optimized out>, pspec=<optimized out>, ev_window=0x55827f2d79f0) at ../shell/ev-window.c:5233
priv = 0x55827f2d74f0
toolbar = <optimized out>
title = <optimized out>
new_title = <optimized out>
#3 0x00007f3dc0cd4bcf in g_closure_invoke (closure=0x55827fa49640, return_value=0x0, n_param_values=2, param_values=0x7ffe745ae2c0, invocation_hint=0x7ffe745ae240) at ../../../gobject/gclosure.c:810
marshal = 0x7f3dc0cd7320 <g_cclosure_marshal_VOID__PARAM>
marshal_data = 0x0
in_marshal = 0
real_closure = 0x55827fa49620
__func__ = "g_closure_invoke"
#4 0x00007f3dc0cfe81b in signal_emit_unlocked_R.isra.0 (node=node@entry=0x55827e138ff0, detail=detail@entry=2175, instance=instance@entry=0x55827e518ea0, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffe745ae2c0) at ../../../gobject/gsignal.c:3741
tmp = <optimized out>
handler = 0x55827fa4a400
accumulator = 0x0
emission = {next = 0x7ffe745ae900, instance = 0x55827e518ea0, ihint = {signal_id = 1, detail = 2175, run_type = (G_SIGNAL_RUN_FIRST | G_SIGNAL_ACCUMULATOR_FIRST_RUN)}, state = EMISSION_RUN, chain_type = 4}
class_closure = 0x55827e139400
hlist = <optimized out>
handler_list = 0x55827e8aec40
return_accu = 0x0
accu = {g_type = 0, 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 = 159934
return_value_altered = <optimized out>
EMIT_RESTART = <optimized out>
#5 0x00007f3dc0cf2638 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffe745ae480) at ../../../gobject/gsignal.c:3497
instance_and_params = 0x7ffe745ae2c0
signal_return_type = <optimized out>
param_values = 0x7ffe745ae2d8
node = <optimized out>
i = <optimized out>
n_params = <optimized out>
__func__ = "g_signal_emit_valist"
#6 0x00007f3dc0cf2893 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../../../gobject/gsignal.c:3553
var_args = {{gp_offset = 32, fp_offset = 48, overflow_arg_area = 0x7ffe745ae560, reg_save_area = 0x7ffe745ae4a0}}
#7 0x00007f3dc0cdc194 in g_object_dispatch_properties_changed (object=0x55827e518ea0, n_pspecs=<optimized out>, pspecs=<optimized out>) at ../../../gobject/gobject.c:1206
i = <optimized out>
#8 0x00007f3dc0ce487a in g_object_notify_by_spec_internal (pspec=<optimized out>, object=0x55827e518ea0) at ../../../gobject/gobject.c:1299
nqueue = 0x0
notify_pspec = 0x55827e8715b0
notify_pspec = <optimized out>
nqueue = <optimized out>
#9 g_object_notify (object=0x55827e518ea0, property_name=0x7f3dc0d65010 "modified") at ../../../gobject/gobject.c:1347
pspec = <optimized out>
__func__ = "g_object_notify"
#10 0x00007f3dc0d59335 in ev_document_set_modified (document=<optimized out>, modified=<optimized out>) at ../libdocument/ev-document.c:241
__func__ = "ev_document_set_modified"
#11 0x00007f3db81ca1c0 in pdf_document_annotations_add_annotation (document_annotations=0x55827e518ea0, annot=0x55827f477480, rect_deprecated=<optimized out>) at ../backend/pdf/ev-poppler.cc:3765
poppler_annot = <optimized out>
pdf_document = 0x55827e518ea0
page = 0x55827e9d58d0
poppler_page = <optimized out>
list = <optimized out>
mapping_list = <optimized out>
annot_mapping = 0x55827f673b70
poppler_rect = {x1 = 336.71916976166926, y1 = 448.07728396019201, x2 = 536.71916976166926, y2 = 598.07728396019206}
height = 841.88999999999999
poppler_color = {red = 65535, green = 65535, blue = 0}
color = {pixel = 0, red = 65535, green = 65535, blue = 0}
rect = {x1 = 312.71916976166926, y1 = 219.81271603980798, x2 = 336.71916976166926, y2 = 243.81271603980798}
__PRETTY_FUNCTION__ = {<optimized out> <repeats 98 times>}
#12 0x00007f3dc0db18b8 in ev_view_create_annotation_real (view=view@entry=0x55827e6b5180, annot_page=61, start=..., end=...) at ../libview/ev-view.c:3705
annot = 0x55827f477480
doc_rect = {x1 = 312.71916976166926, y1 = 219.81271603980798, x2 = 336.71916976166926, y2 = 243.81271603980798}
popup_rect = {x1 = 336.71916976166926, y1 = 243.81271603980798, x2 = 536.71916976166926, y2 = 393.81271603980798}
page = 0x7ffe745ae700
color = {pixel = 0, red = 65535, green = 65535, blue = 0}
view_rect = {x = 2120962432, y = 21890, width = -1059404452, height = 32573}
region = <optimized out>
__func__ = "ev_view_create_annotation_real"
#13 0x00007f3dc0db4dab in ev_view_create_annotation (view=0x55827e6b5180) at ../libview/ev-view.c:3747
end = {x = <optimized out>, y = <optimized out>}
annot_page = 61
page_area = {x = 203, y = 130758, width = 1513, height = 2138}
border = {left = 4, right = 3, top = 3, bottom = 6}
start = {x = <optimized out>, y = <optimized out>}
offset = 556
start = {x = <optimized out>, y = <optimized out>}
end = {x = <optimized out>, y = <optimized out>}
annot_page = <optimized out>
offset = <optimized out>
page_area = {x = <optimized out>, y = <optimized out>, width = <optimized out>, height = <optimized out>}
border = {left = <optimized out>, right = <optimized out>, top = <optimized out>, bottom = <optimized out>}
#14 ev_view_button_press_event (widget=widget@entry=0x55827e6b5180, event=event@entry=0x55827ea2fb60) at ../libview/ev-view.c:5596
view = 0x55827e6b5180
#15 0x00007f3dc07894a8 in _gtk_marshal_BOOLEAN__BOXEDv (closure=0x55827e1a6b50, return_value=0x7ffe745ae950, instance=<optimized out>, args=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, param_types=0x55827e1a4e00) at gtkmarshalers.c:129
cc = <optimized out>
data1 = 0x55827e6b5180
data2 = <optimized out>
callback = 0x7f3dc0db4a70 <ev_view_button_press_event>
v_return = <optimized out>
arg0 = 0x55827ea2fb60
args_copy = {{gp_offset = 32, fp_offset = 48, overflow_arg_area = 0x7ffe745aeae0, reg_save_area = 0x7ffe745aea20}}
__func__ = "_gtk_marshal_BOOLEAN__BOXEDv"
#16 0x00007f3dc0cf2724 in _g_closure_invoke_va (param_types=0x55827e1a4e00, n_params=1, args=0x7ffe745aea00, instance=0x55827e6b5180, return_value=<optimized out>, closure=<optimized out>) at ../../../gobject/gclosure.c:873
marshal = <optimized out>
marshal_data = <optimized out>
in_marshal = 0
real_closure = <optimized out>
real_closure = <optimized out>
__func__ = {<optimized out> <repeats 21 times>}
_g_boolean_var_ = <optimized out>
marshal = <optimized out>
marshal_data = <optimized out>
in_marshal = <optimized out>
_g_boolean_var_ = <optimized out>
cunion = <optimized out>
new_int = <optimized out>
old_int = <optimized out>
success = <optimized out>
tmp = {closure = {ref_count = <optimized out>, meta_marshal_nouse = <optimized out>, n_guards = <optimized out>, n_fnotifiers = <optimized out>, n_inotifiers = <optimized out>, in_inotify = <optimized out>, floating = <optimized out>, derivative_flag = <optimized out>, in_marshal = <optimized out>, is_invalid = <optimized out>, marshal = <optimized out>, data = <optimized out>, notifiers = <optimized out>}, vint = <optimized out>}
gaicae_oldval = <optimized out>
cunion = <optimized out>
new_int = <optimized out>
old_int = <optimized out>
success = <optimized out>
tmp = {closure = {ref_count = <optimized out>, meta_marshal_nouse = <optimized out>, n_guards = <optimized out>, n_fnotifiers = <optimized out>, n_inotifiers = <optimized out>, in_inotify = <optimized out>, floating = <optimized out>, derivative_flag = <optimized out>, in_marshal = <optimized out>, is_invalid = <optimized out>, marshal = <optimized out>, data = <optimized out>, notifiers = <optimized out>}, vint = <optimized out>}
gaicae_oldval = <optimized out>
#17 g_signal_emit_valist (instance=0x55827e6b5180, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffe745aea00) at ../../../gobject/gsignal.c:3406
return_accu = <optimized out>
accu = {g_type = 20, 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 = 0x55827e16fd00
emission = {next = 0x0, instance = 0x55827e6b5180, ihint = {signal_id = 78, detail = 0, run_type = (G_SIGNAL_RUN_LAST | G_SIGNAL_ACCUMULATOR_FIRST_RUN)}, state = EMISSION_RUN, chain_type = 94018955055264}
signal_id = 78
instance_type = <optimized out>
emission_return = {g_type = 20, 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 = 20
static_scope = 0
fastpath_handler = <optimized out>
closure = <optimized out>
run_type = <optimized out>
hlist = <optimized out>
l = <optimized out>
fastpath = 1
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"
#18 0x00007f3dc0cf2893 in g_signal_emit (instance=instance@entry=0x55827e6b5180, signal_id=<optimized out>, detail=detail@entry=0) at ../../../gobject/gsignal.c:3553
var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7ffe745aeae0, reg_save_area = 0x7ffe745aea20}}
#19 0x00007f3dc0750754 in gtk_widget_event_internal.part.0.lto_priv.0 (widget=0x55827e6b5180, event=0x55827ea2fb60) at ../../../../gtk/gtkwidget.c:7808
signal_num = <optimized out>
return_val = <optimized out>
handled = 0
__func__ = {<optimized out> <repeats 26 times>}
#20 0x00007f3dc05f21f0 in propagate_event_up (topmost=<optimized out>, event=<optimized out>, widget=0x55827e6b5180) at ../../../../gtk/gtkmain.c:2598
tmp = <optimized out>
handled_event = <optimized out>
#21 propagate_event (widget=widget@entry=0x55827e6b5180, event=event@entry=0x55827ea2fb60, captured=captured@entry=0, topmost=topmost@entry=0x0) at ../../../../gtk/gtkmain.c:2701
handled_event = 0
propagate_func = <optimized out>
#22 0x00007f3dc05f2323 in gtk_propagate_event (widget=widget@entry=0x55827e6b5180, event=event@entry=0x55827ea2fb60) at ../../../../gtk/gtkmain.c:2735
__func__ = "gtk_propagate_event"
#23 0x00007f3dc05f34ab in gtk_main_do_event (event=0x55827ea2fb60) at ../../../../gtk/gtkmain.c:1921
grab_widget = 0x55827e6b5180
window_group = 0x55827e879eb0
rewritten_event = <optimized out>
device = <optimized out>
tmp_list = <optimized out>
event_widget = <optimized out>
topmost_widget = <optimized out>
event_widget = <optimized out>
grab_widget = <optimized out>
topmost_widget = <optimized out>
window_group = <optimized out>
rewritten_event = <optimized out>
device = <optimized out>
tmp_list = <optimized out>
cleanup = <optimized out>
__func__ = {<optimized out> <repeats 18 times>}
__inst = <optimized out>
__t = <optimized out>
__r = <optimized out>
window = <optimized out>
__inst = <optimized out>
__t = <optimized out>
__r = <optimized out>
__inst = <optimized out>
__t = <optimized out>
__r = <optimized out>
mnemonics_visible = <optimized out>
window = <optimized out>
__inst = <optimized out>
__t = <optimized out>
__r = <optimized out>
#24 gtk_main_do_event (event=<optimized out>) at ../../../../gtk/gtkmain.c:1691
event_widget = <optimized out>
grab_widget = <optimized out>
topmost_widget = <optimized out>
window_group = <optimized out>
rewritten_event = <optimized out>
device = <optimized out>
tmp_list = <optimized out>
cleanup = <optimized out>
__func__ = "gtk_main_do_event"
__inst = <optimized out>
__t = <optimized out>
__r = <optimized out>
window = <optimized out>
__inst = <optimized out>
__t = <optimized out>
__r = <optimized out>
__inst = <optimized out>
__t = <optimized out>
__r = <optimized out>
mnemonics_visible = <optimized out>
window = <optimized out>
__inst = <optimized out>
__t = <optimized out>
__r = <optimized out>
#25 0x00007f3dc02d4733 in _gdk_event_emit (event=0x55827ea2fb60) at ../../../../gdk/gdkevents.c:73
No locals.
#26 _gdk_event_emit (event=0x55827ea2fb60) at ../../../../gdk/gdkevents.c:67
No locals.
#27 0x00007f3dc033b3d6 in gdk_event_source_dispatch (base=<optimized out>, callback=<optimized out>, data=<optimized out>) at wayland/../../../../../gdk/wayland/gdkeventsource.c:124
source = <optimized out>
display = <optimized out>
event = 0x55827ea2fb60
#28 0x00007f3dc0be08eb in g_main_dispatch (context=0x55827e154010) at ../../../glib/gmain.c:3337
dispatch = 0x7f3dc033b3b0 <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 = 0x55827e1698c0
current = 0x55827e1202b0
i = 0
current = <optimized out>
i = <optimized out>
__func__ = {<optimized out> <repeats 16 times>}
source = <optimized out>
_g_boolean_var_ = <optimized out>
was_in_call = <optimized out>
user_data = <optimized out>
callback = <optimized out>
cb_funcs = <optimized out>
cb_data = <optimized out>
need_destroy = <optimized out>
dispatch = <optimized out>
prev_source = <optimized out>
begin_time_nsec = <optimized out>
_g_boolean_var_ = <optimized out>
#29 g_main_context_dispatch (context=0x55827e154010) at ../../../glib/gmain.c:4055
No locals.
#30 0x00007f3dc0c33d28 in g_main_context_iterate.constprop.0 (context=context@entry=0x55827e154010, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4131
max_priority = 2147483647
timeout = 114
some_ready = 1
nfds = <optimized out>
allocated_nfds = <optimized out>
fds = 0x55827e2577b0
begin_time_nsec = 0
#31 0x00007f3dc0bde023 in g_main_context_iteration (context=context@entry=0x55827e154010, may_block=may_block@entry=1) at ../../../glib/gmain.c:4196
retval = <optimized out>
#32 0x00007f3dbfff427d in g_application_run (application=0x55827e3ff100, argc=1952116084, argc@entry=0, argv=argv@entry=0x0) at ../../../gio/gapplication.c:2560
arguments = 0x55827e2b3e80
status = 0
context = 0x55827e154010
acquired_context = <optimized out>
__func__ = "g_application_run"
#33 0x000055827cdfc132 in main (argc=<optimized out>, argv=<optimized out>) at ../shell/main.c:316
application = 0x55827e3ff100
context = <optimized out>
error = 0x0
status = <optimized out>