Live data from Hacker News

A decade-old Steam bug

blog.freudenjmp.com

21–30 of 55 posts

Re: A decade-old Steam bug

#21
Great write up!

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

Re: A decade-old Steam bug

#22
This was a great read. I wonder if the reason for the game client surprise crashing could be investigated the same way? Do the executable integrity checks run during runtime? What if one of those fails while it’s running, do you get a different disconnection message?

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

Re: A decade-old Steam bug

#23
post #10
post #7

Earlier quoted context omitted.

If we’re nitpicking the gunplay (which I am perfectly okay with doing), how about adding in the fact that reloading with one in the chamber doesn’t give you a +1 round either? It’s like the concept of a chamber is completely ignored.

Try Insurgency: Sandstorm. It's a completely different style of gameplay, but in addition to properly simulating a chamber, it also properly simulates magazines. Reloading retains a used magazine rather than dumping the ammo back into a fungible pool. Double tapping the reload key allows for dropping the mag for a slightly faster reload. Once you've cycled through your supply of fresh mags, loading a used mag leaves…

Ah, I do play Squad and it is a similar system, as far as I know it’s only missing the double tap to drop the mag.

Re: A decade-old Steam bug

#24
post #12

The real bug is that finalizing authentication isn't a hard requirement for beginning (non LAN) multiplayer.

Or that the session ticket verification flow needs connectivity between the game server and Valve's (apparently very slow at times) auth server.

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

Re: A decade-old Steam bug

#25

I believe the flow in the diagram is what Steam calls Session Tickets and is a bit more nuanced. The game client requests session tickets from Steam's server, then it provides the game server with a ticket proving they are a given Steam ID. The game server then has to go online to Steam's web API and verify it to ensure it has not been used multiple times or tampered with. It sounds like the CS2 client is not handlin…

Yes, it's most likely a session ticket which is not clearly expressed in the article, but the issue seems to be that the game sometimes gets interrupted before it will actually create a session ticket (or rather while waiting for the response from the slow steam servers), and then join the gameserver without having one.

Re: A decade-old Steam bug

#26
post #12

The real bug is that finalizing authentication isn't a hard requirement for beginning (non LAN) multiplayer.

Or that the session ticket verification flow needs connectivity between the game server and Valve's (apparently very slow at times) auth server. 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 publ…

The problem with that approach is that a malicous server can replay tokens to impersonate players on another server.

Re: A decade-old Steam bug

#27
> This program covers the Steam platform and current games developed and published by Valve. Please review the reward tables and scope descriptions below. [...] > Effective 6/14/2023 10 AM PDT, CS:GO is out-of-scope for new reports. Reports for CS2 Limited Test are currently out-of-scope.

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

Re: A decade-old Steam bug

#29
post #14

> I'd love to get feedback 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.

Seriously, it's like a cruel joke. TL;DR - don't do this, instead read the entire article!

Re: A decade-old Steam bug

#30
Back in the day, I wrote a tool which used to display server list with active players and their scores so you could hop on a server when you see a friend is on. This was before steam existed (no such feature was available at the time).

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

Post reply on HN