Closed tholu closed 4 years ago
volumes: csgo:
Make sure to setup the volume correctly. Or did you just forget a bit of the compose file there?
EDIT: nvm, it's a named volume. I still have to get used to that syntax.
Any noteworthy logs when it gets caught in restarts?
@CM2Walki I already restarted the whole container, so the logs are gone. I will followup in a few days with details!
Happened again:
ESC[36mcsgo_1 |ESC[0m ^CMasterRequestRestart
ESC[36mcsgo_1 |ESC[0m Your server is out of date and will be shutdown during hibernation or changelevel, whichever comes first.
ESC[36mcsgo_1 |ESC[0m Host state 5 at Tue Aug 18 00:27:16 2020
ESC[36mcsgo_1 |ESC[0m -- sv_shutdown hibernating server right now.
ESC[36mcsgo_1 |ESC[0m Host_ShutdownServer
ESC[36mcsgo_1 |ESC[0m CBaseServer::Shutdown
ESC[36mcsgo_1 |ESC[0m CSteam3Server::Shutdown
ESC[36mcsgo_1 |ESC[0m NET_SteamGameServer_Shutdown
ESC[36mcsgo_1 |ESC[0m Shutting down low level socket/threading support.
ESC[36mcsgo_1 |ESC[0m SteamGameServer_Shutdown
ESC[36mcsgo_1 |ESC[0m SV_ShutdownGameDLL
ESC[36mcsgo_1 |ESC[0m Host_Shutdown
ESC[36mcsgo_1 |ESC[0m Shutdown function NET_Shutdown() not in list!!!
ESC[36mcsgo_1 |ESC[0m NET_Shutdown
ESC[36mcsgo_1 |ESC[0m NET_CloseAllSockets
ESC[36mcsgo_1 |ESC[0m NET_SteamGameServer_Shutdown
ESC[36mcsgo_1 |ESC[0m File /home/steam/csgo-dedicated/csgo/pak01_132.vpk was never closed
ESC[36mcsgo_1 |ESC[0m File /home/steam/csgo-dedicated/csgo/pak01_132.vpk was never closed
ESC[36mcsgo_1 |ESC[0m File /home/steam/csgo-dedicated/csgo/pak01_129.vpk was never closed
ESC[36mcsgo_1 |ESC[0m File /home/steam/csgo-dedicated/csgo/pak01_129.vpk was never closed
ESC[36mcsgo_1 |ESC[0m File /home/steam/csgo-dedicated/csgo/pak01_114.vpk was never closed
ESC[36mcsgo_1 |ESC[0m File /home/steam/csgo-dedicated/csgo/pak01_114.vpk was never closed
ESC[36mcsgo_1 |ESC[0m File /home/steam/csgo-dedicated/csgo/pak01_113.vpk was never closed
...
ESC[36mcsgo_1 |ESC[0m File /home/steam/csgo-dedicated/csgo/pak01_102.vpk was never closed
ESC[36mcsgo_1 |ESC[0m File /home/steam/csgo-dedicated/csgo/pak01_102.vpk was never closed
ESC[36mcsgo_1 |ESC[0m Tue Aug 18 02:13:04 UTC 2020: Server restart in 10 seconds
ESC[36mcsgo_1 |ESC[0m Updating server using Steam.
ESC[36mcsgo_1 |ESC[0m ----------------------------
ESC[36mcsgo_1 |ESC[0m /home/steam/csgo-dedicated/srcds_run: line 301: ./steam.sh: No such file or directory
ESC[36mcsgo_1 |ESC[0m ----------------------------
ESC[36mcsgo_1 |ESC[0m Setting breakpad minidump AppID = 740
ESC[36mcsgo_1 |ESC[0m Using breakpad crash handler
ESC[36mcsgo_1 |ESC[0m Forcing breakpad minidump interfaces to load
ESC[36mcsgo_1 |ESC[0m Looking up breakpad interfaces from steamclient
ESC[36mcsgo_1 |ESC[0m Calling BreakpadMiniDumpSystemInit
ESC[36mcsgo_1 |ESC[0m [S_API] SteamAPI_Init(): SteamAPI_IsSteamRunning() did not locate a running instance of Steam.
ESC[36mcsgo_1 |ESC[0m [S_API] SteamAPI_Init(): Loaded '/home/steam/.steam/sdk32/steamclient.so' OK.
ESC[36mcsgo_1 |ESC[0m LD_LIBRARY_PATH=/home/steam/csgo-dedicated/bin:/home/steam/csgo-dedicated:/home/steam/csgo-dedicated/bin:
ESC[36mcsgo_1 |ESC[0m #
ESC[36mcsgo_1 |ESC[0m #Console initialized.
ESC[36mcsgo_1 |ESC[0m #Using breakpad minidump system 740/13763.1175.DC
ESC[36mcsgo_1 |ESC[0m #Loading VPK file hashes for pure server operation.
ESC[36mcsgo_1 |ESC[0m #Loading VPK file hashes for pure server operation.
ESC[36mcsgo_1 |ESC[0m #Loading VPK file hashes for pure server operation.
ESC[36mcsgo_1 |ESC[0m #Loading VPK file hashes for pure server operation.
ESC[36mcsgo_1 |ESC[0m #Loading VPK file hashes for pure server operation.
ESC[36mcsgo_1 |ESC[0m #Filesystem successfully switched to safe whitelist mode
ESC[36mcsgo_1 |ESC[0m #Game.dll loaded for "Counter-Strike: Global Offensive"
ESC[36mcsgo_1 |ESC[0m #CGameEventManager::AddListener: event 'server_pre_shutdown' unknown.
ESC[36mcsgo_1 |ESC[0m #CGameEventManager::AddListener: event 'game_newmap' unknown.
ESC[36mcsgo_1 |ESC[0m #CGameEventManager::AddListener: event 'finale_start' unknown.
ESC[36mcsgo_1 |ESC[0m #CGameEventManager::AddListener: event 'round_start' unknown.
ESC[36mcsgo_1 |ESC[0m #CGameEventManager::AddListener: event 'round_end' unknown.
ESC[36mcsgo_1 |ESC[0m #CGameEventManager::AddListener: event 'difficulty_changed' unknown.
ESC[36mcsgo_1 |ESC[0m #CGameEventManager::AddListener: event 'player_death' unknown.
ESC[36mcsgo_1 |ESC[0m #CGameEventManager::AddListener: event 'hltv_replay' unknown.
ESC[36mcsgo_1 |ESC[0m #CGameEventManager::AddListener: event 'player_connect' unknown.
ESC[36mcsgo_1 |ESC[0m #CGameEventManager::AddListener: event 'player_disconnect' unknown.
ESC[36mcsgo_1 |ESC[0m #GameTypes: missing mapgroupsSP entry for game type/mode (custom/custom).
ESC[36mcsgo_1 |ESC[0m #GameTypes: missing mapgroupsSP entry for game type/mode (cooperative/cooperative).
ESC[36mcsgo_1 |ESC[0m #GameTypes: missing mapgroupsSP entry for game type/mode (cooperative/coopmission).
ESC[36mcsgo_1 |ESC[0m Failed to load gamerulescvars.txt, game rules cvars might not be reported to management tools.
ESC[36mcsgo_1 |ESC[0m Server is hibernating
ESC[36mcsgo_1 |ESC[0m No web api auth key specified - workshop downloads will be disabled.
ESC[36mcsgo_1 |ESC[0m maxplayers set to 64
ESC[36mcsgo_1 |ESC[0m ConVarRef cl_embedded_stream_video_playing doesn't point to an existing ConVar
ESC[36mcsgo_1 |ESC[0m Unknown command "cl_bobamt_vert"
ESC[36mcsgo_1 |ESC[0m Unknown command "cl_bobamt_lat"
ESC[36mcsgo_1 |ESC[0m Unknown command "cl_bob_lower_amt"
ESC[36mcsgo_1 |ESC[0m Unknown command "cl_viewmodel_shift_left_amt"
ESC[36mcsgo_1 |ESC[0m Unknown command "cl_viewmodel_shift_right_amt"
ESC[36mcsgo_1 |ESC[0m Unknown command "cl_teamid_min"
ESC[36mcsgo_1 |ESC[0m Unknown command "cl_teamid_max"
ESC[36mcsgo_1 |ESC[0m Unknown command "cl_teamid_overhead"
ESC[36mcsgo_1 |ESC[0m Unknown command "cl_teamid_overhead_maxdist"
ESC[36mcsgo_1 |ESC[0m Setting mapgroup to 'mg_active'
ESC[36mcsgo_1 |ESC[0m Invalid file id.
ESC[36mcsgo_1 |ESC[0m Invalid file id.
ESC[36mcsgo_1 |ESC[0m NET_CloseAllSockets
ESC[36mcsgo_1 |ESC[0m ---- Host_NewGame ----
ESC[36mcsgo_1 |ESC[0m Switching filesystem to allow files loaded from disk (sv_pure_allow_loose_file_loads = 1)
ESC[36mcsgo_1 |ESC[0m Host_NewGame on map de_dust2
ESC[36mcsgo_1 |ESC[0m CGameEventManager::AddListener: event 'teamplay_win_panel' unknown.
ESC[36mcsgo_1 |ESC[0m CGameEventManager::AddListener: event 'teamplay_restart_round' unknown.
ESC[36mcsgo_1 |ESC[0m CGameEventManager::AddListener: event 'arena_win_panel' unknown.
ESC[36mcsgo_1 |ESC[0m GameTypes: missing mapgroupsSP entry for game type/mode (custom/custom).
ESC[36mcsgo_1 |ESC[0m GameTypes: missing mapgroupsSP entry for game type/mode (cooperative/cooperative).
ESC[36mcsgo_1 |ESC[0m GameTypes: missing mapgroupsSP entry for game type/mode (cooperative/coopmission).
ESC[36mcsgo_1 |ESC[0m ConVarRef room_type doesn't point to an existing ConVar
ESC[36mcsgo_1 |ESC[0m ammo_grenade_limit_default - 1
ESC[36mcsgo_1 |ESC[0m ammo_grenade_limit_flashbang - 1
ESC[36mcsgo_1 |ESC[0m ammo_grenade_limit_total - 3
ESC[36mcsgo_1 |ESC[0m ammo_item_limit_healthshot - 4
ESC[36mcsgo_1 |ESC[0m bot_allow_grenades - 1
...
ESC[36mcsgo_1 |ESC[0m Executing dedicated server config file
ESC[36mcsgo_1 |ESC[0m Unknown command "sv_unlag"
ESC[36mcsgo_1 |ESC[0m Unknown command "tv_allow_camera_man"
ESC[36mcsgo_1 |ESC[0m maxplayers set to 64
ESC[36mcsgo_1 |ESC[0m Console: "> ESL GOTV Config loaded - 14.01.2016 <"
ESC[36mcsgo_1 |ESC[0m exec: couldn't exec gamemode_competitive_server.cfg
ESC[36mcsgo_1 |ESC[0m PrecacheScriptSound 'Survival.VO.Taunt4a' failed, no such sound script entry
ESC[36mcsgo_1 |ESC[0m PrecacheScriptSound 'Snowball.Bounce' failed, no such sound script entry
ESC[36mcsgo_1 |ESC[0m CHostage::Precache: missing hostage models for map de_dust2. Adding the default models.
ESC[36mcsgo_1 |ESC[0m PrecacheScriptSound 'balkan_epic_blank' failed, no such sound script entry
ESC[36mcsgo_1 |ESC[0m Commentary: Could not find commentary data file 'maps/de_dust2_commentary.txt'.
ESC[36mcsgo_1 |ESC[0m Error parsing BotProfile.db - unknown attribute 'Rank'
ESC[36mcsgo_1 |ESC[0m Error parsing BotProfile.db - unknown attribute 'Rank'
ESC[36mcsgo_1 |ESC[0m Error parsing BotProfile.db - unknown attribute 'Rank'
ESC[36mcsgo_1 |ESC[0m Error parsing BotProfile.db - unknown attribute 'Rank'
ESC[36mcsgo_1 |ESC[0m Error parsing BotProfile.db - unknown attribute 'Rank'
ESC[36mcsgo_1 |ESC[0m Error parsing BotProfile.db - unknown attribute 'Rank'
ESC[36mcsgo_1 |ESC[0m Error parsing BotProfile.db - unknown attribute 'Rank'
ESC[36mcsgo_1 |ESC[0m [S_API FAIL] SteamAPI_Init() failed; create pipe failed.[S_API] SteamAPI_Init(): Loaded local 'steamclient.so' OK.
ESC[36mcsgo_1 |ESC[0m CAppInfoCacheReadFromDiskThread took 1 milliseconds to initialize
ESC[36mcsgo_1 |ESC[0m CApplicationManagerPopulateThread took 0 milliseconds to initialize (will have waited on CAppInfoCacheReadFromDiskThread)
ESC[36mcsgo_1 |ESC[0m RecordSteamInterfaceCreation (PID 7069): SteamGameServer013 /
ESC[36mcsgo_1 |ESC[0m RecordSteamInterfaceCreation (PID 7069): SteamUtils009 /
ESC[36mcsgo_1 |ESC[0m Setting breakpad minidump AppID = 730
ESC[36mcsgo_1 |ESC[0m Forcing breakpad minidump interfaces to load
ESC[36mcsgo_1 |ESC[0m Looking up breakpad interfaces from steamclient
ESC[36mcsgo_1 |ESC[0m Calling BreakpadMiniDumpSystemInit
ESC[36mcsgo_1 |ESC[0m Looking up breakpad interfaces from steamclient
ESC[36mcsgo_1 |ESC[0m Calling BreakpadMiniDumpSystemInit
ESC[36mcsgo_1 |ESC[0m Setting breakpad minidump AppID = 740
ESC[36mcsgo_1 |ESC[0m RecordSteamInterfaceCreation (PID 7069): SteamGameServer013 / GameServer
ESC[36mcsgo_1 |ESC[0m RecordSteamInterfaceCreation (PID 7069): SteamUtils009 / Utils
ESC[36mcsgo_1 |ESC[0m RecordSteamInterfaceCreation (PID 7069): SteamNetworking005 / Networking
ESC[36mcsgo_1 |ESC[0m RecordSteamInterfaceCreation (PID 7069): SteamGameServerStats001 / GameServerStats
ESC[36mcsgo_1 |ESC[0m RecordSteamInterfaceCreation (PID 7069): STEAMHTTP_INTERFACE_VERSION003 / HTTP
ESC[36mcsgo_1 |ESC[0m RecordSteamInterfaceCreation (PID 7069): STEAMINVENTORY_INTERFACE_V001 / Inventory
ESC[36mcsgo_1 |ESC[0m RecordSteamInterfaceCreation (PID 7069): STEAMUGC_INTERFACE_VERSION014 / UGC
ESC[36mcsgo_1 |ESC[0m RecordSteamInterfaceCreation (PID 7069): STEAMAPPS_INTERFACE_VERSION008 / Apps
ESC[36mcsgo_1 |ESC[0m RecordSteamInterfaceCreation (PID 7069): SteamUtils009 / Utils
ESC[36mcsgo_1 |ESC[0m RecordSteamInterfaceCreation (PID 7069): SteamNetworkingSocketsSerialized004 /
ESC[36mcsgo_1 |ESC[0m RecordSteamInterfaceCreation (PID 7069): SteamGameServer012 / GameServer
ESC[36mcsgo_1 |ESC[0m RecordSteamInterfaceCreation (PID 7069): STEAMHTTP_INTERFACE_VERSION003 / HTTP
ESC[36mcsgo_1 |ESC[0m RecordSteamInterfaceCreation (PID 7069): SteamGameServer013 / GameServer
ESC[36mcsgo_1 |ESC[0m RecordSteamInterfaceCreation (PID 7069): SteamUtils009 / Utils
ESC[36mcsgo_1 |ESC[0m RecordSteamInterfaceCreation (PID 7069): SteamNetworking005 / Networking
ESC[36mcsgo_1 |ESC[0m RecordSteamInterfaceCreation (PID 7069): SteamGameServerStats001 / GameServerStats
ESC[36mcsgo_1 |ESC[0m RecordSteamInterfaceCreation (PID 7069): STEAMHTTP_INTERFACE_VERSION003 / HTTP
ESC[36mcsgo_1 |ESC[0m RecordSteamInterfaceCreation (PID 7069): STEAMINVENTORY_INTERFACE_V001 / Inventory
ESC[36mcsgo_1 |ESC[0m RecordSteamInterfaceCreation (PID 7069): STEAMUGC_INTERFACE_VERSION014 / UGC
ESC[36mcsgo_1 |ESC[0m RecordSteamInterfaceCreation (PID 7069): STEAMAPPS_INTERFACE_VERSION008 / Apps
ESC[36mcsgo_1 |ESC[0m RecordSteamInterfaceCreation (PID 7069): SteamGameCoordinator001 /
ESC[36mcsgo_1 |ESC[0m RecordSteamInterfaceCreation (PID 7069): SteamGameServer013 / GameServer
ESC[36mcsgo_1 |ESC[0m RecordSteamInterfaceCreation (PID 7069): SteamUtils009 / Utils
ESC[36mcsgo_1 |ESC[0m Error parsing BotProfile.db - unknown attribute 'Rank'
ESC[36mcsgo_1 |ESC[0m Initializing Steam libraries for secure Internet server
ESC[36mcsgo_1 |ESC[0m Logging into Steam gameserver account with logon token '09570B01xxxxxxxxxxxxxxxxxxxxxxxx'
ESC[36mcsgo_1 |ESC[0m Initialized low level socket/threading support.
ESC[36mcsgo_1 |ESC[0m Set SteamNetworkingSockets P2P_STUN_ServerList to '' as per SteamNetworkingSocketsSerialized
ESC[36mcsgo_1 |ESC[0m SteamDatagramServer_Init succeeded
ESC[36mcsgo_1 |ESC[0m PutClientInServer: no info_player_start on level
ESC[36mcsgo_1 |ESC[0m GOTV[0] broadcast active.
ESC[36mcsgo_1 |ESC[0m Connection to Steam servers successful.
ESC[36mcsgo_1 |ESC[0m Public IP is 31.xx.xx.xx.
ESC[36mcsgo_1 |ESC[0m Assigned persistent gameserver Steam ID [G:1:3433575].
ESC[36mcsgo_1 |ESC[0m Gameserver logged on to Steam, assigned identity steamid:85568392923472xxx
ESC[36mcsgo_1 |ESC[0m Set SteamNetworkingSockets P2P_STUN_ServerList to '146.66.155.101:3478' as per SteamNetworkingSocketsSerialized
ESC[36mcsgo_1 |ESC[0m VAC secure mode is activated.
ESC[36mcsgo_1 |ESC[0m GC Connection established for server version 1175, instance idx 1
ESC[36mcsgo_1 |ESC[0m ^CMasterRequestRestart
ESC[36mcsgo_1 |ESC[0m Your server is out of date and will be shutdown during hibernation or changelevel, whichever comes first.
I have cut out irrelevant parts with ...
.
I think that proves that the issue is the server trying to going down for an auto update on it's own.
This is either caused by:
ESC[36mcsgo_1 |ESC[0m /home/steam/csgo-dedicated/srcds_run: line 301: ./steam.sh: No such file or directory
EDIT: Apparently, this can be fixed by including the steam_appid.txt with the right steamappid in the directory of the srcds runtime: https://forums.alliedmods.net/showthread.php?t=234053
This is the relevant code in /home/steam/csgo-dedicated/srcds_run
:
# Run the steam update
# exits on failure if STEAMERR is set
if test -n "$AUTO_UPDATE"; then
if test -d "$STEAM_DIR"; then
echo "Updating server using Steam."
echo "----------------------------"
OLDWD=$(pwd)
eval "cd $STEAM_DIR"
eval "STEAMEXE=steamcmd ./steam.sh +runscript $STEAMCMD_SCRIPT"
eval "cd $OLDWD"
echo "----------------------------"
else
It seems that steamcmd
is executed in steam.sh
. Can't we just add it? Excuse me if this is a naive question, I'm not too familiar with the Steam server.
I think this issue can be "addressed" by adding
restart_policy:
condition: on-failure
to your service. The reason why nobody ever noticed it is likely because most people launch their container with restart=always, so if there is an update, it shuts down the parent container process which in turn restarts the container, which then ends up updating and restarting the game server. It's ugly but it works.
If you manage to find the actual root cause of the issue (and a fix) let me know, I'll leave this issue open for the time being.
Dunno if it helps, but one can also run the binary srcds_linux
directly instead of the wrapper script srcds_run
.
IIRC the (apparently) problematic autorestart feature is provided by srcds_run
.
In my containters I used to run srcds like this:
ENTRYPOINT LD_LIBRARY_PATH=/home/steam/csgo-dedicated/bin:/home/steam/csgo-dedicated \
./srcds_linux \
-game csgo \
-autoupdate \
-console \
-usercon \
+ip $IP \
-port $PORT \
-tv_port $TV_PORT \
+sv_region $REGION \
-tickrate $TICKRATE \
+fps_max $FPSMAX \
-maxplayers_override $MAXPLAYERS \
+sv_setsteamaccount $TOKEN \
+hostname $HOSTNAME \
+rcon_password $RCON_PW \
+sv_password $SV_PW \
+mapgroup $MAPGROUP \
+game_type $GAME_TYPE \
+game_mode $GAME_MODE \
+map $MAP
So in this case -autoupdate
will simply "shutdown during
hibernation or changelevel, whichever comes first", but will not reboot the server.
Note: Providing LD_LIBRARY_PATH
is mandatory when using srcds_linux
directly.
Very likely addressed by CM2Walki/steamcmd#15
Thanks @Nuc1eoN & @CM2Walki - happy to try this!
See https://github.com/CM2Walki/CSGO/commit/c6f9d9a71a3bc376ecda6773f76fa21dfe3a5b48
Turns out there was another problem with the autoupdate, the bash variables were not expanded correctly. Pushed a fix for that, too.
Is this issue resolved? Did you have another instance, in which the docker-compose service didn't come back up?
Looking good so far!
I have noticed that after some days, the server is caught in a restart loop after a Valve-triggered update (similar as described in #29).
The server is deployed via docker-compose and works just fine for a few days:
I'm happy to provide more details for further debugging.