-
Notifications
You must be signed in to change notification settings - Fork 2
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
FreeImage DllNotFoundException on Linux Headless #1241
Comments
Sounds to be a regression from the most recent build in which the FreeImage library was updated, @Frooxius. |
Getting this issue as well, and my container doesn't reinstall completely fresh on each start. |
getting the same with our servers, did we mislocate the file again? |
There is a latest release with the freeimage dll, even for linux. Assuming it is built correctly it could be a drag and drop solution til things are properly patched: https://github.com/Yellow-Dog-Man/FreeImage/releases/tag/3.18.0-ydm-0.1.5 |
I can confirm the manual solution works until there is a patch. Adding the appropriate lib file to the Headless directory fixes the crash. |
I have tried multiple times to drag the file over into the "Headless" folder and the headless container still doesnt wan't to start with the freeimage error. Not sure what im doing wrong. |
While I don't want to bother when the issue is already known, I do want to stress this is affecting most headlesses that are containerized and can't as easily patch in a new DLL. |
I'm a bit confused on what's happening here. I just checked the files and the libFreeImage.so is present there. It looks present on the depot as well. Its hash matches the one from https://github.com/Yellow-Dog-Man/FreeImage/releases/tag/3.18.0-ydm-0.1.5 Is the file missing in your install completely? Or do you need a different version than that one? |
Disclaimer: I'm not sure if I fully understand what's going on here, but I'll give what I can I don't know if libFreeImage.so is missing, but FreeImage.dll is definitely missing. I don't know if it's necessary to be present on headlesses but it is present on the client install, and from some rough explanation of how this works it's my understanding that's also necessary there? I didn't dig into it too much because we were trying to get a session up, but if this isn't fixed by the time I get off work I'd be happy to dig into it a bit deeper and experiment |
FreeImage.dll is not supposed to be in the Linux headless - that's the Windows x64 native library - so that is correct behavior. libFreeImage.so is the Linux native version of the same library. It looks like it is there. What I am confused by is that above there are claims that copying it from the repo fixes this problem - but I don't see how is this possible, since it's already there? |
Looking at the mono debug log when running with
Looking at the glibc versions available in libstdc++ indeed shows that the required version is missing:
|
It looks like the newer version might require a newer version of glibc. This might be the result of the cloud compilation process differences. I've opened an issue here: Yellow-Dog-Man/FreeImage#10 |
For the time being for anyone needing a workaround, here is a build of FreeImage created with Debian 10, the minimum required GLIBC version is 3.4.21. Replacing the existing libFreeImage.so in |
I've created a pull request on FreeImage that should fix Linux build compatibility by compiling inside a Debian buster container. |
That makes sense and why Bredos Pterodactyl image still works as it uses deb 12. Recompiling it for an older version would be great for now but i think long term its best to get the docker container we are using updated to a more recent base. I have tried https://github.com/ijs01140/resonite-headless Version of the docker container as i understand it was on bookworm. However same error comes up |
@Frooxius When I tested this on my headless, I had limited info and the test was a bit rushed. I did not actually confirm that mine crashed without the library before adding it. I was told by another user that the default behavior was a crash, and asked to update, manually add the library, and see if there are any issues. There was no crash so I reported it as a working solution. It is possible my headless might have booted without any issues without any manual library changes. |
Merged this in 2024.1.26.617, should work better now. Thanks for the help! |
Yup all fixed. Thank you |
Describe the bug?
When attempting to start a Headless on a Linux Docker Container it immediately crashes as it's unable to load FreeImage. The container starts up with a fresh install of Resonite every time so this appears to be the current state of a fresh install for Headless servers.
This bug does not occur on a Windows Headless.
To Reproduce
Install Resonite on Linux via SteamCMD:
steamcmd.sh +force_install_dir /resonite +app_license_request 2519830 +app_update 2519830 -beta headless validate -betapassword [HEADLESS_BETA_PASSWORD] +quit
Run Headless Client:
Expected behavior
Headless client will start up to
NO WORLD
or configured worlds fromConfig.json
Screenshots
No response
Resonite Version Number
Headless 2024.1.24.840
What Platforms does this occur on?
Linux
What headset if any do you use?
No response
Log Files
Additional Context
No response
Reporters
Github: @PointerOffset, Discord: @spexcat
The text was updated successfully, but these errors were encountered: