Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Godot crashes when using CurveTexture::set_curve #32875

Open
qarmin opened this issue Oct 16, 2019 · 4 comments
Open

Godot crashes when using CurveTexture::set_curve #32875

qarmin opened this issue Oct 16, 2019 · 4 comments

Comments

@qarmin
Copy link
Contributor

qarmin commented Oct 16, 2019

Godot version:
3.2.alpha.custom_build. 1fed266
OS/device including version:
Ubuntu 19.04
Issue description:

The minimal project is very, very big because Godot crashes very rarely, sometimes after 5s but sometimes doesn't crash after 10 min.

Backtrace:

core/vmap.h:86:21: runtime error: member access within null pointer of type 'const struct Pair'
core/vmap.h:86:21: runtime error: member call on null pointer of type 'const struct Target'
core/vmap.h:86:17: runtime error: member access within null pointer of type 'const struct Pair'
core/object.h:449:74: runtime error: member access within null pointer of type 'const struct Target'
handle_crash: Program crashed with signal 11
Dumping the backtrace. Please include this when reporting the bug on https://github.com/godotengine/godot/issues
[1] godots() [0x140a2b0] (/mnt/KubuntuWolne/godot/platform/x11/crash_handler_x11.cpp:54)
[2] /lib/x86_64-linux-gnu/libc.so.6(+0x43f60) [0x7f1616784f60] (??:0)
[3] Object::Signal::Target::operator<(Object::Signal::Target const&) const (/mnt/KubuntuWolne/godot/core/object.h:449)
[4] VMap<Object::Signal::Target, Object::Signal::Slot>::_find(Object::Signal::Target const&, bool&) const (/mnt/KubuntuWolne/godot/./core/vmap.h:86)
[5] VMap<Object::Signal::Target, Object::Signal::Slot>::insert(Object::Signal::Target const&, Object::Signal::Slot const&) (/mnt/KubuntuWolne/godot/./core/vmap.h:120)
[6] VMap<Object::Signal::Target, Object::Signal::Slot>::operator[](Object::Signal::Target const&) (/mnt/KubuntuWolne/godot/./core/vmap.h:200)
[7] Object::connect(StringName const&, Object*, StringName const&, Vector<Variant> const&, unsigned int) (/mnt/KubuntuWolne/godot/core/object.cpp:1483)
[8] CurveTexture::set_curve(Ref<Curve>) (/mnt/KubuntuWolne/godot/scene/resources/texture.cpp:1731 (discriminator 4))
[9] MethodBind1<Ref<Curve> >::call(Object*, Variant const**, int, Variant::CallError&) (/mnt/KubuntuWolne/godot/./core/method_bind.gen.inc:775 (discriminator 12))
[10] Object::call(StringName const&, Variant const**, int, Variant::CallError&) (/mnt/KubuntuWolne/godot/core/object.cpp:921 (discriminator 1))
[11] Variant::call_ptr(StringName const&, Variant const**, int, Variant*, Variant::CallError&) (/mnt/KubuntuWolne/godot/core/variant_call.cpp:1096 (discriminator 1))
[12] GDScriptFunction::call(GDScriptInstance*, Variant const**, int, Variant::CallError&, GDScriptFunction::CallState*) (/mnt/KubuntuWolne/godot/modules/gdscript/gdscript_function.cpp:1085)
[13] GDScriptInstance::call_multilevel(StringName const&, Variant const**, int) (/mnt/KubuntuWolne/godot/modules/gdscript/gdscript.cpp:1180)
[14] Node::_notification(int) (/mnt/KubuntuWolne/godot/scene/main/node.cpp:58)
[15] Node::_notificationv(int, bool) (/mnt/KubuntuWolne/godot/./scene/main/node.h:46 (discriminator 14))
[16] CanvasItem::_notificationv(int, bool) (/mnt/KubuntuWolne/godot/./scene/2d/canvas_item.h:166 (discriminator 3))
[17] Node2D::_notificationv(int, bool) (/mnt/KubuntuWolne/godot/./scene/2d/node_2d.h:38 (discriminator 3))
[18] Object::notification(int, bool) (/mnt/KubuntuWolne/godot/core/object.cpp:933)
[19] SceneTree::_notify_group_pause(StringName const&, int) (/mnt/KubuntuWolne/godot/scene/main/scene_tree.cpp:963)
[20] SceneTree::idle(float) (/mnt/KubuntuWolne/godot/scene/main/scene_tree.cpp:515 (discriminator 3))
[21] Main::iteration() (/mnt/KubuntuWolne/godot/main/main.cpp:1976)
[22] OS_X11::run() (/mnt/KubuntuWolne/godot/platform/x11/os_x11.cpp:3192)
[23] godots(main+0x342) [0x1401ba4] (/mnt/KubuntuWolne/godot/platform/x11/godot_x11.cpp:57)
[24] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xeb) [0x7f1616767b6b] (??:0)
[25] godots(_start+0x2a) [0x14017aa] (??:?)

