-
-
Notifications
You must be signed in to change notification settings - Fork 21.6k
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
C# Editor Plugin crashes Godot 4.3 when GraphNode is added to GraphEdit #96289
Comments
Looks like it may be a regression from #88014 cc @Geometror It seems godot/scene/gui/graph_edit.cpp Line 626 in fd7239c
|
Well, I'm surprised it took so long until we see the non-internal connection layer causing problems ;) It looks like you remove all children including the connection layer at some point (haven't checked the addon code). To fix this crash you need to check whether each node you remove is a I'm going to open a PR which adds a warning when you accidentally remove the connection layer as well as checks everywhere a crash could occur (not ideal, but at least it's safe). |
Yep! It seems to be caused by This seems like an issue that can be easily ran into; Is it possible for |
Unfortunately not, as I said:
The best we can do is warn the user about it and prevent the crash, hence #96309 |
Tested versions
System information
Windows 11 - v4.3.stable.mono.official.77dcf97d8 - Vulkan 1.3.278 - Forward+ - NVIDIA GeForce RTX 4060 Ti
Issue description
Through the process of using the
Dialogue Trees
plugin, I noticed that an exception is thrown whenever trying to edit a DialogueTree node. The exception thrown is a AccessViolationException, which shortly crashes Godot 4.3 with no further information other than the stack trace.It seems to occur when trying to add or remove a
GraphNode
from theDialogueGraph
class (which extendsGraphEdit
). I tried passing brand newGraphNode
, I tried deferring the calls, and I tried removing the optional parameters, as well as playing with the values of the differentAddChild
parameters. All of these seem to have no effect on the exception occurring and a crash following after.It's also important to note that this does not occur on
DialogueTree
nodes which are recently added to the scene, only ones loaded from the file system. This is only impacting theDialogueGraph
added to the dock; theDialogueTree
node functions properly when running in-game.I tried running memory dumps and attaching the godot process to a debugger, and there is no breakpoint hit or any sort of trace in the memory dump outside of the AccessViolationException being thrown only in the managed assembly. It just silently closes Godot with exit code 139 (SIGSEGV signal - Memory Access Violation).
Steps to reproduce
With the Minimal Reproduction Project:
TestScene.tscn
in the Godot EditorWithout the Minimal Reproduction Project:
Dialogue Trees - C#
from the Asset LibraryMinimal reproduction project (MRP)
DialogueTest.zip
The text was updated successfully, but these errors were encountered: