thijsvanloef / palworld-server-docker

A Docker Container to easily run a Palworld dedicated server.
https://hub.docker.com/r/thijsvanloef/palworld-server-docker
MIT License
2.43k stars 294 forks source link

V0.30/latest Server Crashes while starting with engine.ini modified with env #482

Closed Zarrsito closed 7 months ago

Zarrsito commented 7 months ago

Describe the bug

When using SMOOTH_FRAME_RATE=false, USE_FIXED_FRAME_RATE=false ,FIXED_FRAME_RATE=30 , MIN_DESIRED_FRAME_RATE=30 the server will crash while starting

To Reproduce

Steps to reproduce the behavior:

This are the Settings for engine.ini with ENV LAN_SERVER_MAX_TICK_RATE=120 NET_SERVER_MAX_TICK_RATE=120 CONFIGURED_INTERNET_SPEED=104857600 CONFIGURED_LAN_SPEED=104857600 MAX_CLIENT_RATE=104857600 MAX_INTERNET_CLIENT_RATE=104857600 SMOOTH_FRAME_RATE=false USE_FIXED_FRAME_RATE=false FIXED_FRAME_RATE=30 MIN_DESIRED_FRAME_RATE=30 NET_CLIENT_TICKS_PER_SECOND=120

Expected behavior

Server should start =)

Actual behavior

Server is crashing with Segmentation fault (core dumped) error

OS information

Hardware information

Container/Host Logs

****EXECUTING USERMOD****

usermod: no changes

ARM compatibility mode enabled

Using Box64 for 64k pagesize

****GENERATING CONFIG****

Using Env vars to create PalWorldSettings.ini

****Compiling PalWorldSettings.ini****

Compiling PalWorldSettings.ini done!

****Compiling Engine.ini****

Compiling Engine.ini done!

****GENERATING CRONTAB****

BACKUP_ENABLED=true

Adding cronjob for auto backups

Cronjobs started

****Starting Server****

./PalServer-arm64.sh -port=8211 -queryport=27015 -publiclobby -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS

INFO[2024-03-01T19:54:18Z] read crontab: /home/steam/server/crontab     

Dynarec for ARM64, with extension: ASIMD AES CRC32 PMULL SHA1 SHA2 PageSize:65536 Running on Cortex-A57 with 4 Cores

Params database has 60 entries

Box64 with Dynarec v0.2.7 6a983691 built on Feb 29 2024 01:46:50

BOX64: Didn't detect 48bits of address space, considering it's 39bits

Counted 93 Env var

BOX64 LIB PATH: /home/steam/steamcmd/linux64/:./:lib/:lib64/:x86_64/:bin64/:libs64/:/lib/x86_64-linux-gnu/:/usr/lib/x86_64-linux-gnu/

BOX64 BIN PATH: ./:bin/:/usr/local/sbin/:/usr/local/bin/:/usr/sbin/:/usr/bin/:/sbin/:/bin/

Looking for /palworld/Pal/Binaries/Linux/PalServer-Linux-Test

argv[1]="Pal"

argv[2]="-port=8211"

argv[3]="-queryport=27015"

argv[4]="-publiclobby"

argv[5]="-useperfthreads"

argv[6]="-NoAsyncLoadingThread"

argv[7]="-UseMultithreadForDS"

Rename process to "PalServer-Linux-Test"

Using native(wrapped) libpthread.so.0

Using native(wrapped) libdl.so.2

Using emulated /palworld/Pal/Binaries/Linux/../../../Engine/Binaries/ThirdParty/Steamworks/Steamv153/x86_64-unknown-linux-gnu/libsteam_api.so

Using emulated /palworld/Pal/Binaries/Linux/../../../Engine/Binaries/Linux/libEOSSDK-Linux-Shipping.so

Using native(wrapped) librt.so.1

Using native(wrapped) libm.so.6

Using native(wrapped) libc.so.6

Using native(wrapped) ld-linux-x86-64.so.2

Using native(wrapped) libutil.so.1

Using native(wrapped) libbsd.so.0

Using emulated /lib/x86_64-linux-gnu/libgcc_s.so.1

Shutdown handler: initalize.

Waiting for RCON port to open to show player logging...

Increasing per-process limit of core file size to infinity.

Waiting for RCON port to open to show player logging...

Using emulated /home/steam/steamcmd/linux64/steamclient.so

Redirecting overridden malloc from symtab function for /home/steam/steamcmd/linux64/steamclient.so

Warning: Weak Symbol _ITM_RU1 not found, cannot apply R_X86_64_JUMP_SLOT @0x3f06158018 (0xad1180)

Warning: Weak Symbol _ZGTtnam not found, cannot apply R_X86_64_JUMP_SLOT @0x3f06158020 (0xad1180)

Warning: Weak Symbol _ITM_memcpyRtWn not found, cannot apply R_X86_64_JUMP_SLOT @0x3f06158028 (0xad1180)