Steps to reproduce:
Read project manual - https://github.com/qarmin/The-worst-Godot-test-project#the-worst-godot-test-project
Run project
Minimal reproduction project:
The-worst-Godot-test-project.zip

@qarmin qarmin changed the title Godot crashes when using Godot crashes when using CurveTexture::set_curve Oct 16, 2019
@qarmin
Copy link
Contributor Author

qarmin commented Jul 4, 2020

Still happens with 3.2.2

New minimal project - MP.zip

To reproduce:

  • Run project
  • Wait 5s
  • If not crash, close it and repeat

@qarmin
Copy link
Contributor Author

qarmin commented Jul 5, 2020

Probably the smallest possible project - Small1.zip

To check crash the best option is to run project inside loop

for i in {1..50}; do { timeout 5s godot; }; done

@qarmin
Copy link
Contributor Author

qarmin commented Feb 28, 2021

Still happens with Godot 3.2.4 rc 3

==94727==ERROR: AddressSanitizer: heap-use-after-free on address 0x62d000669750 at pc 0x000011574b61 bp 0x7fdb54071a00 sp 0x7fdb540719f0
READ of size 8 at 0x62d000669750 thread T3
    #0 0x11574b60 in Object::Signal::Target::operator=(Object::Signal::Target const&) core/object.h:450
    #1 0x11574d89 in VMap<Object::Signal::Target, Object::Signal::Slot>::Pair::operator=(VMap<Object::Signal::Target, Object::Signal::Slot>::Pair const&) core/vmap.h:40
    #2 0x11575148 in CowData<VMap<Object::Signal::Target, Object::Signal::Slot>::Pair>::remove(int) core/cowdata.h:170
    #3 0x1156ae6d in VMap<Object::Signal::Target, Object::Signal::Slot>::erase(Object::Signal::Target const&) core/vmap.h:139
    #4 0x1154f829 in Object::_disconnect(StringName const&, Object*, StringName const&, bool) core/object.cpp:1588
    #5 0x115607ee in Object::~Object() core/object.cpp:2037
    #6 0x11606c90 in Reference::~Reference() core/reference.cpp:111
    #7 0x1165aa86 in Resource::~Resource() core/resource.cpp:426
    #8 0x35a762e in Texture::~Texture() scene/resources/texture.h:45
    #9 0xf1fdf95 in CurveTexture::~CurveTexture() scene/resources/texture.cpp:1784
    #10 0x17f0ec4 in void memdelete<Reference>(Reference*) core/os/memory.h:117
    #11 0x17e1d5e in Ref<Reference>::unref() core/reference.h:279
    #12 0x11603a3c in RefPtr::unref() core/ref_ptr.cpp:90
    #13 0x117515cc in Variant::clear() core/variant.cpp:1129
    #14 0x172d3df in Variant::~Variant() core/variant.h:444
    #15 0x1c4ddf8 in Map<StringName, Variant, Comparator<StringName>, DefaultAllocator>::Element::~Element() core/map.h:50
    #16 0x1c4deca in void memdelete_allocator<Map<StringName, Variant, Comparator<StringName>, DefaultAllocator>::Element, DefaultAllocator>(Map<StringName, Variant, Comparator<StringName>, DefaultAllocator>::Element*) core/os/memory.h:128
    #17 0x1c2916c in Map<StringName, Variant, Comparator<StringName>, DefaultAllocator>::_cleanup_tree(Map<StringName, Variant, Comparator<StringName>, DefaultAllocator>::Element*) core/map.h:505
    #18 0x1c290b9 in Map<StringName, Variant, Comparator<StringName>, DefaultAllocator>::_cleanup_tree(Map<StringName, Variant, Comparator<StringName>, DefaultAllocator>::Element*) core/map.h:503
    #19 0x1c29160 in Map<StringName, Variant, Comparator<StringName>, DefaultAllocator>::_cleanup_tree(Map<StringName, Variant, Comparator<StringName>, DefaultAllocator>::Element*) core/map.h:504
    #20 0x1c290b9 in Map<StringName, Variant, Comparator<StringName>, DefaultAllocator>::_cleanup_tree(Map<StringName, Variant, Comparator<StringName>, DefaultAllocator>::Element*) core/map.h:503
    #21 0x1c29160 in Map<StringName, Variant, Comparator<StringName>, DefaultAllocator>::_cleanup_tree(Map<StringName, Variant, Comparator<StringName>, DefaultAllocator>::Element*) core/map.h:504
    #22 0x1c0c753 in Map<StringName, Variant, Comparator<StringName>, DefaultAllocator>::clear() core/map.h:660
    #23 0x1c0d98f in Map<StringName, Variant, Comparator<StringName>, DefaultAllocator>::~Map() core/map.h:681
    #24 0x7ca749e in RasterizerStorageGLES3::Material::~Material() (/usr/bin/godots+0x7ca749e)
    #25 0x7ca77c8 in void memdelete<RasterizerStorageGLES3::Material>(RasterizerStorageGLES3::Material*) (/usr/bin/godots+0x7ca77c8)
    #26 0x7c500b2 in RasterizerStorageGLES3::free(RID) drivers/gles3/rasterizer_storage_gles3.cpp:8076
    #27 0x1039a09f in VisualServerRaster::free(RID) servers/visual/visual_server_raster.cpp:72
    #28 0x1080c50c in CommandQueueMT::Command1<VisualServer, void (VisualServer::*)(RID), RID>::call() core/command_queue_mt.h:301
    #29 0x101037a4 in CommandQueueMT::flush_one(bool) core/command_queue_mt.h:440
    #30 0x101041d1 in CommandQueueMT::wait_and_flush_one() core/command_queue_mt.h:473
    #31 0x1057c4a3 in VisualServerWrapMT::thread_loop() servers/visual/visual_server_wrap_mt.cpp:72
    #32 0x1057b9db in VisualServerWrapMT::_thread_callback(void*) servers/visual/visual_server_wrap_mt.cpp:57
    #33 0x11a92149 in Thread::callback(Thread*, Thread::Settings const&, void (*)(void*), void*) core/os/thread.cpp:68
    #34 0x11a958d1 in void std::__invoke_impl<void, void (*)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*, Thread::Settings, void (*)(void*), void*>(std::__invoke_other, void (*&&)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*&&, Thread::Settings&&, void (*&&)(void*), void*&&) /usr/include/c++/10/bits/invoke.h:60
    #35 0x11a9519f in std::__invoke_result<void (*)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*, Thread::Settings, void (*)(void*), void*>::type std::__invoke<void (*)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*, Thread::Settings, void (*)(void*), void*>(void (*&&)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*&&, Thread::Settings&&, void (*&&)(void*), void*&&) /usr/include/c++/10/bits/invoke.h:95
    #36 0x11a94d07 in void std::thread::_Invoker<std::tuple<void (*)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*, Thread::Settings, void (*)(void*), void*> >::_M_invoke<0ul, 1ul, 2ul, 3ul, 4ul>(std::_Index_tuple<0ul, 1ul, 2ul, 3ul, 4ul>) /usr/include/c++/10/thread:264
    #37 0x11a9499e in std::thread::_Invoker<std::tuple<void (*)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*, Thread::Settings, void (*)(void*), void*> >::operator()() /usr/include/c++/10/thread:271
    #38 0x11a94956 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*, Thread::Settings, void (*)(void*), void*> > >::_M_run() /usr/include/c++/10/thread:215
    #39 0x12aac6f3 in execute_native_thread_routine (/usr/bin/godots+0x12aac6f3)
    #40 0x7fdb79b37608 in start_thread /build/glibc-eX1tMB/glibc-2.31/nptl/pthread_create.c:477
    #41 0x7fdb78f9a292 in __clone (/lib/x86_64-linux-gnu/libc.so.6+0x122292)

