godotengine / godot-git-plugin

Git implementation of the VCS interface in Godot
MIT License
653 stars 64 forks source link

Editor crashes with running multiple GDExtension libraries #239

Open Naros opened 1 month ago

Naros commented 1 month ago

When running just godot-git-plugin or the Orchestrator plugins separately, things work fine on Linux; however, as soon as both plugins are installed, the following error is thrown:

[1] /lib/x86_64-linux-gnu/libc.so.6(+0x42990) [0x7be1f4642990] (??:0)
[2] /home/ccranfor/Downloads/Godot_v4.2.2-stable_linux.x86_64() [0x3b40ebe] (??:0)
[3] /home/ccranfor/Downloads/Godot_v4.2.2-stable_linux.x86_64() [0x3b40fbe] (??:0)
[4] /home/ccranfor/Downloads/Godot_v4.2.2-stable_linux.x86_64() [0x58face] (??:0)
[5] godot::RefCounted::init_ref() (??:0)
[6] godot::ResourceFormatSaver::register_virtuals<OScriptBinaryResourceSaver, godot::ResourceFormatSaver>()::{lambda(void*, void const* const*, void*)#4}::_FUN(void*, void const* const*, void*) (??:0)

The ironic issue is this works fine on Windows. Do you have any idea what could be causing the incompatibility? From what I saw, you guys compile on Ubuntu 20.04 for Linux, which Orchestrator is also compiled on.

Naros commented 1 month ago

FWIW, even compiling all three binaries on the same machine generates a crash, compiling Godot, the godot-git-plugin and the godot-orchestrator plugin. 🤔

For the record, the host Linux environment is: Kubuntu: 23.10 KDE Plasma: 5.27.8 KDE Frameworks: 5.110.0 Qt version: 5.15.10 Kernel: 6.5.0-41-generic (64-bit) Graphs: X11 LDD: (Ubuntu GLIBC 2.38-1ubuntu6.3) 2.38 Git: 2.40.1

I also confirmed that both GDExtension & the editor are built with single precision.

Naros commented 1 month ago

So I rolled the godot-git-plugin forward to godot-cpp commit 78ffea5, which is the same commit godot-orchestrator uses for Godot 4.2, and surprisingly the Godot editor (4.2.2-stable) does not crash. Is there potentially some bug where using multiple GDE that are based on different commit points cause some editor instability @Calinou ?

Naros commented 4 weeks ago

Seems to be related to https://github.com/godotengine/godot-cpp/pull/1313 not cherry-picked to 4.1 branch.