LacledesLAN / gamesvr-goldsource-cstrike

Laclede's LAN Counter-Strike 1.6 Freeplay Dedicated Server in Docker
https://hub.docker.com/r/lacledeslan/gamesvr-goldsource-cstrike/
The Unlicense
0 stars 0 forks source link

Segfault on connection from cs 1.6 steam client #31

Open pohmelie opened 9 months ago

pohmelie commented 9 months ago
  1. Start cs 1.6 server: docker run -it --rm --net=host lacledeslan/gamesvr-goldsource-cstrike ./hlds_run -game cstrike +sv_lan 1 +map de_dust2 +maxplayers 16;
  2. Start cs 1.6 client from steam
  3. Use console command connect 127.0.0.1:27015
  4. Server log file from start to crash:
    
    Auto-restarting the server on crash

Console initialized. Using breakpad crash handler Setting breakpad minidump AppID = 10 Forcing breakpad minidump interfaces to load Looking up breakpad interfaces from steamclient Calling BreakpadMiniDumpSystemInit Protocol version 48 Exe version 1.1.2.7/Stdio (cstrike) Exe build: 23:25:09 Dec 9 2023 (9907) STEAM Auth Server Server IP address 127.0.1.1:27015

Metamod version 1.21-am Copyright (c) 2001-2013 Will Day willday@metamod.org Metamod comes with ABSOLUTELY NO WARRANTY; for details type meta gpl'. This is free software, and you are welcome to redistribute it under certain conditions; typemeta gpl' for details.

AMX Mod X version 1.8.2 Copyright (c) 2004-2006 AMX Mod X Development Team AMX Mod X comes with ABSOLUTELY NO WARRANTY; for details type `amxx gpl'. This is free software and you are welcome to redistribute it under certain conditions; type 'amxx gpl' for details.

L 02/21/2024 - 22:37:34: -------- Mapchange to de_dust2 -------- couldn't exec maps/de_dust2_load.cfg [AMXX] Loaded 13 admins from file [S_API] SteamAPI_Init(): Loaded local 'steamclient.so' OK. CAppInfoCacheReadFromDiskThread took 0 milliseconds to initialize dlmopen steamservice.so failed: steamservice.so: cannot open shared object file: No such file or directory SteamInternal_SetMinidumpSteamID: Caching Steam ID: 76561197960265728 [API loaded yes] SteamInternal_SetMinidumpSteamID: Setting Steam ID: 76561197960265728 Looking up breakpad interfaces from steamclient Calling BreakpadMiniDumpSystemInit SteamInternal_SetMinidumpSteamID: Caching Steam ID: 76561197960265728 [API loaded yes] SteamInternal_SetMinidumpSteamID: Setting Steam ID: 76561197960265728

Executing AMX Mod X Configuration File Scrolling message displaying frequency: 10:00 minutes Server logging data to file logs/L0221000.log L 02/21/2024 - 22:37:34: Log file started (file "logs/L0221000.log") (game "cstrike") (version "48/1.1.2.7/Stdio/9907") L 02/21/2024 - 22:37:34: Server cvar "sv_maxrate" = "25000" Menu item 17 added to Menus Front-End: "Plugin Cvars" from plugin "pluginmenu.amxx" Menu item 18 added to Menus Front-End: "Plugin Commands" from plugin "pluginmenu.amxx" VAC secure mode disabled. L 02/21/2024 - 22:37:42: World triggered "Round_Start" [S_API FAIL] Tried to access Steam interface SteamNetworkingUtils004 before SteamAPI_Init succeeded. L 02/21/2024 - 22:38:36: "RVU_OCHKI<1><>" connected, address "127.0.0.1:27005" ERROR: couldn't open custom.hpk. L 02/21/2024 - 22:38:39: "RVU_OCHKI<1><>" entered the game Segmentation fault (core dumped)

dudleycodes commented 9 months ago

@pohmelie

It looks like you were running Docker (and this Docker container) on the same host you were playing from, is that correct? Can you tell me about your setup?

`3. Use console command connect 127.0.0.1:27015