0x62d000669750 is located 4944 bytes inside of 32784-byte region [0x62d000668400,0x62d000670410)
freed by thread T0 here:
    #0 0x7fdb7a0188d0 in __interceptor_realloc (/lib/x86_64-linux-gnu/libasan.so.6+0xb08d0)
    #1 0x11a7b831 in Memory::realloc_static(void*, unsigned long, bool) core/os/memory.cpp:137
    #2 0x1158459e in CowData<VMap<Object::Signal::Target, Object::Signal::Slot>::Pair>::resize(int) core/cowdata.h:295
    #3 0x11583cdb in CowData<VMap<Object::Signal::Target, Object::Signal::Slot>::Pair>::insert(int, VMap<Object::Signal::Target, Object::Signal::Slot>::Pair const&) core/cowdata.h:179
    #4 0x11574a34 in VMap<Object::Signal::Target, Object::Signal::Slot>::insert(Object::Signal::Target const&, Object::Signal::Slot const&) core/vmap.h:125
    #5 0x1156abfd in VMap<Object::Signal::Target, Object::Signal::Slot>::operator[](Object::Signal::Target const&) core/vmap.h:199
    #6 0x1154bf3e in Object::connect(StringName const&, Object*, StringName const&, Vector<Variant> const&, unsigned int) core/object.cpp:1531
    #7 0xf1faf2f in CurveTexture::set_curve(Ref<Curve>) scene/resources/texture.cpp:1732
    #8 0xf29a9c6 in MethodBind1<Ref<Curve> >::call(Object*, Variant const**, int, Variant::CallError&) core/method_bind.gen.inc:775
    #9 0x115388b1 in Object::call(StringName const&, Variant const**, int, Variant::CallError&) core/object.cpp:919
    #10 0x117be129 in Variant::call_ptr(StringName const&, Variant const**, int, Variant*, Variant::CallError&) core/variant_call.cpp:1148
    #11 0x1d99b5d in GDScriptFunction::call(GDScriptInstance*, Variant const**, int, Variant::CallError&, GDScriptFunction::CallState*) modules/gdscript/gdscript_function.cpp:1086
    #12 0x1bca770 in GDScriptInstance::call_multilevel(StringName const&, Variant const**, int) modules/gdscript/gdscript.cpp:1224
    #13 0xc0349a5 in Node::_notification(int) scene/main/node.cpp:60
    #14 0x1a78d7d in Node::_notificationv(int, bool) scene/main/node.h:46
    #15 0x1a7b1f2 in CanvasItem::_notificationv(int, bool) scene/2d/canvas_item.h:166
    #16 0xdb25ce0 in Node2D::_notificationv(int, bool) scene/2d/node_2d.h:38
    #17 0x11538d4b in Object::notification(int, bool) core/object.cpp:929
    #18 0xc163a11 in SceneTree::_notify_group_pause(StringName const&, int) scene/main/scene_tree.cpp:992
    #19 0xc153f9f in SceneTree::idle(float) scene/main/scene_tree.cpp:529
    #20 0x18dcd08 in Main::iteration() main/main.cpp:2115
    #21 0x17c08fc in OS_X11::run() platform/x11/os_x11.cpp:3628
    #22 0x172cefb in main platform/x11/godot_x11.cpp:56
    #23 0x7fdb78e9f0b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x270b2)

