Godot: Godot crash in RichTextLabel _process_line

Created on 4 Jun 2019  路  4Comments  路  Source: godotengine/godot

Godot version:
3.2.dev.custom_build. a69436a

OS/device including version:
Ubuntu 19.04

Issue description:

[1] /lib/x86_64-linux-gnu/libc.so.6(+0x43f60) [0x7f11b3698f60] (??:0)
[2] RichTextLabel::_process_line(RichTextLabel::ItemFrame*, Vector2 const&, int&, int, int, RichTextLabel::ProcessMode, Ref<Font> const&, Color const&, Color const&, bool, Vector2 const&, Vector2i const&, RichTextLabel::Item**, int*, bool*, int) (/home/rafal/Pulpit/godot/scene/gui/rich_text_label.cpp:596)
[3] RichTextLabel::_validate_line_caches(RichTextLabel::ItemFrame*) (/home/rafal/Pulpit/godot/scene/gui/rich_text_label.cpp:1317)
[4] RichTextLabel::_notification(int) (/home/rafal/Pulpit/godot/scene/gui/rich_text_label.cpp:816)
[5] RichTextLabel::_notificationv(int, bool) (/home/rafal/Pulpit/godot/scene/gui/rich_text_label.h:38 (discriminator 14))
[6] Object::notification(int, bool) (/home/rafal/Pulpit/godot/core/object.cpp:952)
[7] CanvasItem::_update_callback() (/home/rafal/Pulpit/godot/scene/2d/canvas_item.cpp:455)
[8] MethodBind0::call(Object*, Variant const**, int, Variant::CallError&) (/home/rafal/Pulpit/godot/./core/method_bind.gen.inc:61 (discriminator 4))
[9] Object::call(StringName const&, Variant const**, int, Variant::CallError&) (/home/rafal/Pulpit/godot/core/object.cpp:940 (discriminator 1))
[10] MessageQueue::_call_function(Object*, StringName const&, Variant const*, int, bool) (/home/rafal/Pulpit/godot/core/message_queue.cpp:256)
[11] MessageQueue::flush() (/home/rafal/Pulpit/godot/core/message_queue.cpp:305)
[12] SceneTree::idle(float) (/home/rafal/Pulpit/godot/scene/main/scene_tree.cpp:535)
[13] Main::iteration() (/home/rafal/Pulpit/godot/main/main.cpp:1919)
[14] OS_X11::run() (/home/rafal/Pulpit/godot/platform/x11/os_x11.cpp:3034)
[15] /usr/bin/godot(main+0xdc) [0x138298e] (/home/rafal/Pulpit/godot/platform/x11/godot_x11.cpp:56)
[16] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xeb) [0x7f11b367bb6b] (??:0)
[17] /usr/bin/godot(_start+0x2a) [0x13827fa] (??:?)

Steps to reproduce:

  1. Run minimal project with correct commit and wait

Minimal reproduction project:
https://github.com/qarmin/The-worst-Godot-test-project/
commit 3a1dd1227445456b32fd070822d49428f4e17862

Zip
Bug.zip

bug crash core

Most helpful comment

Offtopic: ROTFL at us three Polish talking in English only :D

All 4 comments

I see you are linking the same GitHub project, giving hash commits. It would be more helpful if you provided the direct link to zip download for that commit, so it's faster to test.

EDIT:
I actually meant that you can go here:
image
And do this:
image
But direct upload works too.

Offtopic: ROTFL at us three Polish talking in English only :D

Have run into something that has given me this trace, I'll check later if #29573 fixes it.

ERROR: RichTextLabel::_process_line: Index line=0 out of size (l.offset_caches.size()=0)
   At: scene\gui\rich_text_label.cpp:168
GAME DETAIL ->  Interactive load successful for: res://_testing/visual_tests/backend/test_disk/load_scene_1c.tscn
ERROR: VectorWriteProxy<struct RichTextLabel::Line>::operator []: GAME DETAIL ->  Interactive load successful for: res://_testing/visual_tests/backend/test_disk/load_scene_2a.tscn
FATAL: Index p_index=7 out of size (((Vector<T> *)(this))->_cowdata.size()=1)
   At: C:\Godot\Version 3.1\3.1 Source\core/vector.h:49
CrashHandlerException: Program crashed
Dumping the backtrace. Please include this when reporting the bug on https://github.com/godotengine/godot/issues
[0] VectorWriteProxy<RichTextLabel::Line>::operator[] (c:\godot\version 3.1\3.1 source\core\vector.h:49)
[1] RichTextLabel::_validate_line_caches (c:\godot\version 3.1\3.1 source\scene\gui\rich_text_label.cpp:1440)
[2] RichTextLabel::_notification (c:\godot\version 3.1\3.1 source\scene\gui\rich_text_label.cpp:921)
[3] RichTextLabel::_notificationv (c:\godot\version 3.1\3.1 source\scene\gui\rich_text_label.h:39)
[4] Object::notification (c:\godot\version 3.1\3.1 source\core\object.cpp:954)
[5] CanvasItem::_update_callback (c:\godot\version 3.1\3.1 source\scene\2d\canvas_item.cpp:455)
[6] MethodBind0<CanvasItem>::call (c:\godot\version 3.1\3.1 source\core\method_bind.gen.inc:139)
[7] Object::call (c:\godot\version 3.1\3.1 source\core\object.cpp:942)
[8] MessageQueue::_call_function (c:\godot\version 3.1\3.1 source\core\message_queue.cpp:256)
[9] MessageQueue::flush (c:\godot\version 3.1\3.1 source\core\message_queue.cpp:305)
[10] SceneTree::iteration (c:\godot\version 3.1\3.1 source\scene\main\scene_tree.cpp:477)
[11] Main::iteration (c:\godot\version 3.1\3.1 source\main\main.cpp:1862)
[12] OS_Windows::run (c:\godot\version 3.1\3.1 source\platform\windows\os_windows.cpp:2819)
[13] widechar_main (c:\godot\version 3.1\3.1 source\platform\windows\godot_windows.cpp:151)
[14] _main (c:\godot\version 3.1\3.1 source\platform\windows\godot_windows.cpp:173)
[15] main (c:\godot\version 3.1\3.1 source\platform\windows\godot_windows.cpp:185)
[16] __scrt_common_main_seh (f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:283)
[17] BaseThreadInitThunk
-- END OF BACKTRACE --

Nope, scratch my previous post above. It is not related. It had to do with a signal I was using in a thread to update UI information. Seems emitting signals is not thread safe, so using a call_deferred seems to be solution.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

mefihl picture mefihl  路  3Comments

ivanskodje picture ivanskodje  路  3Comments

nunodonato picture nunodonato  路  3Comments

SleepProgger picture SleepProgger  路  3Comments

ducdetronquito picture ducdetronquito  路  3Comments