I'm assuming this was a permission issue, that it tried to create a custom.hpk file in the container, and failed. I'll run some experiments tonight and see if I can reproduce.

pohmelie commented 9 months ago

Yes, I'm trying to start server and run cs client on the same machine. That is my goal.

dudleycodes commented 9 months ago

Digging into this now. I am able to reproduce the problem using a remote host, so this tells me @pohmelie 's particularly setup (local server + local client) isn't the issue.

sysoper@llkelly:~$ docker run -it --rm --net=host lacledeslan/gamesvr-goldsource-cstrike ./hlds_run -game cstrike +sv_lan 1 +map de_dust2 +maxplayers 16;
Auto-restarting the server on crash

Using breakpad crash handler
Setting breakpad minidump AppID = 10
Forcing breakpad minidump interfaces to load
Looking up breakpad interfaces from steamclient
Calling BreakpadMiniDumpSystemInit
Protocol version 48
Exe version 1.1.2.7/Stdio (cstrike)
Exe build: 23:25:09 Dec  9 2023 (9907)
STEAM Auth Server
Server IP address 172.30.12.25:27015

   Metamod version 1.21-am  Copyright (c) 2001-2013 Will Day <willday@metamod.org>
   Metamod comes with ABSOLUTELY NO WARRANTY; for details type `meta gpl'.
   This is free software, and you are welcome to redistribute it
   under certain conditions; type `meta gpl' for details.

   AMX Mod X version 1.8.2 Copyright (c) 2004-2006 AMX Mod X Development Team 
   AMX Mod X comes with ABSOLUTELY NO WARRANTY; for details type `amxx gpl'.
   This is free software and you are welcome to redistribute it under 
   certain conditions; type 'amxx gpl' for details.

L 02/25/2024 - 01:01:23: -------- Mapchange to de_dust2 --------
couldn't exec maps/de_dust2_load.cfg
[AMXX] Loaded 13 admins from file
[S_API] SteamAPI_Init(): Loaded local 'steamclient.so' OK.
CAppInfoCacheReadFromDiskThread took 0 milliseconds to initialize
dlmopen steamservice.so failed: steamservice.so: cannot open shared object file: No such file or directory
SteamInternal_SetMinidumpSteamID:  Caching Steam ID:  76561197960265728 [API loaded yes]
SteamInternal_SetMinidumpSteamID:  Setting Steam ID:  76561197960265728
Looking up breakpad interfaces from steamclient
Calling BreakpadMiniDumpSystemInit
SteamInternal_SetMinidumpSteamID:  Caching Steam ID:  76561197960265728 [API loaded yes]
SteamInternal_SetMinidumpSteamID:  Setting Steam ID:  76561197960265728

Executing AMX Mod X Configuration File 
Scrolling message displaying frequency: 10:00 minutes
Server logging data to file logs/L0225000.log
L 02/25/2024 - 01:01:24: Log file started (file "logs/L0225000.log") (game "cstrike") (version "48/1.1.2.7/Stdio/9907")
L 02/25/2024 - 01:01:24: Server cvar "sv_maxrate" = "25000"
Menu item 17 added to Menus Front-End: "Plugin Cvars" from plugin "pluginmenu.amxx"
Menu item 18 added to Menus Front-End: "Plugin Commands" from plugin "pluginmenu.amxx"
   VAC secure mode disabled.
[S_API FAIL] Tried to access Steam interface SteamNetworkingUtils004 before SteamAPI_Init succeeded.
L 02/25/2024 - 01:01:29: "[LL] Dudsmack<1><STEAM_ID_LAN><>" connected, address "172.30.1.93:27005"
ERROR: couldn't open custom.hpk.
L 02/25/2024 - 01:01:31: "[LL] Dudsmack<1><STEAM_ID_LAN><>" entered the game
Segmentation fault (core dumped)

Issues does not happen with parent image lacledeslan/gamesvr-goldsource. Initial gut this is a amx/metamode issue:

sysoper@llkelly:~$ docker run -it --rm --net=host lacledeslan/gamesvr-goldsource ./hlds_run -game cstrike +sv_lan 1 +map de_dust2 +maxplayers 16;
Auto-restarting the server on crash

Console initialized.
Using breakpad crash handler
Setting breakpad minidump AppID = 10
Forcing breakpad minidump interfaces to load
Looking up breakpad interfaces from steamclient
Calling BreakpadMiniDumpSystemInit
Protocol version 48
Exe version 1.1.2.7/Stdio (cstrike)
Exe build: 23:25:09 Dec  9 2023 (9907)
STEAM Auth Server
Server IP address 172.30.12.25:27015
couldn't exec maps/de_dust2_load.cfg
[S_API] SteamAPI_Init(): Loaded local 'steamclient.so' OK.
CAppInfoCacheReadFromDiskThread took 0 milliseconds to initialize
dlmopen steamservice.so failed: steamservice.so: cannot open shared object file: No such file or directory
SteamInternal_SetMinidumpSteamID:  Caching Steam ID:  76561197960265728 [API loaded yes]
SteamInternal_SetMinidumpSteamID:  Setting Steam ID:  76561197960265728
Looking up breakpad interfaces from steamclient
Calling BreakpadMiniDumpSystemInit
SteamInternal_SetMinidumpSteamID:  Caching Steam ID:  76561197960265728 [API loaded yes]
SteamInternal_SetMinidumpSteamID:  Setting Steam ID:  76561197960265728

couldn't exec listip.cfg
couldn't exec banned.cfg
   VAC secure mode disabled.
[S_API FAIL] Tried to access Steam interface SteamNetworkingUtils004 before SteamAPI_Init succeeded.
ERROR: couldn't open custom.hpk.
Dropped [LL] Dudsmack from server
Reason:  Client sent 'drop'
dudleycodes commented 9 months ago

Updated base image; don't want to use old bits.

OLD

REPOSITORY                               TAG       IMAGE ID       CREATED        SIZE
lacledeslan/gamesvr-goldsource-cstrike   latest    5e01809624a1   4 weeks ago    2.68GB
lacledeslan/gamesvr-goldsource           latest    9810c9c207b6   2 months ago   2.67G

NEW

REPOSITORY                               TAG       IMAGE ID       CREATED         SIZE
lacledeslan/gamesvr-goldsource           latest    415926275bc5   9 minutes ago   2.67GB
lacledeslan/gamesvr-goldsource-cstrike   latest    5e01809624a1   4 weeks ago     2.68GB
dudleycodes commented 9 months ago

Rebuilt image so it's using latest base image:

REPOSITORY                               TAG       IMAGE ID       CREATED          SIZE
lacledeslan/gamesvr-goldsource-cstrike   latest    2752e76003d8   3 minutes ago    2.68GB
lacledeslan/gamesvr-goldsource-cstrike   <none>    5e01809624a1   4 weeks ago      2.68GB

No effect

L 02/25/2024 - 01:40:11: "[LL] Dudsmack<1><STEAM_ID_LAN><>" connected, address "172.30.1.93:27005"
ERROR: couldn't open custom.hpk.
L 02/25/2024 - 01:40:13: "[LL] Dudsmack<1><STEAM_ID_LAN><>" entered the game
Segmentation fault (core dumped)
dudleycodes commented 9 months ago

Creating a default and empty file named custom.hpk fixes the segfault, but server complains the file is not the proper format. Going to see what it takes to make it a custom format.

dudleycodes commented 9 months ago

Creating a custom.hpk only fixes the problem, some of the times. Something else is going on

dudleycodes commented 9 months ago

Summoning @JustinBenedick for help

pohmelie commented 9 months ago

Tried hlds from beta version steam_legacy, no success too.

pohmelie commented 8 months ago

I dig into a little. If change cstrike/liblist.gam file to original content (disabling metamod and amxmod)

...
gamedll "dlls\mp.dll"
gamedll_linux "dlls/cs.so"
gamedll_osx "dlls/cs.dylib"
...

Then server starts and connection succeed. So the issue is about amx/meta mods, their plugins and configuration. Maybe project rehlds is relevant.