Skip to content
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

Segmentation Fault when starting the docker container #67

Open
john-ee opened this issue Oct 29, 2024 · 10 comments
Open

Segmentation Fault when starting the docker container #67

john-ee opened this issue Oct 29, 2024 · 10 comments

Comments

@john-ee
Copy link

john-ee commented Oct 29, 2024

Hi everyone,

I've just started playing the game and I want to host a server on my NAS. I ran the Docker-Compose file but I'm having issues.

As soons as I start the container after the game installs, I get the following error :
./launch.sh: line 80: 134 Segmentation fault (core dumped) DISPLAY=:99 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:../Steamworks SDK Redist/linux64/" ./CoreKeeperServer "${params[@]}"

I feel like my hardware is weak but according to a few articles, I should be able to run it. My specs are the following :
Processor : Intel(R) Celeron(R) N4505 @ 2.00GHz
Memory : 4 Go
Kernel : Linux 6.1.0-26-amd64
I'm running OpenMediaVault.

Here are the logs and my docker setup :
CoreKeeperServerLog.txt
core-keeper_core-keeper-dedicated.log
docker-compose.txt
.core.env.txt

Am I missing something ? The other issues haven't fixed anything for me.

@Diyagi
Copy link
Contributor

Diyagi commented Oct 29, 2024

Probably same as #53
Its an issue with permissions, should also be fixed by #62

@john-ee
Copy link
Author

john-ee commented Oct 29, 2024

Probably same as #53 Its an issue with permissions, should also be fixed by #62

I don't understand what I should do to fix it. In #53 it seems the user is setting the same PUID:GUID from the host as the container in the user. Should I urn the same command ? I'm using Docker volumes instead of creating a folder then using it as a volume. I did that previously but I had rights issues, now at least it's able to download the game.

@Diyagi
Copy link
Contributor

Diyagi commented Oct 29, 2024

Well, it is indeed weird, volumes should not have permission issues, also this error is a bit different from the other issue

Steam API initialized
Steam server API failed to log in anonymously
CWorkThreadPool::~CWorkThreadPool: work complete queue not empty, 2 items discarded.
CWorkThreadPool::~CWorkThreadPool: work processing queue not empty: 3 items discarded.
Platform init Steam failed
 #0 PlayerMain(int, char**)
 #1 PlayerMain(int, char**)
 #2 ???
 #3  (Mono JIT Code) (wrapper managed-to-native) UnityEngine.DebugLogHandler:Internal_Log (UnityEngine.LogType,UnityEngine.LogOption,string,UnityEngine.Object)
 #4  (Mono JIT Code) UnityEngine.Logger:Log (UnityEngine.LogType,object)
 #5  (Mono JIT Code) (wrapper runtime-invoke) object:runtime_invoke_void (object,intptr,intptr,intptr)
 #6 mono_get_runtime_build_info
 #7 mono_runtime_invoke
 #8 mono_runtime_invoke
 #9 ???
 #10 ???
 #11 ???
 #12 ???
 #13 ???
 #14 ???
 #15 PlayerMain(int, char**)
 #16 __libc_init_first
 #17 __libc_start_main
 #18 ???

@john-ee
Copy link
Author

john-ee commented Oct 30, 2024

There's the following message in the Docker logs, could that be linked to it ?

core-keeper-dedicated  | xvinfo:  Unable to open display :99
core-keeper-dedicated  | Failed to start Xvfb, retry: 1
core-keeper-dedicated  | _XSERVTransmkdir: Owner of /tmp/.X11-unix should be set to root

@Diyagi
Copy link
Contributor

Diyagi commented Oct 30, 2024

No, First two is just the script waiting for the xvfb to be ready and the second is just wrong permission for the x11 sockets folder, but it should be harmless.

@Diyagi
Copy link
Contributor

Diyagi commented Oct 30, 2024

Well, i guess u can try my in-dev image diyagi/core-keeper-dedicated
these are the changed env vars

PUID=1000
PGID=1000
WORLD_INDEX=0
WORLD_NAME="Core Keeper Server"
WORLD_SEED=0
WORLD_MODE=0
GAME_ID=""
DATA_PATH="${STEAMAPPDATADIR}"
MAX_PLAYERS=10
SEASON=""
SERVER_IP=""
SERVER_PORT=""
DISCORD_WEBHOOK_URL=""
# Player Join
DISCORD_PLAYER_JOIN_ENABLED=true
DISCORD_PLAYER_JOIN_MESSAGE="$${char_name} ($${steamid}) has joined the server."
DISCORD_PLAYER_JOIN_TITLE="Player Joined"
DISCORD_PLAYER_JOIN_COLOR="47456"
# Player Leave
DISCORD_PLAYER_LEAVE_ENABLED=true
DISCORD_PLAYER_LEAVE_MESSAGE="$${char_name} ($${steamid}) has disconnected. Reason: $${reason}."
DISCORD_PLAYER_LEAVE_TITLE="Player Left"
DISCORD_PLAYER_LEAVE_COLOR="11477760"
# Server Start
DISCORD_SERVER_START_ENABLED=true
DISCORD_SERVER_START_MESSAGE="**World:** $${world_name}\n**GameID:** $${gameid}"
DISCORD_SERVER_START_TITLE="Server Started"
DISCORD_SERVER_START_COLOR="2013440"
# Server Stop
DISCORD_SERVER_STOP_ENABLED=true
DISCORD_SERVER_STOP_MESSAGE=""
DISCORD_SERVER_STOP_TITLE="Server Stopped"
DISCORD_SERVER_STOP_COLOR="12779520"

pay attention to the PUID and PGID, you will want to set these to the same IDs used by the nas (if u have access to the terminal just run the id command), this should also be safe to use with binds instead of volume assuming you set the right user and group IDs, let me know if it works.

Also, this is just an dev branch, this should be merged in this repo eventually, so if it works, remember that you will need to change it back to this repo once it merges.

@john-ee
Copy link
Author

john-ee commented Oct 30, 2024

I doesn't work any better. In the core.env file, I put the PUID/PGID of the user I have to run Docker.

core-keeper_core-keeper-dedicated.log

@Diyagi
Copy link
Contributor

Diyagi commented Oct 30, 2024

Can you try setting both SERVER_IP and SERVER_PORT ?

@john-ee
Copy link
Author

john-ee commented Oct 30, 2024

Still no success.

@Diyagi
Copy link
Contributor

Diyagi commented Oct 30, 2024

Well, its hard to say whats causing this as the Core Keeper server itself is hiding the errors from steamapi, all i know is that it is failing to login into steam.

// num3 is SERVER_PORT
SteamServer.LogOnAnonymous();
int num4 = 0;
while (num4 < 100 && !SteamServer.LoggedOn)
{
	Thread.Sleep(100);
	this.Update();
	num4++;
}
if (!SteamServer.LoggedOn && num3 == 0)
{
	Debug.LogWarning("Steam server API failed to log in anonymously");
	SteamServer.Shutdown();
	return false;
}

My only guesses is that the core keeper server is loading the wrong steamclient.so or theres some firewall issue not allowing it to connect to steam (tho steamcmd seems to connect to it just fine).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants