Godot version: 3.2.1
OS/device including version: Ubuntu Linux 19.10, kernel 5.0.0-1046-oem-osp1
Issue description:
When changing the time of multiple keyframes, the editor crashes approximately half the time:

This only happens when the time is changed, rather than just selected and deselected. It doesn't happen at all when clicking and dragging keyframes in the timeline, or when doing it individually (AnimationTrackKeyEdit).
The stacktrace doesn't appear to include symbols. However, this isn't just a segfault - this is a SIGILL (illegal instruction).
handle_crash: Program crashed with signal 4
Dumping the backtrace. Please include this when reporting the bug on https://github.com/godotengine/godot/issues
[1] /lib/x86_64-linux-gnu/libc.so.6(+0x46470) [0x7f2f4ecc8470] (??:0)
[2] /home/doug/bin-ish/Godot_v3.2.1-stable_x11.64() [0x1a0e00b] (<artificial>:?)
[3] /home/doug/bin-ish/Godot_v3.2.1-stable_x11.64() [0x1abbb65] (<artificial>:?)
[...]
Steps to reproduce:
AnimationMultiTrackKeyEdit panelMinimal reproduction project:
Stacktrace:
ERROR: operator[]: FATAL: Index p_index = 1 is out of bounds (size() = 1).
At: ./core/list.h:455.
handle_crash: Program crashed with signal 4
Dumping the backtrace. Please include this when reporting the bug on https://github.com/godotengine/godot/issues
[1] /usr/lib/libc.so.6(+0x3bd70) [0x7fddaa5b7d70] (??:0)
[2] List<float, DefaultAllocator>::operator[](int) (/home/guilherme/Workspaces/godot/./core/list.h:455 (discriminator 7))
[3] AnimationMultiTrackKeyEdit::_key_ofs_changed(Ref<Animation> const&, float, float) (/home/guilherme/Workspaces/godot/editor/animation_track_editor.cpp:764)
[4] MethodBind3<Ref<Animation> const&, float, float>::call(Object*, Variant const**, int, Variant::CallError&) (/home/guilherme/Workspaces/godot/./core/method_bind.gen.inc:2303 (discriminator 26))
[5] Object::call(StringName const&, Variant const**, int, Variant::CallError&) (/home/guilherme/Workspaces/godot/core/object.cpp:921 (discriminator 1))
[6] UndoRedo::_process_operation_list(List<UndoRedo::Operation, DefaultAllocator>::Element*) (/home/guilherme/Workspaces/godot/core/undo_redo.cpp:294 (discriminator 4))
[7] UndoRedo::redo() (/home/guilherme/Workspaces/godot/core/undo_redo.cpp:338)
[8] UndoRedo::commit_action() (/home/guilherme/Workspaces/godot/core/undo_redo.cpp:260)
[9] AnimationMultiTrackKeyEdit::_set(StringName const&, Variant const&) (/home/guilherme/Workspaces/godot/editor/animation_track_editor.cpp:1050)
[10] AnimationMultiTrackKeyEdit::_setv(StringName const&, Variant const&) (/home/guilherme/Workspaces/godot/editor/animation_track_editor.cpp:702 (discriminator 11))
[11] Object::set(StringName const&, Variant const&, bool*) (/home/guilherme/Workspaces/godot/core/object.cpp:446)
[12] EditorInspector::_edit_set(String const&, Variant const&, bool, String const&) (/home/guilherme/Workspaces/godot/editor/editor_inspector.cpp:2002 (discriminator 2))
[13] EditorInspector::_property_changed(String const&, Variant const&, String const&, bool) (/home/guilherme/Workspaces/godot/editor/editor_inspector.cpp:2065)
[14] MethodBind4<String const&, Variant const&, String const&, bool>::call(Object*, Variant const**, int, Variant::CallError&) (/home/guilherme/Workspaces/godot/./core/method_bind.gen.inc:3115 (discriminator 33))
[15] Object::call(StringName const&, Variant const**, int, Variant::CallError&) (/home/guilherme/Workspaces/godot/core/object.cpp:921 (discriminator 1))
[16] Object::emit_signal(StringName const&, Variant const**, int) (/home/guilherme/Workspaces/godot/core/object.cpp:1217 (discriminator 1))
[17] EditorProperty::emit_changed(StringName const&, Variant const&, StringName const&, bool) (/home/guilherme/Workspaces/godot/editor/editor_inspector.cpp:89 (discriminator 3))
[18] EditorPropertyFloat::_value_changed(double) (/home/guilherme/Workspaces/godot/editor/editor_properties.cpp:893 (discriminator 6))
[19] MethodBind1<double>::call(Object*, Variant const**, int, Variant::CallError&) (/home/guilherme/Workspaces/godot/./core/method_bind.gen.inc:775 (discriminator 12))
[20] Object::call(StringName const&, Variant const**, int, Variant::CallError&) (/home/guilherme/Workspaces/godot/core/object.cpp:921 (discriminator 1))
[21] Object::emit_signal(StringName const&, Variant const**, int) (/home/guilherme/Workspaces/godot/core/object.cpp:1217 (discriminator 1))
[22] Object::emit_signal(StringName const&, Variant const&, Variant const&, Variant const&, Variant const&, Variant const&) (/home/guilherme/Workspaces/godot/core/object.cpp:1275)
[23] Range::_value_changed_notify() (/home/guilherme/Workspaces/godot/scene/gui/range.cpp:49 (discriminator 4))
[24] Range::Shared::emit_value_changed() (/home/guilherme/Workspaces/godot/scene/gui/range.cpp:60)
[25] Range::set_value(double) (/home/guilherme/Workspaces/godot/scene/gui/range.cpp:100)
[26] EditorSpinSlider::_evaluate_input_text() (/home/guilherme/Workspaces/godot/editor/editor_spin_slider.cpp:358)
[27] EditorSpinSlider::_value_focus_exited() (/home/guilherme/Workspaces/godot/editor/editor_spin_slider.cpp:386)
[28] MethodBind0::call(Object*, Variant const**, int, Variant::CallError&) (/home/guilherme/Workspaces/godot/./core/method_bind.gen.inc:61 (discriminator 4))
[29] Object::call(StringName const&, Variant const**, int, Variant::CallError&) (/home/guilherme/Workspaces/godot/core/object.cpp:921 (discriminator 1))
[30] Object::emit_signal(StringName const&, Variant const**, int) (/home/guilherme/Workspaces/godot/core/object.cpp:1217 (discriminator 1))
[31] Object::emit_signal(StringName const&, Variant const&, Variant const&, Variant const&, Variant const&, Variant const&) (/home/guilherme/Workspaces/godot/core/object.cpp:1275)
[32] Control::_notification(int) (/home/guilherme/Workspaces/godot/scene/gui/control.cpp:643)
[33] Control::_notificationv(int, bool) (/home/guilherme/Workspaces/godot/./scene/gui/control.h:48 (discriminator 14))
[34] LineEdit::_notificationv(int, bool) (/home/guilherme/Workspaces/godot/scene/gui/line_edit.h:39)
[35] Object::notification(int, bool) (/home/guilherme/Workspaces/godot/core/object.cpp:933)
[36] Viewport::_gui_remove_focus() (/home/guilherme/Workspaces/godot/scene/main/viewport.cpp:2653)
[37] Viewport::_gui_hid_control(Control*) (/home/guilherme/Workspaces/godot/scene/main/viewport.cpp:2620)
[38] Control::_notification(int) (/home/guilherme/Workspaces/godot/scene/gui/control.cpp:663)
[39] Control::_notificationv(int, bool) (/home/guilherme/Workspaces/godot/./scene/gui/control.h:48 (discriminator 14))
[40] LineEdit::_notificationv(int, bool) (/home/guilherme/Workspaces/godot/scene/gui/line_edit.h:39 (discriminator 3))
[41] Object::notification(int, bool) (/home/guilherme/Workspaces/godot/core/object.cpp:933)
[42] CanvasItem::_propagate_visibility_changed(bool) (/home/guilherme/Workspaces/godot/scene/2d/canvas_item.cpp:391)
[43] CanvasItem::hide() (/home/guilherme/Workspaces/godot/scene/2d/canvas_item.cpp:435)
[44] EditorSpinSlider::_value_input_entered(String const&) (/home/guilherme/Workspaces/godot/editor/editor_spin_slider.cpp:365)
[45] MethodBind1<String const&>::call(Object*, Variant const**, int, Variant::CallError&) (/home/guilherme/Workspaces/godot/./core/method_bind.gen.inc:775 (discriminator 12))
[46] Object::call(StringName const&, Variant const**, int, Variant::CallError&) (/home/guilherme/Workspaces/godot/core/object.cpp:921 (discriminator 1))
[47] Object::emit_signal(StringName const&, Variant const**, int) (/home/guilherme/Workspaces/godot/core/object.cpp:1217 (discriminator 1))
[48] Object::emit_signal(StringName const&, Variant const&, Variant const&, Variant const&, Variant const&, Variant const&) (/home/guilherme/Workspaces/godot/core/object.cpp:1275)
[49] LineEdit::_gui_input(Ref<InputEvent>) (/home/guilherme/Workspaces/godot/scene/gui/line_edit.cpp:300 (discriminator 4))
[50] MethodBind1<Ref<InputEvent> >::call(Object*, Variant const**, int, Variant::CallError&) (/home/guilherme/Workspaces/godot/./core/method_bind.gen.inc:775 (discriminator 12))
[51] Object::call_multilevel(StringName const&, Variant const**, int) (/home/guilherme/Workspaces/godot/core/object.cpp:763 (discriminator 1))
[52] Object::call_multilevel(StringName const&, Variant const&, Variant const&, Variant const&, Variant const&, Variant const&) (/home/guilherme/Workspaces/godot/core/object.cpp:864)
[53] Viewport::_gui_input_event(Ref<InputEvent>) (/home/guilherme/Workspaces/godot/scene/main/viewport.cpp:2404 (discriminator 2))
[54] Viewport::input(Ref<InputEvent> const&) (/home/guilherme/Workspaces/godot/scene/main/viewport.cpp:2825 (discriminator 2))
[55] Viewport::_vp_input(Ref<InputEvent> const&) (/home/guilherme/Workspaces/godot/scene/main/viewport.cpp:1445)
[56] MethodBind1<Ref<InputEvent> const&>::call(Object*, Variant const**, int, Variant::CallError&) (/home/guilherme/Workspaces/godot/./core/method_bind.gen.inc:775 (discriminator 12))
[57] Object::call(StringName const&, Variant const**, int, Variant::CallError&) (/home/guilherme/Workspaces/godot/core/object.cpp:921 (discriminator 1))
[58] Object::call(StringName const&, Variant const&, Variant const&, Variant const&, Variant const&, Variant const&) (/home/guilherme/Workspaces/godot/core/object.cpp:848)
[59] SceneTree::call_group_flags(unsigned int, StringName const&, StringName const&, Variant const&, Variant const&, Variant const&, Variant const&, Variant const&) (/home/guilherme/Workspaces/godot/scene/main/scene_tree.cpp:275)
[60] SceneTree::input_event(Ref<InputEvent> const&) (/home/guilherme/Workspaces/godot/scene/main/scene_tree.cpp:431 (discriminator 6))
[61] InputDefault::_parse_input_event_impl(Ref<InputEvent> const&, bool) (/home/guilherme/Workspaces/godot/main/input_default.cpp:416)
[62] InputDefault::parse_input_event(Ref<InputEvent> const&) (/home/guilherme/Workspaces/godot/main/input_default.cpp:260)
[63] InputDefault::flush_accumulated_events() (/home/guilherme/Workspaces/godot/main/input_default.cpp:679)
[64] OS_X11::process_xevents() (/home/guilherme/Workspaces/godot/platform/x11/os_x11.cpp:2676)
[65] OS_X11::run() (/home/guilherme/Workspaces/godot/platform/x11/os_x11.cpp:3241)
[66] /home/guilherme/Workspaces/godot-stable-branch/bin/godot.x11.tools.64(main+0x121) [0x13f86c7] (/home/guilherme/Workspaces/godot/platform/x11/godot_x11.cpp:57)
[67] /usr/lib/libc.so.6(__libc_start_main+0xf3) [0x7fddaa5a3023] (??:0)
[68] /home/guilherme/Workspaces/godot-stable-branch/bin/godot.x11.tools.64(_start+0x2e) [0x13f84ee] (??:?)
-- END OF BACKTRACE --
Also confirmed, had noticed it before, seems to happen if you make changes multiple times in row to the same field.
@YeldhamDev Is it related to this? https://github.com/godotengine/godot/pull/30778
It seems to only happen when setting it to a value equal or bigger than 1, then changing to a lower value back. Will investigate.
Most helpful comment
It seems to only happen when setting it to a value equal or bigger than 1, then changing to a lower value back. Will investigate.