ValveSoftware / Dota-2

Tracker for issues specific to Linux and Mac in the Reborn client. If you have a general issue or non-system-specific feature request please go to dev.dota2.com
471 stars 38 forks source link

Regular crashing on Linux since about a week ago. #2235

Open SirFireball3521 opened 1 year ago

SirFireball3521 commented 1 year ago

Your system information

Please describe your issue in as much detail as possible:

I really wish I could provide more info, but the crashes seem fairly random, and I can't think of any way I would be able to reproduce them. But in short, in roughly 50% of my Dota games, at some point, my game will freeze. Sometimes the music will keep playing, sometimes not. My cursor always remains trapped within the bounds of the window, and clicking doesn't register when I am alt-tabbed. My cursor also usually stays the same visually as the dota cursor, instead of reverting to my system theme. In some cases, I am able to press ctrl+alt+f2 and run killall steam in order to close the game. Other times, my entire PC will crash shortly after. My PC has not had a history of crashes or freezes, in fact I would say 75% of the crashes I have ever had have been from Dota since the start of this year.

If I decide to play another game, and I crash, and my PC doesn't get crashed as well, I will attach a log file.

I am now in low priority entirely due to this issue.

kisak-valve commented 1 year ago

Hello @SirFireball3521, can you check if downgrading libX11 from 1.8.3 to 1.8.1 or 1.8.2 has any effect on this issue?

anko commented 1 year ago

I've also been seeing this issue frequently lately. libX11 version 1.8.2.

Random full-system freezes while in-game. Audio continues. Seems random in timing, but so far always in a match, not in menus. Can also happen while watching a replay or live match. Froze 3 times in the middle of the same match yesterday, each time requiring a reboot.

I've had htop and dmesg --follow on another monitor for diagnostics, but nothing new or interesting appears in them at the time of the freeze, or at least the freeze stops them from rendering whatever they would have shown.

anko commented 1 year ago

Downgrading to libX11 1.8.1 has no effect. Same freezes happen.

With the latest freeze, I had -condebug set in the Dota 2 launch options. Last console.log entries before the freeze:

01/16 19:27:51 [GCClient] Recv msg 2582 (k_EMsgClientToGCLookupAccountNameResponse), 57 bytes
01/16 19:27:51 [GCClient] Recv msg 2582 (k_EMsgClientToGCLookupAccountNameResponse), 33 bytes
01/16 19:27:51 [GCClient] Recv msg 2582 (k_EMsgClientToGCLookupAccountNameResponse), 28 bytes
01/16 19:27:51 [GCClient] Recv msg 2582 (k_EMsgClientToGCLookupAccountNameResponse), 30 bytes
01/16 19:27:52 [AnimResource] Model models/courier/aghanim_courier/aghanim_courier.vmdl: group !embedded_sequence_data!models/courier/aghanim_courier/aghanim_courier.vmdl: missing referenced sequence "donkey_turns"
01/16 19:28:04 [RenderSystem] FrameSync() - bailing out of vkWaitForFences( fenceCount = 1 ) after 0.250002 seconds, error = VK_TIMEOUT
01/16 19:28:04 CSwapChainBase::QueuePresentAndWait() looped for 21 iterations without a present event.
01/16 19:28:04 [RenderSystem] CSwapChainVulkan::SwapBuffers(): the main thread is more than 3 frames ahead which means no swap queue images are available.  Waiting for outstanding frames...
01/16 19:28:04 [RenderSystem] FrameSync() - bailing out of vkWaitForFences( fenceCount = 2 ) after 0.250002 seconds, error = VK_TIMEOUT

This was at the start of watching a live game.

SirFireball3521 commented 1 year ago

@kisak-valve I had tried downgrading to 1.8.2-2 for that older issue, if I remember correctly this crash persisted.

I also just remembered that I once crashed while trying to look at the # of tries I had on getting the ultra rare hoodwink immortal from the 1st immortal chest in the battlepass. Once I get home I will try to reproduce that, but I thought I should mention it.

SirFireball3521 commented 1 year ago

I have been able to reproduce this bug:

  1. Open dota
  2. Look at the Immortal Treasure 1 from the recent battlepass
  3. Click on Hoodwink to zoom in
  4. Click the upwards facing arrow to view the chance per treasure opened
  5. Wait 5-10 seconds
  6. Game freezes.

In this case, it's not as bad, because you can click outside of the game while on this screen and kill the process using a terminal window on a second window. However, pressing the "stop" button in the steam library, exiting steam and pressing "exit now" in the popup that says "waiting for Dota 2", or even running killall steam will not close the Dota window. I had to run ps -aux | grep steam, find the exact process ID, and then run kill -9 on it in order to close the game window.

I found 4 log files created from this, I have attached all of them as a single zip file. assert_202301161.zip

I was running steam in the command line, but did not see any output when the crash occurred. There were some messages which seemed to be about a "reaper" failing to kill certain PIDs, but I couldn't copy them out unfortunately.

Edit: I'm beginning to think that there are multiple things wrong with dota on my PC. This may not be the same crash as the one I got yesterday. At the very least, this will be a place to start though.

SirFireball3521 commented 1 year ago

I played 2 bot games, it froze in the second and I killed steam via command line, here is the log from that: assert_20230116181029_40.tar.gz

homeisfar commented 1 year ago

I've been encountering a similar situation also since about 1 week ago. I also upgraded my CPU from a Ryzen 1700 to 5700X about a week ago, and thought maybe that was related but now I'm suspecting not because after significant testing the only program on my computer that gives me problems is Dota.

I'm on Fedora 37 with the proprietary 525.78.01 Nvidia driver for my GTX 1070, with Gnome as my DE under Xorg. I also tried downgrading the driver to 525.60.11, which turned out to be a big waste of time because the problem persisted. I've never had freezing issues with Dota before.

I haven't been able to reproduce the problem on demand, but the most reproducible condition I can find is "a lot of stuff happens at once" e.g. monkey king uses boundless strike and hits a lot of units simultaneously in a mid-game team fight. It seems to spike my GPU utilization to 100% (which basically never happened before on my Ryzen 1700, where the CPU was the bottleneck) and the game freezes. I think every time this happens some audio continues to play. Usually I get out of the situation by switching to another virtual desktop, after a significant delay, and then either switch again to steam and stop the game from the client or just issue a sigkill -9 to Dota. The computer continues to run fine, but I notice in Vulkan applications they can sometimes momentarily hang the GPU in certain bad situations (source: I've been writing a Vulkan application in my personal time).

My current workaround is to use OpenGL as the renderer. No issues with freezing since, but unrelated graphical artifacts do occur occasionally for which I'd open another issue if I could document it.

For the record, Fedora 37 ships with libX11 v1.8.1. I haven't tried a Wayland session.

u00101010 commented 1 year ago

I have been able to reproduce this bug:

1. Open dota

2. Look at the Immortal Treasure 1 from the recent battlepass

3. Click on Hoodwink to zoom in

4. Click the upwards facing arrow to view the chance per treasure opened

5. Wait 5-10 seconds

6. Game freezes.

I also managed to reproduce the crash with these exact steps.

Here are my system details: https://gist.github.com/u00101010/9c341a97208097bb034d2034eb8fc9c3

I'm not sure if this can be related or not but steam and dota are installed and running from different partitions.

Edit: I also tried with OpenGL enabled and it doesn't crash, so it's probably Vulkan related.

u00101010 commented 1 year ago

Furthermore, I can also provide the following match ID:

6982633029

This was the game where I (Void Spirit) crashed and got disconnected twice, earning me an abandon. It might be useful to see what was going on at the time of disconnection in-game, though both scenarios were different from my perspective.

homeisfar commented 1 year ago

Today's update removed OpenGL. I gave it another test and Dota still freezes with the Vulkan renderer. I think my new workaround is to cap the game to 60fps, as the best reproducible condition for me still seems to be some effect spiking my GPU's utilization to 100% when I set the frame rate limit to 240. I do that for testing purposes because it occurs more reliably that way, but it still occurs for me with a 144FPS cap. In the past I also tried capping the frame rate to 30 with MangoHud and didn't hit a freeze like that.

I'm on Fedora 37 with the Nvidia 525.89.02 driver.

zdave commented 1 year ago

I've also been seeing freezes. Mostly in the menu luckily... doesn't seem to happen much in game. I'm on Arch with the Nvidia 525.89.02 driver. Card is a 2080 Ti. Looks like the GPU is locking up; when the freezes happen I see messages like "NVRM: Xid (PCI:0000:0a:00): 109, pid=909286, name=dota2, Ch 00000046, errorString CTX SWITCH TIMEOUT, Info 0x2c02e" in the kernel log. I had been working around this issue by using the OpenGL renderer... that has now been removed of course.

u00101010 commented 1 year ago

With the FPS capped at 60, I do not seem to get any crashes. However, I do get significant performance drops when the playfield is crowded. If it's just me or other heroes/buildings visible on screen, it's fine, however, in teamfights and such I get very harsh fps drops that are very noticeable. Doesn't freeze or anything, it's just lagging.

It's interesting because before this, the Vulkan version had better performance (until it crashed).

Using 525.89.02 driver and EndeavourOS(Arch).