lloesche / valheim-server-docker

Valheim dedicated gameserver with automatic update, World backup, BepInEx and ValheimPlus mod support
https://hub.docker.com/r/lloesche/valheim-server
Apache License 2.0
1.96k stars 276 forks source link

Server auto update didn't detect latest update #7

Closed Rora closed 3 years ago

Rora commented 3 years ago

I have the server running since yesterday, it's working great; thank you for your work :D.

However this morning there was a Valheim update that didn't get picked up. I checked the containers logs and /root/Steam/logs/stderr.txt but nothing out of the ordinary. The update script just said that it was the latest version. However when a client tried to connect there was a version mismatch.

I worked around this by recreating the container, the new container then went ahead and downloaded the latest version.

highstrike commented 3 years ago

I also have this problem, but I also had the oposite issue as well, where the server would restart constantly and disconnect me even though there was no update to begin with.

Now, I get a version missmatch, it was updating so much and yet still couldn't update to the latest version 😂

InB4DevOps commented 3 years ago

I haven't tried the auto update cause I restarted my server (to see if it would make a difference for the high idle cpu load I'm seeing) but doesn't steamcmd check for and download updates once you restart the container? It did for me.

highstrike commented 3 years ago

steamcmd check for and download updates once you restart the container? It did for me.

It should, but in my case I had to recreate the container as well, just like @Rora said, because it still said I had a version missmatch, it wasn't up to date!

highstrike commented 3 years ago

Actually nevermind that...

I forgot to update the game client on my machine, all along I thought the server wasn't updated when in reality my client wasn't updated 😅

lloesche commented 3 years ago

I can confirm that my container also did not update the game. I had to restart the container for the latest version to get downloaded.

I haven't quite figured out why yet though. As the code that downloads the server on startup and the code that periodically checks for updates is one and the same line of code: https://github.com/lloesche/valheim-server-docker/blob/7f7d740208c6f6c1cb1caac484c4c0e76a5b1841/valheim-updater#L26

@highstrike your issue with the restarts has been solved a bit ago. Once you pull the latest container image from Dockerhub it should be gone. The problem is described here https://github.com/lloesche/valheim-server-docker/blob/7f7d740208c6f6c1cb1caac484c4c0e76a5b1841/valheim-updater#L23-L25 Basically the Valheim dedicated server package also contains the file server_exit.drp which is used to shut down the server. So whenever the system would look for updates (every 15 Minutes by default) it would shutdown the server. Then when the server started it would remove that file and on next update check it would be recreated. I've already submitted a bug report with Iron Gate. The control file should not be part of the server package.

The workaround/fix for this was to remove the +validate option from steamcmd, which normally checks all existing files and if some are missing or corrupt redownloads them.

I wonder if the removal of +validate also made it so that steamcmd didn't pick up the most recent update. If that is the case I can think of a fix. Basically I'll have steamcmd download to a temporary folder, remove the control file that shuts down the server and rsync any changed data over to the actual server directory.

I'll look more into this once I'm home later today.

highstrike commented 3 years ago

Yeah, or have Iron Gate remove server_exit.drp from the package and then add +validate back which should fix the server not updating to the latest version 👍🏻