-
Notifications
You must be signed in to change notification settings - Fork 47
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
core keeper segment failure fixes #70
base: main
Are you sure you want to change the base?
Conversation
Steamworks SDK is already included in the yolk. There is no need to add it again. It's unclear why the resolution was changed from 1x1x24 to 1024x768x24. I'm not sure if there's a performance impact one way or the other, but it's a change that was made without any explanation. It's also unclear why there's a switch to Wine when the developers provide a Linux binary. Lastly, you're overriding a Pelican egg with a Pterodactyl egg. I'm experiencing the segfault errors as well, and I'm not sure how to resolve them. But I don't think this is the right direction. |
why wine? there is a linuxserver and wine is not needed |
Thanks for the feedback hackles. This egg has not been working for a while now. I have looked into using the Linux install already. It is not functional. It works with wine, and there are plenty of games out there using wine. I suspect the issue with the Linux install is issues with Xvfb. I have gone through the process of running this egg in my own docker container so that I can better monitor logs. The game runs in Linux and then Xvfb throws segmentation error because it is crashing and what I assume is a restart is failing because the screen is still running in a failed state. This is a PR was intended to be for the the pterodactyl egg. I'll change the targeted file and remove the Steamworks sdk in the install script. I went ahead and restored the resolution back to the default used. I dont know how this really effects performance. I also removed the steamworks sdk install and utilize the entrypoint.sh to install the game instead of the startup script. |
https://discourse.cubecoders.com/t/core-keeper-segmentation-fault/3623 I just read this post that had a similar issue with the segmentation faults occurring on the linux install. might again be because of the version of Xvfb which aligns with the Xvfb issues I was having with the originally included debian image. ghcr.io/parkervcp/steamcmd:debian
also checking version of xvfb
ghcr.io/parkervcp/yolks:wine_latest
and xvfb version
for whatever reason, wine works. the only hypothesis I can find around this is related to file permissions. server log on linux install
I did have an instance where the server does appear to run, but I am running as root as opposed to the container user
at this point read this like a narrative... valheim had a similar issue I believe the issue is that cross play is broken on linux. after removing (renaming) libparty.so from the /home/container/corekeeperserver_data/plugins folder, the game progresses further into booting. ill continue to investigate |
issue on linux resolved by removing libparty.so in install script. rm /mnt/server/CoreKeeperServer_Data/Plugins/libparty.so This library seems to be broken when running in the docker environment as container user. |
Thank you, that worked! |
Bro I'm so curious to know how you figured that out because I spent several hours over the course of two days trying to debug this before giving up. 😂 |
I'm him. no, but it was just stepping through everything and seeing where the crash was occurring. if it werent for the wine install working I probably would have never had a clean log to compare. the problem with that seg fault is that the game is partially compiled using burst compiler. the stack trace is pretty much not helpful. I spun up a local docker instance using a modified version of the yolk so I could have root access and followed the install procedure. noticed that booting the game as root worked. looking at each logs the failure occurs right when the libparty.so plugin is loading. its a solution, but what I think is the next step, if we want to enable cross play. is to figure out what libparty is trying to access that the container user cannot. you can see in stack trace it is trying to load some config. |
Yeah, I was trying to figure out what configuration file it's trying to open because the segfault stack trace has |
Is crossplay not working on dedicated's in general? I tried the wine version from @Osanchez but got the same 'crossplay is not enabled' error as on linux. |
Yes, there are issues with cross play for dedicated servers. the Microsoft package used for cross play for whatever reason is not initializing correctly. I have not had a chance to look into this yet. I have tried newer versions of this plugin, but it fails to load. I am suspecting permission errors somewhere on the container. I believe if you run a dedicated server using root the plugin should load and cross play would be functional, but we typically don’t run containers with root user. We use a less elevated container user |
so the configuration file attempting to be read is in fact the PlayFabPartyLogger.json listed on the official github instruction for linux installations is Create a folder "/home/container/PlayFabParty/" within this folder create file PlayFabPartyLogger.json with the following contents
create a log directory /home/container/PlayFabParty/log I have tried these instructions and am still having the plugin fail to load with seg fault. trying to do some reverse on the libparty.so I see that it is calling a command to get the current users UID, calling another function to get the home directory using this UID. and then appending a string to it to complete the directory it is trying to access. I am assuming it is the path listed in the instructions above. I am going to look into the commands being called to get UID and Home directory which is where I suspect missing commands or permission errors will arise. update: created and compiled a c++ file that I could throw on the docker container to test my theory. it is called as part of the startup script.
result: good ole chatGPT guided me towards looking at how these commands work. they depend on access to /etc/passwd. i'm not an expert on the docker images used to run these servers. Does this sound familiar @hackles Edit: |
…sion of wings not mounting password file and need from play prefab plugin aka crossplay plugin
So I have a fix thanks to @danny6167 . I created a custom docker image which utilizes nss_wrapper. with the new docker image, the PlayFabParty plugin is now loading. I can update the pelican yolk repo to contain this Dockerfile. |
This appears to have done the trick, thanks to you and danny. I was, however, still having issues connecting from the windows client but I don't know if it's the server's fault because directly connecting to a steam player was also not working yesterday like it had been in the past. Browsing the discord and other socials for this game it seems a lot of people are having issues with crossplay in general right now unfortunately. |
@RixMixed what do you mean by windows user. Xbox platform? Something else ? I don’t know if the config is actually used as I have not seen logs generated by playfabparty. Maybe it reads it but is overridden by the game, but one thing to try would be to modify the play can party config and enable the console option. This I believe allows for connection using Microsoft Xbox service. The egg I provided should auto create this config file. |
@Osanchez Sorry, it's the Microsoft Games Store version (through Xbox Gamepass for PC). Tried enabling the console option in the config you mentioned but still no dice. |
@RixMixed I have been looking at the game code and testing some things with the xbox gamepass version. for those who dont know, there is a server config file that is created when you first launch your server located at .config/unity3d/Pugstorm/Core Keeper/DedicatedServer/ServerConfig.json. This config location can be changed by supplying its contents look like this, with the exception that your server will have filled some of these fields.
There is a value that can be provided to this config to enable cross play, though I have seen that this should be the default value. I do not actually see any attempts to connect made from the xbox game client and there is no way the server is responding that quickly to the client. Like others have mentioned I suspect it is broken or not implemented. If you start a game on xbox that is cross platform the ID is in a different format and much shorter. ill put money that the xbox client rejects connections to the dedicated linux server instantly because it recognizes a different world ID format. cross play was either disabled or never implemented. Im still new, I imagine youll find your answers on their official discord. if still having issues set the crossplay value to false. with that said, I think this egg is in ready state unless you think otherwise |
@hackles I don't have any more open requests. this should be in ready state if you are a reviewer |
After a fresh install w/ the updated egg, the server is able to run and output a game ID. It wasn't until I replaced the entire startup command with just ** I see that you responded to my comment in the other PR #62
If the default startup command is derived from the |
@bippity I cant say for sure as I do not know enough about your environment. the _launch.sh file is not parametrized so it is default to localhost and probably the default gameport (or the next available open gameport) or maybe just steam networking directly. To me it sounds like a misconfiguration on your panel. what do you have allocated on your server and what port does your game end up using the with default _launch script. |
I have ports 27015 and 27016 allocated. If I remove the I'm not seeing anyone else discussing this issue, so I don't believe it's related to the egg changes. |
@bippity I would review your firewall settings on your server or see if your host is blocking the connection. I am getting different results. others have tried this egg with no issue. You have it working so I dont know if you want to put the effort, but I just know that running scripts from eggs is not an option. |
Oh, sorry, I'm not a maintainer in this repo or anything like that. I'm just some random guy who also wanted to set up a Core Keeper server and came across this PR. I believe @QuintenQVD0 is primarily who reviews and merges most PRs around here. |
I am indeed and this can not be merged as it does not use an image that we controle. |
for everyone, already a huge thank you for helping and making this PR, this makes my live a bit easyer! ❤ |
It seems the ghcr.io/parkervcp/games:corekeeper has been deleted and this no longer works |
It was never builded. And pelican wings and ptero next release will have fixt this without an custom image |
I've been hearing "next release" for months. If you want this now I have a custom container available here until "next release" comes out osanchezdev/core-keeper-dedicated-server:latest |
Pelican has it released. And pterodactyl has it merged nog released yet. Notthing I can do about that. |
i still get a Segfault with this image. but it appears to be at the very end of the startup process
|
Description
The game is now force installed with the windows version. the docker image has been changed to a steam cmd image with wine. some never changing variables have been removed (screen sizes) as well as a new variable that forces windows installation. finally, the startup command has been cleaned up a bit as well as some changes to the configuration of the egg to detect when the server is out of installation and running.
Checklist for all submissions
I forked and pushed to the master branch on the fork. this is a one time fix I did for myself. I dont plan on maintaining this and only want to push the current egg ahead of its current non-working state. hopefully others make improvements where they see fit. It seems the dedicated server for Linux is not working. Also, I'm lazy.