GithubHelp home page GithubHelp logo

Comments (12)

tholu avatar tholu commented on September 7, 2024 2

Thanks @Nuc1eoN & @CM2Walki - happy to try this!

from csgo.

CM2Walki avatar CM2Walki commented on September 7, 2024
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?

from csgo.

tholu avatar tholu commented on September 7, 2024

@CM2Walki I already restarted the whole container, so the logs are gone. I will followup in a few days with details!

from csgo.

tholu avatar tholu commented on September 7, 2024

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 ....

from csgo.

CM2Walki avatar CM2Walki commented on September 7, 2024

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:

  1. It not being able to find the /steam.sh (which we don't have as we are using steamcmd) (I have no idea how to fix this)

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

  1. It exiting the actual srcds process, thus killing the process the container is attached to via the entry.sh
    bash "${STEAMAPPDIR}/srcds_run" -game "${STEAMAPP}" -console -autoupdate \

    This could be addressed by possibly starting the process detached with & and then attaching to "while true; sleep 5", however that will prevent the container from automatically restarting if it crashes. The easy way would be to get rid of the autoupdate.

from csgo.

tholu avatar tholu commented on September 7, 2024

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.

from csgo.

CM2Walki avatar CM2Walki commented on September 7, 2024

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.

from csgo.

Nuc1eoN avatar Nuc1eoN commented on September 7, 2024

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.

from csgo.

CM2Walki avatar CM2Walki commented on September 7, 2024

Very likely addressed by CM2Walki/steamcmd#15

from csgo.

CM2Walki avatar CM2Walki commented on September 7, 2024

See c6f9d9a

Turns out there was another problem with the autoupdate, the bash variables were not expanded correctly. Pushed a fix for that, too.

from csgo.

CM2Walki avatar CM2Walki commented on September 7, 2024

Is this issue resolved? Did you have another instance, in which the docker-compose service didn't come back up?

from csgo.

tholu avatar tholu commented on September 7, 2024

Looking good so far!

from csgo.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.