I hope you'll update sv_pure to work after you convert the game to the new
content delivery system, not like in all Valve games using the NCF & ACF
(CS GO) system where it is broken.

2011/12/16 Fletcher Dunn <fletch...@valvesoftware.com>

> Sorry, I shouldn't have joined in with the shooting-from-the-hip
> debugging.  I tossed out a troubleshooting suggestion, which I probably
> shouldn't have done.  I was just looking for something that might be
> different from this update compared to previous ones, to cause the problem.
>  Looks like everybody but the original poster and me already knew that
> steam.inf just doesn't update properly and it's a longstanding problem.
>
> The update process...could use some improvement.  We know.  It will happen
> when we convert the entire game to the new content delivery system.
>
> Thanks,
> - Fletch
>
> -----Original Message-----
> From: hlds_linux-boun...@list.valvesoftware.com [mailto:
> hlds_linux-boun...@list.valvesoftware.com] On Behalf Of PharaohsPaw
> Sent: Friday, December 16, 2011 9:05 AM
> To: HLDS Linux
> Subject: [hlds_linux] (ATTN: Valve) steam.inf missing and other
> "incomplete update" problems
>
> Although I've said much of this already I'm making a separate post in its
> own topic in hopes that Valve will give it some serious consideration, and
> more importantly, do something about it to fix the problem.  I am thankful
> that Valve staff does pay attention to this mailing list.
>
> The subject of this post is a problem that has been around for a long
> time.  I have been operating public gameservers off and on since 2006 and
> have seen this occur with some update releases pretty much since then.  I
> am not the first person to say this happens, and I am also pretty sure this
> is not the first time I had something to say about it here.
>
> In short, the problem is incomplete updates.  It seems that the
> (gamedir)/steam.inf file is the file most often left out of updates, but
> sometimes other updated or new files are involved.  Sometimes (apparently)
> files that an "updated" server will crash without are missed.
>
> SCOPE OF PROBLEM
> I should point out that I am specifically referring only to update
> scenarios where the updater for a particular gameserver "tree" initiates an
> update, pulls in files, AND RECEIVES A SUCCESSFUL "HLDS Installation Is Up
> to Date" MESSAGE FROM THAT MASTER AND THE STEAM BINARY RESPONSIBLE FOR
> UPDATING THE SERVER FILES EXITS WITH A 0 RETURN CODE when there are
> actually files missing and the server cannot run properly afterwards as a
> result.
>
> The scenario in question also involves NOT using -verify_all among the
> arguments passed to the steam binary to perform the update.
>
> Whether the server in question is just using srcds_run with -autoupdate
> among the command line arguments, or using nemrun or any other
> properly-written script isn't important.
>
> While it is possible to have incorrectly-written scripts to run and/or
> update our servers, that isn't what I'm talking about here.  Nemrun and
> other properly-written update scripts do not run "./steam -command update
> -game tf -dir ." (or whatever) only once and ASSUME the update was
> successful.  We can't do that because it is fairly common to get a
> connection reset from whichever master we are pulling the update from
> before it is complete.  It has to check the return code from the steam
> binary doing the update, and if it isn't 0, you have to repeat until it IS
> 0.
>
> Also, it needs to be understood by anyone at Valve investigating this
> problem that neither nemrun, nor any other script (including your own
> srcds_run with used with -autoupdate) that I'm talking about does anything
> more than call the steam binary with "-command update".  Nemrun in
> updatedaemon mode may have its own implementation of checking in with steam
> to see if an update is needed, but it does comply with your protocols, and
> even when it does start an update, it only does it because your masters
> said a required update was available.  And it calls the same steam binary
> to do the actual updating that srcds_run does.
>
> Guess why the steam.inf file is so important?  This isn't specific to
> nemrun, by the way.  It tells the dedicated server which version to report
> to the steam masters.  So its contents (or existence) means everything to
> that dedicated server when it checks in with the masters.  You could be
> 100% in sync with the latest dedicated server files, and edit steam.inf to
> show an older version, and the next time your server checks in with the
> masters it is going to tell you that you need to update.  And until your
> steam.inf file has the same patch level/version that the masters think is
> the latest required version, your server will keep telling you to restart
> for the latest update.  The same is true if the file isn't there at all.
> So it's not just nemrun that needs this file.  It needs it for the same
> reasons the gameserver itself does.
>
> The nemrun scripts are out there for Valve and anybody else to look at.
> Please look at them before you say nemrun is the problem.  It isn't.
>
> So what IS going on?  As far as I'm concerned we have a couple of
> different issues here:
>
> 1. The steam binary can remove the existing steam.inf file while updating
> a server, even if it doesn't have an updated one to replace it with.
>
> 2. The steam binary will exit with a 0 return code and claim that the HLDS
> Installation is Up To Date when the server hasn't been fully updated.
>
> Anyone seeing a pattern yet?
>
> STEAM BINARY
>
> Now, let's talk about distributing updates among your masters.  Here are a
> couple questions anyone thinking about this rationally should ask:
>
> 1. Why does a master server tell you that an update is available if it
> doesn't have ALL of the updated files yet?  If it doesn't have all the
> updated files, it should not be telling you to restart your server UNTIL IT
> DOES.
>
> 2. Why does the steam binary exit with a 0 RETURN CODE (successful) AND
> EVEN TELL YOU 'HLDS Installation is Up To Date' if it doesn't have all the
> files that got updated?
>
>
> SUGGESTIONS
> I don't have visibility of the inner workings of Valve's content
> distribution system and I am not aware of whatever policies and procedures
> you may have for releasing updates.  (and I am not sure I would want to
> either, heh).  So I have to admit I am making some guesses here.  But I
> have a few suggestions that I think would be relevant.
>
> 1. Look at the "protocol" used by your masters, or maybe just policies and
> procedures for deploying updates onto them, which control when to start
> issuing Server Out of Date messages to dedicated servers, so that they will
> absolutely not under any circumstance start telling the dedicated servers
> heartbeating in that they need to restart/update UNTIL IT HAS
> *ALL* OF THE UPDATED FILES READY TO SERVE.
>
> 2. If files and directories that need to be pushed out as updated content
> have to be "flagged" by the folks preparing the updates for the masters to
> know which files it is supposed to push out to the dedicated servers for an
> update, HAVE SOMEONE QA CHECK THE FLAGGED FILES/DIRS LIST before the update
> release is approved (and the master servers start using it) to make sure
> files weren't left off the list.  ESPECIALLY THE STEAM.INF FILE.  The
> steam.inf file is ALWAYS updated for mandatory updates.  So checking the
> updated files list should ALWAYS require making sure steam.inf is marked as
> a file to push out.
>
> 3. It is possible that nemrun or other scripts like it are talking
> indirectly to a master (through an API) that isn't "in sync" with whichever
> master server the steam binary will talk to to pull in the update.  This is
> still not nemrun's fault.  The nemrun script is using SteamAPI now to see
> if an update is available.
> (https://api.steampowered.com).  If this API is telling "anyone that asks"
> that a required update is out before any (AND ALL) of the master servers
> the steam binary will actually pull the update in from has the complete set
> of update files ready to serve, then this needs to be fixed.  My suggestion
> would be that api.steampowered.com be the LAST thing you guys push to -
> ie, only after ALL of the steam masters that will be serving updated
> content have 100% of the update and are ready to serve it.  So the API host
> won't say there is an update until it's ready to be served.
>
> CONCLUSION
> Rather than just telling people "-verify_all" is the only recommended or
> supported way to update your gameserver, find and fix the problems that
> make a "./steam -command update" fail sometimes without -verify_all added
> -- even if only to help yourselves out with the load on the masters when
> updates get released.  I suspect the answer lies in one or more of the
> items noted above.
>
> People don't like to use -verify_all to get updates because it takes
> FOREVER to finish.  Doing an update without -verify_all usually only takes
> a minute or so - whether doing that gets you a complete updated server or
> not depends entirely on what the steam binary pulls in.  Nothing else.
> You can't blame nemrun or something else when the steam binary exits with
> a 0 return code and says "HLDS Installation Up To Date".
>
> Cheers.
>
> _______________________________________________
> To unsubscribe, edit your list preferences, or view the list archives,
> please visit:
> https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlds_linux
>
> _______________________________________________
> To unsubscribe, edit your list preferences, or view the list archives,
> please visit:
> https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlds_linux
>



-- 
Best regards,
AnAkIn
_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please 
visit:
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlds_linux

Reply via email to