Open puthre opened 5 years ago
Doesn't happen in 5323d24fa. You sure it's not one of the patches you use? Reproduction project/more precise steps?
Doesn't happen in 5323d24. You sure it's not one of the patches you use? Reproduction project/more precise steps?
It happened only once and I thought it's best to write it down maybe it helps. I've tried a few minutes to reproduce it but I couldn't. It's not very likely from the patches I use, they focus on very specific things that have nothing to do with the animation editor. I'll keep an eye on it as I have some animations to edit.
Crashed again. I think it's related to duplicate and then move in some conditions.
ERROR: track_get_key_time: Index p_key_idx=2 out of size (bt->values.size()=2)
At: scene/resources/animation.cpp:1278.
ERROR: track_get_key_time: Index p_key_idx=2 out of size (bt->values.size()=2)
At: scene/resources/animation.cpp:1278.
ERROR: track_get_key_value: Index p_key_idx=2 out of size (bt->values.size()=2)
At: scene/resources/animation.cpp:1211.
ERROR: _process_operation_list: Error calling method from signal 'track_insert_key': 'Animation::track_insert_key': Method expected 3 arguments, but called with 2.
At: core/undo_redo.cpp:296.
ERROR: track_get_key_time: Index p_key_idx=2 out of size (bt->values.size()=2)
At: scene/resources/animation.cpp:1278.
ERROR: track_get_key_time: Index p_key_idx=2 out of size (bt->values.size()=2)
At: scene/resources/animation.cpp:1278.
ERROR: track_get_key_value: Index p_key_idx=2 out of size (bt->values.size()=2)
At: scene/resources/animation.cpp:1211.
ERROR: operator[]: FATAL: Index p_index=0 out of size (((Vector<T> *)(this))->_cowdata.size()=0)
At: ./core/vector.h:49.
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(+0x3ef20) [0x7f30ed523f20] (??:0)
[2] VectorWriteProxy<Variant>::operator[](int) (/home/puthre/godot/mygodot/godot/./core/vector.h:49 (discriminator 7))
[3] Array::operator[](int) (/home/puthre/godot/mygodot/godot/core/array.cpp:76)
[4] AnimationBezierTrackEdit::_gui_input(Ref<InputEvent> const&) (/home/puthre/godot/mygodot/godot/editor/animation_bezier_editor.cpp:905)
[5] MethodBind1<Ref<InputEvent> const&>::call(Object*, Variant const**, int, Variant::CallError&) (/home/puthre/godot/mygodot/godot/./core/method_bind.gen.inc:775 (discriminator 12))
[6] Object::call_multilevel(StringName const&, Variant const**, int) (/home/puthre/godot/mygodot/godot/core/object.cpp:763 (discriminator 1))
[7] Object::call_multilevel(StringName const&, Variant const&, Variant const&, Variant const&, Variant const&, Variant const&) (/home/puthre/godot/mygodot/godot/core/object.cpp:864)
[8] Viewport::_gui_call_input(Control*, Ref<InputEvent> const&) (/home/puthre/godot/mygodot/godot/scene/main/viewport.cpp:1520 (discriminator 2))
[9] Viewport::_gui_input_event(Ref<InputEvent>) (/home/puthre/godot/mygodot/godot/scene/main/viewport.cpp:1894 (discriminator 3))
[10] Viewport::input(Ref<InputEvent> const&) (/home/puthre/godot/mygodot/godot/scene/main/viewport.cpp:2670 (discriminator 2))
[11] Viewport::_vp_input(Ref<InputEvent> const&) (/home/puthre/godot/mygodot/godot/scene/main/viewport.cpp:1297)
[12] MethodBind1<Ref<InputEvent> const&>::call(Object*, Variant const**, int, Variant::CallError&) (/home/puthre/godot/mygodot/godot/./core/method_bind.gen.inc:775 (discriminator 12))
[13] Object::call(StringName const&, Variant const**, int, Variant::CallError&) (/home/puthre/godot/mygodot/godot/core/object.cpp:921 (discriminator 1))
[14] Object::call(StringName const&, Variant const&, Variant const&, Variant const&, Variant const&, Variant const&) (/home/puthre/godot/mygodot/godot/core/object.cpp:848)
[15] SceneTree::call_group_flags(unsigned int, StringName const&, StringName const&, Variant const&, Variant const&, Variant const&, Variant const&, Variant const&) (/home/puthre/godot/mygodot/godot/scene/main/scene_tree.cpp:264)
[16] SceneTree::input_event(Ref<InputEvent> const&) (/home/puthre/godot/mygodot/godot/scene/main/scene_tree.cpp:419 (discriminator 6))
[17] InputDefault::_parse_input_event_impl(Ref<InputEvent> const&, bool) (/home/puthre/godot/mygodot/godot/main/input_default.cpp:416)
[18] InputDefault::parse_input_event(Ref<InputEvent> const&) (/home/puthre/godot/mygodot/godot/main/input_default.cpp:260)
[19] InputDefault::flush_accumulated_events() (/home/puthre/godot/mygodot/godot/main/input_default.cpp:679)
[20] OS_X11::process_xevents() (/home/puthre/godot/mygodot/godot/platform/x11/os_x11.cpp:2619)
[21] OS_X11::run() (/home/puthre/godot/mygodot/godot/platform/x11/os_x11.cpp:3182)
[22] /home/puthre/godot/mygodot/godot/bin/godot.x11.tools.64(main+0x128) [0x13c5b3f] (/home/puthre/godot/mygodot/godot/platform/x11/godot_x11.cpp:57)
[23] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7) [0x7f30ed506b97] (??:0)
[24] /home/puthre/godot/mygodot/godot/bin/godot.x11.tools.64(_start+0x2a) [0x13c595a] (??:?)
-- END OF BACKTRACE --
Ok, after a few hours of trying I as able to screen record what I was doing so now I'm able to reproduce it: While in bezier edit mode 1) Set snap to 0.5 2) insert key at 0 3) insert key at 0.5 4) insert key at 1 5) move cursor to 1 6) select all keys 7) edit -> duplicate selection 8) Undo (Ctrl+z) 9) move the currently selected node (don't select anything else in between) 10) crash
I think it has to do with the fact that that on duplicate the new nodes are selected but this is not added to the undo history and when you undo you will have a selection with keys that are no longer available which will make the next move crash.
Ok, confirmed in 3e469655a
Still valid in de465c4
3.2.alpha latest master with a few patches of my own.
Ubuntu 18.04
Crash with backtrace when moving keys. The terminal shows the following: