godotengine / godot-git-plugin

Git implementation of the VCS interface in Godot
MIT License
700 stars 67 forks source link

"*** stack smashing detected ***: terminated" Crash on Startup on a Double Precision build #180

Open joao-pedro-braz opened 1 year ago

joao-pedro-braz commented 1 year ago

Trying to launch a project with the plugin enabled on a double precision build (precision=double) results in a: *** stack smashing detected ***: terminated

This does not happen on a single precision build. Stack trace for reference:

__pthread_kill_implementation 0x00007ffff7d4dd7c
raise 0x00007ffff7cfc356
abort 0x00007ffff7ce4897
__libc_message.cold 0x00007ffff7ce5611
__fortify_fail 0x00007ffff7de3e9b
__stack_chk_fail 0x00007ffff7de3e66
godot::UtilityFunctions::print_internal(godot::Variant const**, long) 0x00007ffff044a4ce
GitPlugin::_initialize(godot::String const&) 0x00007ffff031e4fd
void godot::call_with_ptr_args_ret_helper<GitPlugin, bool, godot::String const&, 0ul>(GitPlugin*, bool (GitPlugin::*)(godot::String const&), void const* const*, void*, IndexSequence<0ul>) [clone .isra.16] [clone .constprop.152] 0x00007ffff030e6a6
EditorVCSInterface::_gdvirtual__initialize_call<…> editor_vcs_interface.h:109
EditorVCSInterface::initialize editor_vcs_interface.cpp:46
VersionControlEditorPlugin::_load_plugin version_control_editor_plugin.cpp:152
VersionControlEditorPlugin::_notification version_control_editor_plugin.cpp:64
VersionControlEditorPlugin::_notificationv version_control_editor_plugin.h:46
Object::notification object.cpp:791
Node::_propagate_ready node.cpp:189
Node::_propagate_ready node.cpp:180
Node::_propagate_ready node.cpp:180
Node::_set_tree node.cpp:2614
SceneTree::initialize scene_tree.cpp:410
OS_LinuxBSD::run os_linuxbsd.cpp:877
main godot_linuxbsd.cpp:73
__libc_start_call_main 0x00007ffff7ce5bb0
__libc_start_main_impl 0x00007ffff7ce5c79
_start 0x00000000028c0185

During the crash GDB stops at editor/editor_vcs_interface.h:109: image

Engine built from commit 4dcf2c5431ea6894c268c384df0d81e7fd96c341, using the latest version of the plugin.

Calinou commented 9 months ago

GDExtensions built for single-precision aren't compatible with double-precision builds, so we need to compile and distribute libraries compatible with double-precision builds.