A decade-old Steam bug (blog.freudenjmp.com)
Hello HN,
this is my first detailed blog post about one of the most annoying bugs I have ever come across in my life.
Hope you like it and I'd love to get feedback :)
this is my first detailed blog post about one of the most annoying bugs I have ever come across in my life.
Hope you like it and I'd love to get feedback :)
54 comments
[ 4.8 ms ] story [ 117 ms ] threadBut apart from that, even though I've played CS since 1.4 I have never ever had the bug mentioned above.
you must be one in a million to never see that error, however. many a times when people exit server, they server would show that message in chat.
squints at a windows XP dialog in Windows 11
Loops are hard and its even more amusing how optimistic CS2.exe runs when you supply the server to connect to.
Presumably a faster and more robust solution would be for the Steam client to obtain (and hang onto) a signed token (from Valve) with a lifetime of a few hours, and whenever you connect to a game server that token is sent over where it can be validated locally against a public cert issued by Valve (that comes distributed with the game server contents).
However, it smells like self-made crypto.
You start the article with a tl;dr for people who came from google searching for a solution for the issue. How considerate!
But then you proceed to tell them what not to do and hide the actionable advice in a single sentence within a kilometer long article :)
My suggestion would be to add the workaround to the tl;dr.
About 25 Page Downs in computational units, or CTRL+F in freedom units.
* Is levelloadloop only executed when the game launches, not when joining a server and loading the map? * If the issues is that the loop is shut down before the steam auth process is started, why would the maintenance-related slowness matter?
1. Yes, only when the game launches. I think the naming of the loop is related to single player games like Portal, where this way of naming makes much more sense because you have frictionless changing of levels there.
2. You are right that is a hole in the explanation and I do not know the answer, but it is definitely a fix for the problem. Likely the details of my conclusion are incomplete but at this point I don't feel like digging deeper because it's not necessary at the moment.
The flow is detailed here[0]. The flow the article diagram suggests would be a bit concerning since an attacker could race a victim Steam ID to join a server, etc.
[0] https://partner.steamgames.com/doc/features/auth#3
I don't play CS:GO but I've seen the "No user logon" error when playing other games online, specifically Portal 2 and It Takes Two.
> I'd love to get feedback
Please put the solution in the tl;dr. The write-up is interesting for some folk, including many on HN (and myself) but the average person looking up this error could not care less about the intricacies of the code or network calls that cause the error, they just want to fix it.
(added in edit) The "You can skip to No user logon if you don’t care about the history." link that doesn't jump to the answer would be extra frustrating for someone who is just looking for the solution. From a pc there is a table of contents and the fact that there is a "Solution" section is great, but a phone user does not see that.
I do not know the exact answer of how long it takes to get into the `game` loop and it is depending on your system also. To know for sure, you can type
into the CS2 ingame console. If it shows this, you know you are ready to go: I've put the solution to tl;dr now. Thanks!My only comment here is that the trail in the article and the conclusion don't quite make sense (well, they do, but you've kind of glossed over it slightly):
> The way Counter-Strike is started: the blame factor is 90%
But also:
> We could confirm that players world wide are facing the issue outside of Esportal and thought it indeed is caused by some maintenance in the middle of the night in Washington.
Those can't both be true.
If the blame is 90% about the way counter strike is started, then the issue wouldn't be distributed over the maint window.
Rather, it seems like this is the key part that should be highlighted in the summary:
> So the last thing that happens before the game loop is started is that the Steam ID validation is initiated.
> When the initialization of levelload is incomplete (speak: CS2 has not been fully loaded/initialized), the Steam3 validation is never initiated because it is the last thing that loop wants to do.
Which is to say, that when the `steam3` server is as slow as balls during a maint window, it makes this take longer, which means you're more likely to interrupt the loop by starting a game.
So when you say:
> The way Counter-Strike is started: the blame factor is 90%
It's true.... but maybe it's also true to say:
> State of the moon: blame factor is 3% <--- isn't quite right, since this is basically the maint window?
Maybe the advice should also be: 'and give is an extra couple of minutes during 13-17 PM CET, because Value does maint in that window'
...if I understood that correctly. :)
Either way, this has happened to me, but this 'just wait a while and let it finish loading' solution is by far the most useful sensible advice about it I've ever heard. Fantastic stuff.
So maybe in the end the bugs in CS:GO and CS2 are of different nature, but I will not be able to ever proof this as CS:GO has been replaced by CS2.
Sad, but thanks! :-)
I feel like this should be rewarded in the same way as the GTA V takes forever to load-writeup. https://nee.lv/2021/02/28/How-I-cut-GTA-Online-loading-times...
Valve suck at security, sure, but with the reading of the wider HOne description, I'd peronally read it as in scope. They haven't updated the "Scope" tab to exclude "csgo.exe", so clearly that isn't reliable.
(That being said: please Valve, update the damn thing.)
While writing this tool, I sent a bad packet to a server I was testing with, and the server went down. I still have the source code (wrote it in delphi), I wonder if this thing can still crash servers, given that decade-old bugs exist :D
As others have stated, get to the point sooner.
Of course Google will shorten this article and provide that list...
I have no idea how they even develop it. Are they all sedated?
Maybe it's just one more of the unforseen consequences of Valve time.
[0] https://arstechnica.com/gaming/2023/10/theres-no-mac-version...
But if you'd like feedback, I'd suggest brutally editing down the text to be more direct and concise. You can certainly write long form, but after a few minutes it started to pile on ancillary and anecdotal paragraphs and I lost the main thread pretty quick. Add to that a random picture with an inception reference and it's starting to feel less like an informative piece and was collecting random unrelated content.
Think about what you're trying to say, say it, then go back and make sure you said it and only that. Everything else is just practice typing, not writing.
Maybe you have 3 or 4 things to say, but just say them.