previously allocated by thread T0 here:
    #0 0x7fdb7a0188d0 in __interceptor_realloc (/lib/x86_64-linux-gnu/libasan.so.6+0xb08d0)
    #1 0x11a7b831 in Memory::realloc_static(void*, unsigned long, bool) core/os/memory.cpp:137
    #2 0x11584d07 in CowData<VMap<Object::Signal::Target, Object::Signal::Slot>::Pair>::resize(int) core/cowdata.h:326
    #3 0x115751cb in CowData<VMap<Object::Signal::Target, Object::Signal::Slot>::Pair>::remove(int) core/cowdata.h:173
    #4 0x1156ae6d in VMap<Object::Signal::Target, Object::Signal::Slot>::erase(Object::Signal::Target const&) core/vmap.h:139
    #5 0x1154f829 in Object::_disconnect(StringName const&, Object*, StringName const&, bool) core/object.cpp:1588
    #6 0x115607ee in Object::~Object() core/object.cpp:2037
    #7 0x11606c90 in Reference::~Reference() core/reference.cpp:111
    #8 0x1165aa86 in Resource::~Resource() core/resource.cpp:426
    #9 0x35a762e in Texture::~Texture() scene/resources/texture.h:45
    #10 0xf1fdf95 in CurveTexture::~CurveTexture() scene/resources/texture.cpp:1784
    #11 0x17f0ec4 in void memdelete<Reference>(Reference*) core/os/memory.h:117
    #12 0x17e1d5e in Ref<Reference>::unref() core/reference.h:279
    #13 0x17e1f42 in Ref<Reference>::ref(Ref<Reference> const&) core/reference.h:70
    #14 0x1c0542f in Ref<Reference>::operator=(Ref<Reference> const&) core/reference.h:151
    #15 0x116032dd in RefPtr::operator=(RefPtr const&) core/ref_ptr.cpp:41
    #16 0x1178bddf in Variant::ObjData::operator=(Variant::ObjData const&) core/variant.h:146
    #17 0x11771455 in Variant::operator=(Variant const&) core/variant.cpp:2673
    #18 0x1d8b73a in GDScriptFunction::call(GDScriptInstance*, Variant const**, int, Variant::CallError&, GDScriptFunction::CallState*) modules/gdscript/gdscript_function.cpp:738
    #19 0x1bca770 in GDScriptInstance::call_multilevel(StringName const&, Variant const**, int) modules/gdscript/gdscript.cpp:1224
    #20 0xc0349a5 in Node::_notification(int) scene/main/node.cpp:60
    #21 0x1a78d7d in Node::_notificationv(int, bool) scene/main/node.h:46
    #22 0x1a7b1f2 in CanvasItem::_notificationv(int, bool) scene/2d/canvas_item.h:166
    #23 0xdb25ce0 in Node2D::_notificationv(int, bool) scene/2d/node_2d.h:38
    #24 0x11538d4b in Object::notification(int, bool) core/object.cpp:929
    #25 0xc163a11 in SceneTree::_notify_group_pause(StringName const&, int) scene/main/scene_tree.cpp:992
    #26 0xc153f9f in SceneTree::idle(float) scene/main/scene_tree.cpp:529
    #27 0x18dcd08 in Main::iteration() main/main.cpp:2115
    #28 0x17c08fc in OS_X11::run() platform/x11/os_x11.cpp:3628
    #29 0x172cefb in main platform/x11/godot_x11.cpp:56

Thread T3 created by T0 here:
    #0 0x7fdb79fbfa95 in __interceptor_pthread_create (/lib/x86_64-linux-gnu/libasan.so.6+0x57a95)
    #1 0x12aac9b8 in std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) (/usr/bin/godots+0x12aac9b8)
    #2 0x11a92657 in Thread::start(void (*)(void*), void*, Thread::Settings const&) core/os/thread.cpp:85
    #3 0x1057dced in VisualServerWrapMT::init() servers/visual/visual_server_wrap_mt.cpp:113
    #4 0x174ddca in OS_X11::initialize(OS::VideoMode const&, int, int) platform/x11/os_x11.cpp:602
    #5 0x18bd7fa in Main::setup2(unsigned long) main/main.cpp:1286
    #6 0x18b81fe in Main::setup(char const*, int, char**, bool) main/main.cpp:1228
    #7 0x172ce00 in main platform/x11/godot_x11.cpp:49
    #8 0x7fdb78e9f0b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x270b2)

SUMMARY: AddressSanitizer: heap-use-after-free core/object.h:450 in Object::Signal::Target::operator=(Object::Signal::Target const&)

@qarmin
Copy link
Contributor Author

qarmin commented Jul 13, 2021

Still happens with Godot 3.3.2

==41787==ERROR: AddressSanitizer: heap-use-after-free on address 0x62d00066aca8 at pc 0x000011a9fe45 bp 0x7fd0ea0277c0 sp 0x7fd0ea0277b0
READ of size 8 at 0x62d00066aca8 thread T3
    #0 0x11a9fe44 in StringName::operator=(StringName const&) core/string_name.cpp:144
    #1 0x1195e961 in Object::Signal::Target::operator=(Object::Signal::Target const&) core/object.h:445
    #2 0x1195ea4b in VMap<Object::Signal::Target, Object::Signal::Slot>::Pair::operator=(VMap<Object::Signal::Target, Object::Signal::Slot>::Pair const&) core/vmap.h:40
    #3 0x1195ee0a in CowData<VMap<Object::Signal::Target, Object::Signal::Slot>::Pair>::remove(int) core/cowdata.h:168
    #4 0x11954b2f in VMap<Object::Signal::Target, Object::Signal::Slot>::erase(Object::Signal::Target const&) core/vmap.h:136
    #5 0x119394ed in Object::_disconnect(StringName const&, Object*, StringName const&, bool) core/object.cpp:1551
    #6 0x1194a4b2 in Object::~Object() core/object.cpp:1983
    #7 0x119f130a in Reference::~Reference() core/reference.cpp:104
    #8 0x11a46018 in Resource::~Resource() core/resource.cpp:394
    #9 0x38de2c8 in Texture::~Texture() scene/resources/texture.h:45
    #10 0xf51631f in CurveTexture::~CurveTexture() scene/resources/texture.cpp:1686
    #11 0x18442f6 in void memdelete<Reference>(Reference*) core/os/memory.h:115
    #12 0x1835190 in Ref<Reference>::unref() core/reference.h:258
    #13 0x119ee0b6 in RefPtr::unref() core/ref_ptr.cpp:85
    #14 0x11b3db90 in Variant::clear() core/variant.cpp:1008
    #15 0x177f24f in Variant::~Variant() core/variant.h:443
    #16 0x1cac7fe in Map<StringName, Variant, Comparator<StringName>, DefaultAllocator>::Element::~Element() core/map.h:49
    #17 0x1cac8d0 in void memdelete_allocator<Map<StringName, Variant, Comparator<StringName>, DefaultAllocator>::Element, DefaultAllocator>(Map<StringName, Variant, Comparator<StringName>, DefaultAllocator>::Element*) core/os/memory.h:127
    #18 0x1c87b72 in Map<StringName, Variant, Comparator<StringName>, DefaultAllocator>::_cleanup_tree(Map<StringName, Variant, Comparator<StringName>, DefaultAllocator>::Element*) core/map.h:496
    #19 0x1c87b66 in Map<StringName, Variant, Comparator<StringName>, DefaultAllocator>::_cleanup_tree(Map<StringName, Variant, Comparator<StringName>, DefaultAllocator>::Element*) core/map.h:495
    #20 0x1c87abf in Map<StringName, Variant, Comparator<StringName>, DefaultAllocator>::_cleanup_tree(Map<StringName, Variant, Comparator<StringName>, DefaultAllocator>::Element*) core/map.h:494
    #21 0x1c87abf in Map<StringName, Variant, Comparator<StringName>, DefaultAllocator>::_cleanup_tree(Map<StringName, Variant, Comparator<StringName>, DefaultAllocator>::Element*) core/map.h:494
    #22 0x1c87b66 in Map<StringName, Variant, Comparator<StringName>, DefaultAllocator>::_cleanup_tree(Map<StringName, Variant, Comparator<StringName>, DefaultAllocator>::Element*) core/map.h:495
    #23 0x1c6b15d in Map<StringName, Variant, Comparator<StringName>, DefaultAllocator>::clear() core/map.h:656
    #24 0x1c6c399 in Map<StringName, Variant, Comparator<StringName>, DefaultAllocator>::~Map() core/map.h:674
    #25 0x7e3f8ea in RasterizerStorageGLES3::Material::~Material() drivers/gles3/rasterizer_storage_gles3.h:555
    #26 0x7e3fc14 in void memdelete<RasterizerStorageGLES3::Material>(RasterizerStorageGLES3::Material*) core/os/memory.h:115
    #27 0x7de6fb0 in RasterizerStorageGLES3::free(RID) drivers/gles3/rasterizer_storage_gles3.cpp:7720
    #28 0x10744d17 in VisualServerRaster::free(RID) servers/visual/visual_server_raster.cpp:68
    #29 0x10bb83aa in CommandQueueMT::Command1<VisualServer, void (VisualServer::*)(RID), RID>::call() core/command_queue_mt.h:300
    #30 0x1048206c in CommandQueueMT::flush_one(bool) core/command_queue_mt.h:441
    #31 0x10482a99 in CommandQueueMT::wait_and_flush_one() core/command_queue_mt.h:478
    #32 0x10926ea1 in VisualServerWrapMT::thread_loop() servers/visual/visual_server_wrap_mt.cpp:66
    #33 0x109263d9 in VisualServerWrapMT::_thread_callback(void*) servers/visual/visual_server_wrap_mt.cpp:52
    #34 0x11e847f1 in Thread::callback(Thread*, Thread::Settings const&, void (*)(void*), void*) core/os/thread.cpp:75
    #35 0x11e88883 in void std::__invoke_impl<void, void (*)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*, Thread::Settings, void (*)(void*), void*>(std::__invoke_other, void (*&&)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*&&, Thread::Settings&&, void (*&&)(void*), void*&&) /usr/include/c++/10/bits/invoke.h:60
    #36 0x11e88151 in std::__invoke_result<void (*)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*, Thread::Settings, void (*)(void*), void*>::type std::__invoke<void (*)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*, Thread::Settings, void (*)(void*), void*>(void (*&&)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*&&, Thread::Settings&&, void (*&&)(void*), void*&&) /usr/include/c++/10/bits/invoke.h:95
    #37 0x11e87cb9 in void std::thread::_Invoker<std::tuple<void (*)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*, Thread::Settings, void (*)(void*), void*> >::_M_invoke<0ul, 1ul, 2ul, 3ul, 4ul>(std::_Index_tuple<0ul, 1ul, 2ul, 3ul, 4ul>) /usr/include/c++/10/thread:264
    #38 0x11e87950 in std::thread::_Invoker<std::tuple<void (*)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*, Thread::Settings, void (*)(void*), void*> >::operator()() /usr/include/c++/10/thread:271
    #39 0x11e87908 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*, Thread::Settings, void (*)(void*), void*> > >::_M_run() /usr/include/c++/10/thread:215
    #40 0x12f072e3 in execute_native_thread_routine (/usr/bin/godots+0x12f072e3)
    #41 0x7fd10f8f444f in start_thread nptl/pthread_create.c:473
    #42 0x7fd10ed4dd52 in clone (/lib/x86_64-linux-gnu/libc.so.6+0x117d52)

0x62d00066aca8 is located 10408 bytes inside of 32784-byte region [0x62d000668400,0x62d000670410)
freed by thread T0 here:
    #0 0x7fd10fbdbff8 in __interceptor_realloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:164
    #1 0x11e6da5d in Memory::realloc_static(void*, unsigned long, bool) core/os/memory.cpp:129
    #2 0x1196e260 in CowData<VMap<Object::Signal::Target, Object::Signal::Slot>::Pair>::resize(int) core/cowdata.h:293
    #3 0x1196d99d in CowData<VMap<Object::Signal::Target, Object::Signal::Slot>::Pair>::insert(int, VMap<Object::Signal::Target, Object::Signal::Slot>::Pair const&) core/cowdata.h:176
    #4 0x1195e6f6 in VMap<Object::Signal::Target, Object::Signal::Slot>::insert(Object::Signal::Target const&, Object::Signal::Slot const&) core/vmap.h:123
    #5 0x119548bf in VMap<Object::Signal::Target, Object::Signal::Slot>::operator[](Object::Signal::Target const&) core/vmap.h:186
    #6 0x11935c02 in Object::connect(StringName const&, Object*, StringName const&, Vector<Variant> const&, unsigned int) core/object.cpp:1495
    #7 0xf5132b9 in CurveTexture::set_curve(Ref<Curve>) scene/resources/texture.cpp:1637
    #8 0xf5b2d5c in MethodBind1<Ref<Curve> >::call(Object*, Variant const**, int, Variant::CallError&) core/method_bind.gen.inc:775
    #9 0x11922575 in Object::call(StringName const&, Variant const**, int, Variant::CallError&) core/object.cpp:918
    #10 0x11baa56d in Variant::call_ptr(StringName const&, Variant const**, int, Variant*, Variant::CallError&) core/variant_call.cpp:1173
    #11 0x1df85f9 in GDScriptFunction::call(GDScriptInstance*, Variant const**, int, Variant::CallError&, GDScriptFunction::CallState*) modules/gdscript/gdscript_function.cpp:1034
    #12 0x1c290f4 in GDScriptInstance::call_multilevel(StringName const&, Variant const**, int) modules/gdscript/gdscript.cpp:1166
    #13 0xc2f4ddd in Node::_notification(int) scene/main/node.cpp:56
    #14 0x1ad7563 in Node::_notificationv(int, bool) scene/main/node.h:45
    #15 0x1ad99d8 in CanvasItem::_notificationv(int, bool) scene/2d/canvas_item.h:162
    #16 0xde0842e in Node2D::_notificationv(int, bool) scene/2d/node_2d.h:37
    #17 0x11922a0f in Object::notification(int, bool) core/object.cpp:927
    #18 0xc426963 in SceneTree::_notify_group_pause(StringName const&, int) scene/main/scene_tree.cpp:969
    #19 0xc416ef1 in SceneTree::idle(float) scene/main/scene_tree.cpp:524
    #20 0x192fe15 in Main::iteration() main/main.cpp:2098
    #21 0x1813a44 in OS_X11::run() platform/x11/os_x11.cpp:3638
    #22 0x177ed6b in main platform/x11/godot_x11.cpp:55
    #23 0x7fd10ec5e564 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x28564)