Warning: Weak Symbol _ITM_RU8 not found, cannot apply R_X86_64_JUMP_SLOT @0x3f06158030 (0xad1180)

[S_API] SteamAPI_Init(): Loaded local 'steamclient.so' OK.

Using native(wrapped) crashhandler.so

CAppInfoCacheReadFromDiskThread took 18 milliseconds to initialize

Setting breakpad minidump AppID = 2394010

Error loading needed lib libsteam.so

Warning: Cannot dlopen("libsteam.so"/0x3f0003f7d9, 2)

[S_API FAIL] Tried to access Steam interface SteamUser021 before SteamAPI_Init succeeded.

[S_API FAIL] Tried to access Steam interface SteamFriends017 before SteamAPI_Init succeeded.

Waiting for RCON port to open to show player logging...

Waiting for RCON port to open to show player logging...

Waiting for RCON port to open to show player logging...

[S_API FAIL] Tried to access Steam interface STEAMAPPS_INTERFACE_VERSION008 before SteamAPI_Init succeeded.

Waiting for RCON port to open to show player logging...

Error loading needed lib libSDL3.so.0

Warning: Cannot dlopen("libSDL3.so.0"/0x3f04a6c93b, 2)

[S_API FAIL] Tried to access Steam interface SteamNetworkingUtils004 before SteamAPI_Init succeeded.

Waiting for RCON port to open to show player logging...

Waiting for RCON port to open to show player logging...

Waiting for RCON port to open to show player logging...

Waiting for RCON port to open to show player logging...

Waiting for RCON port to open to show player logging...

cli: execute: auth: rcon: rcon: read packet size: read tcp 127.0.0.1:44562->127.0.0.1:25575: i/o timeout

cli: execute: auth: rcon: rcon: read packet size: read tcp 127.0.0.1:44590->127.0.0.1:25575: i/o timeout

cli: execute: auth: rcon: rcon: read packet size: read tcp 127.0.0.1:44624->127.0.0.1:25575: i/o timeout

Segmentation fault (core dumped)

Additional context

When using SMOOTH_FRAME_RATE=true, USE_FIXED_FRAME_RATE=false ,FIXED_FRAME_RATE=30 , MIN_DESIRED_FRAME_RATE=30 the server will start up and run but crashes later like 30mins with Segmentation fault (core dumped)

When using SMOOTH_FRAME_RATE=true, USE_FIXED_FRAME_RATE=true , FIXED_FRAME_RATE=30 , MIN_DESIRED_FRAME_RATE=30 the server will start up and run and the crashes like the other option with Segmentation fault (core dumped)

thats what i found out so far

if i only start with modified LAN_SERVER_MAX_TICK_RATE=120 NET_SERVER_MAX_TICK_RATE=120 NET_CLIENT_TICKS_PER_SECOND=120 everything is well for hours

sonroyaalmerol commented 7 months ago

I'm unable to recreate this with my Oracle (arm64) server. It may be as simple as your machine not powerful enough for your Engine.ini optimzation settings. Your DDR3 memory is probably struggling to keep up with this memory hungry game server.

Zarrsito commented 7 months ago

well it runs on DDR4 but single channel, only 1 slot... :( ;) , now i have played around with the variables, removing and adding and so on, now im end up the server always needs to crash 1 time and when it then restarts the game server loads up this is the log, and then the game crashes after an hour or so again and restarts and runs again

_Palworld-Server_logs (1).txt

image

Zarrsito commented 7 months ago

this is what it looks like when the server is running, do u really think it to much for it ? image

Zarrsito commented 7 months ago

this just happens before server crashes when running for longer.. 2024-03-02T00:13:24.784213994Z Signal 11 caught. 2024-03-02T00:13:24.784626520Z Malloc Size=262146 LargeMemoryPoolOffset=262162 2024-03-02T00:13:24.784870171Z CommonUnixCrashHandler: Signal=11 2024-03-02T00:13:24.810012220Z Signal 11 caught. 2024-03-02T00:13:24.810248963Z Malloc Size=262146 LargeMemoryPoolOffset=524338 2024-03-02T00:13:24.810622763Z CommonUnixCrashHandler: Signal=11 2024-03-02T00:13:24.837386630Z Signal 11 caught. 2024-03-02T00:13:24.837725922Z Malloc Size=262146 LargeMemoryPoolOffset=786514

well i just noticed that when u remove env from the container to configure engine.ini, the removed env didnt get removed from the engine.ini , just wanted to make a screenshot that im only running with modified tick rates, and realized that the other settings are still set and i was wondering why i couldnt go back to a stable state xD and all my testing was for nothing cause it never removed anything just changed when the corresponding env was set

edit: now i realized it istn possible to just add single env to only add these and leave the other settings untouched (so they dont exist) they will get loaded with basic parameters anyways then