Godot 4.3 export freeze with godot-rapier in github actions.
Describe the bug
Export freeze with godot-rapier in GitHub actions. This issue only exists in Godot 4.3, it works fine with Godot 4.2.2.
To Reproduce
- Frok test project with all branches.
- Enable GitHub actions.
- Check out the rapier-test branch and make a push.
- Wait for the building of actions.
Expected behavior
Build successfully.
Environment:
- OS: Ubuntu (Github Actions)
- Version: latest
- Godot Version: 4.3
Locally what is the logs? Does it also hang locally? It fails at runtime? Or at build time?
Locally what is the logs? Does it also hang locally? It fails at runtime? Or at build time?
No, it does not hang locally in Windows. It only appears in GitHub actions with Godot 4.3.
Strange. Not sure how to debug this.
When you run a headless --import for the first time ther is this error. If you cancel it and run again it will work. But I'm not sure how to detect its hanging
But this is only related to godot rapier plugin? If you can run locally and print a trace at a time and see what all threads are doing, idk.
I was also having this issue - albeit using gitlab instead of github.
After some experimentation I was able to get this to work by including .godot/extension_list.cfg in the repo on my local machine. I also have the imported folder because of other CI issues.
Here is my .gitignore in case it helps anyone.
.godot/*
!.godot/imported
!.godot/extension_list.cfg
Interesting. What does that file do, skip the import process?
The extensions_list.cfg I believe lists the native gdextentions that have been enabled. I don't know why this causes a freeze in CIs (I didn't check whether it was specifically headless mode) on export, or crash if loading the editor in headless mode to generated all the imported content.
The .godot/imported folder contains a lot of metadata about imported media files (sound/images) as well as other things - this means that all the errors that require godot editor to be opened first before being used for export are fixed. I also found it was necessary for dialogic last year to properly work with CIs on export, don't know if it's still necessary though.
It's possible this is a godot bug then? Since both this addon and that one had this issue. You tried opening an issue on godot side also?
I haven't put anything on the godot side - largely in terms of 'solving' the problem it's an issue with standard .gitignore files rather than the engine itself. The standard .gitignore also excludes the export templates which is required for CIs so either way you have to have a custom one.
I've had issues ignored in the past with regards to git issues so I haven't been motivated to post again (although granted that issue was eventually resolved a few years later with changes to how the whole animation system works, although I think no-one went back to comment/close the issue...).
I think for here now at least though perhaps it would be best to just put something in the readme for CI usage. Probably only need the extensions_list.cfg and not the imported folder - but I haven't tested it specifically.
I just started getting this issue after adding rapier to my project, had a Github action run for 6 hours while I was away, whoops ^^
For me it happens locally as well and I got the package through github so not sure the trick with extension file applies. I'm using Chickensoft's game template, and can reproduce it by just grabbing that fresh and adding rapier to the project, the 3d single simd parallel variant is what I've been using.
Interesting. Can you say more about what pc specs, os, versions of stuff, etc. Can you reproduce the issue in godot debug mode? If not can you still attach a gdb and pause when it hangs and see where it stops?
When this is implemented: https://github.com/appsinacup/godot-rapier-physics/issues/313 I hope this won't be a problem anymore.
Sorry for the late reply, been away from the computer ^^
I'm on Windows 11 running a Ryzen 9 9900X, 64GB's of ram and a RX 7900 XTX. Not sure how to attach a debugger but happy to try if you can point me the right way, I'm just running the command in the terminal.
Like above it does always hang on "Initialize godot-rust", which is a step not present if I run it without godot-rapier in the project.
I see, i'll check the godot source code see where that Initialize godot-rust happens.
Sorry for the late reply, been away from the computer ^^
I'm on Windows 11 running a Ryzen 9 9900X, 64GB's of ram and a RX 7900 XTX. Not sure how to attach a debugger but happy to try if you can point me the right way, I'm just running the command in the terminal.
Like above it does always hang on "Initialize godot-rust", which is a step not present if I run it without godot-rapier in the project.
Sorry, forgot to answer about the debugger thing, tho it's probably not going to be easy if you don't know how to do it already. Also, if it hangs during release build, it won't give much info, so we would most likely need a debug build of both godot and rapier for this to work. Again tho, I would wait for this to become a module, and hoping this whole flow won't happen anymore(eg. registering of addon through dll)
There isn't much I can do to fix this (nor reproduce it locally). However, now I am able to build it as a module, will offer a fork option soon-ish.