previously allocated by thread T0 here:
    #0 0x7fd10fbdbff8 in __interceptor_realloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:164
    #1 0x11e6da5d in Memory::realloc_static(void*, unsigned long, bool) core/os/memory.cpp:129
    #2 0x1196e260 in CowData<VMap<Object::Signal::Target, Object::Signal::Slot>::Pair>::resize(int) core/cowdata.h:293
    #3 0x1196d99d in CowData<VMap<Object::Signal::Target, Object::Signal::Slot>::Pair>::insert(int, VMap<Object::Signal::Target, Object::Signal::Slot>::Pair const&) core/cowdata.h:176
    #4 0x1195e6f6 in VMap<Object::Signal::Target, Object::Signal::Slot>::insert(Object::Signal::Target const&, Object::Signal::Slot const&) core/vmap.h:123
    #5 0x119548bf in VMap<Object::Signal::Target, Object::Signal::Slot>::operator[](Object::Signal::Target const&) core/vmap.h:186
    #6 0x11935c02 in Object::connect(StringName const&, Object*, StringName const&, Vector<Variant> const&, unsigned int) core/object.cpp:1495
    #7 0xf5132b9 in CurveTexture::set_curve(Ref<Curve>) scene/resources/texture.cpp:1637
    #8 0xf5b2d5c in MethodBind1<Ref<Curve> >::call(Object*, Variant const**, int, Variant::CallError&) core/method_bind.gen.inc:775
    #9 0x11922575 in Object::call(StringName const&, Variant const**, int, Variant::CallError&) core/object.cpp:918
    #10 0x11baa56d in Variant::call_ptr(StringName const&, Variant const**, int, Variant*, Variant::CallError&) core/variant_call.cpp:1173
    #11 0x1df85f9 in GDScriptFunction::call(GDScriptInstance*, Variant const**, int, Variant::CallError&, GDScriptFunction::CallState*) modules/gdscript/gdscript_function.cpp:1034
    #12 0x1c290f4 in GDScriptInstance::call_multilevel(StringName const&, Variant const**, int) modules/gdscript/gdscript.cpp:1166
    #13 0xc2f4ddd in Node::_notification(int) scene/main/node.cpp:56
    #14 0x1ad7563 in Node::_notificationv(int, bool) scene/main/node.h:45
    #15 0x1ad99d8 in CanvasItem::_notificationv(int, bool) scene/2d/canvas_item.h:162
    #16 0xde0842e in Node2D::_notificationv(int, bool) scene/2d/node_2d.h:37
    #17 0x11922a0f in Object::notification(int, bool) core/object.cpp:927
    #18 0xc426963 in SceneTree::_notify_group_pause(StringName const&, int) scene/main/scene_tree.cpp:969
    #19 0xc416ef1 in SceneTree::idle(float) scene/main/scene_tree.cpp:524
    #20 0x192fe15 in Main::iteration() main/main.cpp:2098
    #21 0x1813a44 in OS_X11::run() platform/x11/os_x11.cpp:3638
    #22 0x177ed6b in main platform/x11/godot_x11.cpp:55
    #23 0x7fd10ec5e564 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x28564)

Thread T3 created by T0 here:
    #0 0x7fd10fb7f6d5 in __interceptor_pthread_create ../../../../src/libsanitizer/asan/asan_interceptors.cpp:216
    #1 0x12f075a8 in std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) (/usr/bin/godots+0x12f075a8)
    #2 0x11e84ce0 in Thread::start(void (*)(void*), void*, Thread::Settings const&) core/os/thread.cpp:91
    #3 0x109286eb in VisualServerWrapMT::init() servers/visual/visual_server_wrap_mt.cpp:99
    #4 0x179fc49 in OS_X11::initialize(OS::VideoMode const&, int, int) platform/x11/os_x11.cpp:595
    #5 0x191073c in Main::setup2(unsigned long) main/main.cpp:1270
    #6 0x190b20e in Main::setup(char const*, int, char**, bool) main/main.cpp:1202
    #7 0x177ec70 in main platform/x11/godot_x11.cpp:48
    #8 0x7fd10ec5e564 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x28564)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants