-
Notifications
You must be signed in to change notification settings - Fork 6
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 hangs forever when exiting [MacOS] [M2] [ARM] #292
Comments
The bug exists with YAT as the only enabled plugin. Wanted to verify as a sanity check. |
<Project Sdk="Godot.NET.Sdk/4.2.2">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<TargetFramework Condition=" '$(GodotTargetPlatform)' == 'android' ">net7.0</TargetFramework>
<TargetFramework Condition=" '$(GodotTargetPlatform)' == 'ios' ">net8.0</TargetFramework>
<EnableDynamicLoading>true</EnableDynamicLoading>
<RootNamespace>FirstAutoBattler</RootNamespace>
<LangVersion>12.0</LangVersion>
</PropertyGroup>
<ItemGroup>
<Compile Remove="script_templates/**/*.cs" />
</ItemGroup>
</Project> |
Hey, thank you for reporting the bug, and for the suggestion, I will take them into consideration. Unfortunately, I do not own any computer from Apple, nor do I know anyone who could lend me one for testing. As a result, I am unable to diagnose the problem and fix it. In the meantime, please answer the following questions:
I would appreciate it if you would also check if this error occurs under Godot v4.3.dev6.mono. I do not promise that even with the answers to these questions I will be able to fix this bug, due to the lack of access to macOS, but I will try. |
Thank you for getting back to me. This looks like a cool project :)
Yes. It works as expected from my PoV. I can open the terminal and issue commands seemingly without any issues.
Disabling YAT does not cause the editor to freeze. I am fairly confident that freezing only happens under two conditions:
For context, the game freezing when exiting the game also only occurs when the YAT plugin is enabled.
Unknown. I will give this a try and report back.
The problem still occurs in Godot v4.3.dev6.mono. |
Thank you for your reply, I'm glad you like the project despite this bug. Since the error occurs both when closing the editor and the game, it seems to me that the problem may be caused by some static variable. This seems so to me because there is no code in YAT that is marked as Tool (running in the editor) other than the file that adds autoload and one unused that does nothing. I'll go through the Godot documentation, because I may have missed something. You can delete EditorTerminal.cs and EditorTerminal.tscn to verify that surely these unused files are not the problem (although I don't think so). It's a leftover from when I tried to put YAT into the editor, I'll get around to it someday. I also recently released a new version of YAT that fixes a few things I don't think are related to this bug, but the new release itself also adds some cool stuff, so it's still worth checking out.
Just for the record, since you mentioned that you are not experienced with C#. You don't need to install .NET 7, .NET is backward compatible, so just change the appropriate settings in .csproj and everything should work. To make sure everything compiles correctly, you can also delete the .godot folder in your project. Godot may display some errors the first time you run it after deleting the .godot folder, but it will recreate all the files it needs without a problem. |
So I finally managed to install and run macOS Sonoma 14.5 correctly, it works 'well', it's responsive. Unfortunately, the problem arises when I try to run the Godot project, an error about the Vulkan drivers pops up: In turn, running Godot using OpenGL3 results in a white screen: I'm assuming these problems are VM specific, but if you have suggestions on how I can work around this, I'd be happy to use them. |
The bug still occurs under this version unfortunately |
Unfortunately, I don't know how to get around these issues :( Apple doesn't like it when people emulate their OS. |
I'm afraid there is nothing more I can do about this problem for the moment |
That's okay, I appreciate the effort you put into this in the first place. If you decide to add a way to add verbose logging and want to see the output of those verbose logs, let me know |
I can confirm that on recent (silicon) MacBook (hardware) problem somewhat is still there. I could not make the terminal work for me, but the Godot editor hang forever when I tried to exit while the add-on was loaded. |
You mean YAT doesn't work in the game at all? Can you share information such as system version, YAT, Godot, .NET and CPU? You can easily get most of this information by clicking on I would also appreciate it if you run Godot with YAT enabled via terminal and then try to shut down the editor. Godot returns various information to the terminal on a regular basis. Also, when Godot is killed using the task manager, it should return crash information. This information may prove useful. |
OK. tell me, please, Can you please, also tell me how to run I would really be glad if we could find this bug and get things going.
|
First things first
|
I get the logs on quit:
|
Thank you very much for your time, this information looks very useful, but I will lean into it more tomorrow. I was just about to send the instructions, but I see that there is no need for it anymore. Anyway, I'm leaving them below, maybe someone will come across this one day and find it useful. InstructionsAlright, so one step at a time. I will try to list even the obvious things so that there is no doubt, maybe someone else will come across it and want to help. Of course, if you have more questions or concerns, I will try to help.According to the requirements written in the README, you need .NET 7 or later, and .NET enabled Godot 4.2 or later. Depending on whether you cloned my repository (you have all the folders, including with the mentioned example folder), or added it from a downloaded ZIP or AssetLibrary the required actions to run will be slightly different.
Cloned repositoryIn this case, you don't need to perform any action, Godot should automatically run the appropriate scene. YAT from ZIPIn this case, you need to create a new project (Use the instructions in the USAGE.md file on how to create a C# project.) and the addons folder from the ZIP should be extracted into it. You can ignore the other folders, they are of little importance. Then compile the project (hammer icon in the upper right corner of the editor) and enable YAT by clicking If you have not exported the example folder, then you need to create a new scene, it can be anything, even empty. Press The game will now start, pressing YAT from AssetLibraryDownloading YAT from AssetLibrary is similar to ZIP. Create a new project, download YAT from AssetLibrary (button at the top of the editor), the plugin will be extracted. Compile the project and enable YAT if it is not enabled automatically, if errors appear, ignore them. Create the main scene, or use the one in the example folder. These were instructions on how to install virtually any plugin. The following instructions are for running the project through a terminal. Start the terminal and navigate to the folder where the project is located. To be sure, compile the entire project using: dotnet build If you have added Godot to the PATH the project will start using: executable_name . If you have added Godot to .bashrc/.zshrc the project will run using: $variable_name . That is, if, for example, you exported Godot like this: $GODOT . On the other hand, if you haven't done any of these things, you need to run the project this way: ~/path/to/godot/executable . If I've left something out, or something isn't quite clear, don't hesitate to ask. |
Debugging this is very cumbersome. I was able to verify that the problem also occurs on Linux, but the system handles it gracefully. Unfortunately, Godot does not want to return any useful information. It looks like I will have to compile Godot from source to observe exactly what is causing it. From what I've been able to glean from Godot, it appears that the problem occurs in both the editor_settings.cpp and csharp_script.cpp files. In the meantime, @buahaha could you run Godot from a terminal using the following two commands and send the returned information? dotnet build && $GODOT --path "./" -d -v --audio-driver Dummy |
Hey, @innateessence, @buahaha. Can you guys check if this PR have fixed the issue? If there are still problems, delete the .godot folder and recompile the entire project from scratch to make sure the problem still exists. |
I'm walking the cat, so I just ask - how to run this pull request? When I'm back I can check with AI assistant, but maybe you have a minute or two @MASSHUU12 |
You can checkout it using Git: git fetch origin pull/314/head
git checkout FETCH_HEAD Or by downloading this ZIP: |
Here's macOS debug on exit
And this is from terminal
I'm terribly sorry for such a long output, but that's how it is. Is there anything I can help you with to resolve this bug? |
I'll still try to look for the source of the problem, although I doubt I'll be successful without having macOS hardware available with me. If I manage to find something, I will let you know. |
@MASSHUU12 Areyou from Polska 🇵🇱? |
Sure am |
Sorry, but I'll use English, after all we are talking on a public English repository. That said, I would be grateful for help from someone who has hardware with macOS. Knowledge of GDExtension is not needed, as it is only a technology that allows the use of languages other than GDScript (in this case C#), and I hope it is not the one causing the problem. All you need to have to be able to help is a knowledge of C# to the extent that you can read it, knowledge of .NET commands, debugging skills, and error reading. If you are willing to try, maybe we could arrange some other place to talk not to make spam here. |
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Godot exits cleanly.
Actual behavior
Godot hangs forever until I open a terminal and type
kill -9 <pid_of_godot>
Screenshots
Desktop/smartphone (please complete the following information):
Additional context
I am a dev, although I am new to Godot, and not very experienced with C#, so, if we need to communicate effectively, please keep this in mind.
I have 3 other plugins installed, This problem only exists when YAT is enabled.
The other plugins are displayed in the screenshot:
P.S.
You may want to consider adding 2 additions I included to your future bug report template:
The text was updated successfully, but these errors were encountered: