Frustratingly, hang detection will also trigger for other unrelated reasons as well. Occasionally, it will even trigger for me on load. I believe this can happen if you have some intensive lua stuff going on at load (in my case, it would generally be printing hundreds/thousands of debug lines to infolog when testing some things).
But in practice, we end up with some very unhappy users that can actually run the games fine, but essentially take so long to load due to recurring hang detection that the host times them out. It's very frustrating from a gamedev standpoint. We end up not having any real control. Even when using hangtimeout=-1 in springsettings, it will still trigger! I keep having this come up, and every time I deal with it, but it gets more and more frustrating each time.
There have been requests in the past for hang detection's removal. For that matter, from it's inception it received a cold reception because of the issues that it caused, but most of us understand it's value. That said, it's value goes way down when it interferes with "normal" operation.
If should be noted that my descriptions to Dio of what hang detection does and what it's for are intentionally simplistic. There is nothing to be gained by giving him a full technical rundown, many aspects of which I wouldn't even necessarily fully grasp.Today's Struggle wrote:Dio BrandoToday at 9:16 AM
Hi, somebody said they could help my friend with his issue. He keeps crashing just before he loads into a match.(edited)
Scary le PooToday at 9:16 AM
Is there an error that pops up?
Dio BrandoToday at 9:17 AM
No it just says the programs stops responding.
Scary le PooToday at 9:18 AM
That's a new one
From the main lobby menu, click settings, then click pastebin infolog and put the link here
Dio BrandoToday at 9:19 AM
Alright he is doing it now.
Scary le PooToday at 9:20 AM
Dio BrandoToday at 9:21 AM
I don't know I'll ask him
ZoptoToday at 9:23 AM
Dio BrandoToday at 9:27 AM
@Scary le Poo He sent me this
Scary le PooToday at 9:30 AM
Tell him to in steam library
Right click Evo, properties, local files tab, browse local files, navigate to evo_data folder, upload infolog.txt (the entire thing) to somewhere. Pastebin.com is a good place
Dio BrandoToday at 9:33 AM
Alright I viewed his shared screen as well he isn't randomly crashing he is just stuck in a infinite 'loading please wait' state
Scary le PooToday at 9:33 AM
It's hang detection
Dio BrandoToday at 9:35 AM
I told him to be patient and he finally loaded in however it says I've left when I'm in the game waiting for him
Scary le PooToday at 9:36 AM
Yeah the server gave up waiting
Ok so the fix is
In the Evo data folder
There is a file called springsettings.cfg
Add a new line to the bottom of it in notepad and put this
That should tell hang detection to fuck off
Dio BrandoToday at 9:37 AM
Scary le PooToday at 9:39 AM
It's cause his processor is being slow to load. The engine is writing stack traces because it thinks he is going to crash
Dio BrandoToday at 9:39 AM
kk thanks I'll see if this fixes it for him
Scary le PooToday at 9:40 AM
Dio BrandoToday at 9:47 AM
Thanks it works now!
Nvm, he timed out..
Scary le PooToday at 10:08 AM
@Dio Brando ok I'm at an actual computer now
can you get me his infolog.txt?
Dio BrandoToday at 10:09 AM
Hes went offline
Idk when he will be back
Scary le PooToday at 10:13 AM
His hardware seems to be under spec
is it a laptop perchance?
What is triggering hang detection is slow loading and I believe cpu deadlock. As a result the engine thinks he is going to crash so it writes a stack trace to infolog real quick before the process can die, but then his cpu starts responding again, and then stops, which triggers another stack trace. Rinse and repeat 20 times.
There is a movement to get hang detection removed from the engine entirely, as many of the gamedevs find it irritating. But the engine devs value it for debugging purposes where otherwise they would get no stacktrace information.
So it's a bit of an ongoing battle
It only happens with really low end cpus generally
@Dio Brando try setting hangtimeout value to -1 instead of -10 and see if there is an improvement
in theory the values should achieve an identical result, so this shouldn't effect anything, but just for the sake of being thorough