hyprwm / Hyprland

Hyprland is an independent, highly customizable, dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
https://hyprland.org
BSD 3-Clause "New" or "Revised" License
21.96k stars 912 forks source link

Freeze on attempting to start Overwatch 2 from Steam #5775

Closed derethil closed 6 months ago

derethil commented 7 months ago

Hyprland Version

System/Version info ```sh Hyprland, built from branch main at commit 90a53aed59be6bac45c13eac954471d56ac23375 (CrashReporter: fix deadlocks by making it mostly async-signal-safe (5771)). Date: Sat Apr 27 12:38:48 2024 Tag: v0.39.1-90-g90a53aed, commits: 4550 flags: (if any) System Information: System name: Linux Node name: linux-pc Release: 6.8.7-arch1-2 Version: #1 SMP PREEMPT_DYNAMIC Fri, 19 Apr 2024 09:51:31 +0000 GPU information: 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA104 [GeForce RTX 3070] [10de:2484] (rev a1) (prog-if 00 [VGA controller]) os-release: NAME="EndeavourOS" PRETTY_NAME="EndeavourOS" ID="endeavouros" ID_LIKE="arch" BUILD_ID="2023.11.17" ANSI_COLOR="38;2;23;147;209" HOME_URL="https://endeavouros.com" DOCUMENTATION_URL="https://discovery.endeavouros.com" SUPPORT_URL="https://forum.endeavouros.com" BUG_REPORT_URL="https://forum.endeavouros.com/c/arch-based-related-questions/bug-reports" PRIVACY_POLICY_URL="https://endeavouros.com/privacy-policy-2" LOGO="endeavouros" plugins: hyprexpo by Vaxry ver 1.0 XWayland Primary Display by Zakk ver 1.0 ```

Bug or Regression?

Bug

Description

When I try to start Overwatch 2, Hyprland freezes and the entire system locks up, requiring a hard reboot to get back in.

I've done a git bisect and it seems to be caused by the latest commit, 90a53a.

How to reproduce

  1. Start Hyprland
  2. Start Steam
  3. Start Overwatch 2

Crash reports, logs, images, videos

hyprland.log

vaxerski commented 7 months ago

@virchau13 as the regressor, any thoughts?

vaxerski commented 7 months ago

also please test without plugins

derethil commented 7 months ago

Still happens when plugins are disabled.

However, without hyprXPrimary managing my primary monitor for xwayland, I did notice that Hyprland only crashes if I set the primary monitor with xrandr --output DP-1 --primary. If I leave randr with no primary monitor, Overwatch launches fine (although it's still unusable because the resolution is set to my other monitor's resolution).

Scratch that, it's still freezing. I don't know how it worked several times in a row for my testing but something was weird

vaxerski commented 7 months ago

sooo... hyprland crashes and deadlocks most likely...? odd because the commit shouldnt change anything outside of the actual cases when you've already crashed

exvh commented 7 months ago

from my understanding hyprland has a bug with wine applications being full screened

virchau13 commented 7 months ago

@virchau13 as the regressor, any thoughts?

My commit only affects the handleUnrecoverableSignal() code path, so I highly doubt it's the reason for the crash.

I suspect that there was some type of memory corruption bug already present in the codebase, and the reshuffling of addresses caused by my change just made it way easier to trigger.

@derethil can you try (ideally with a debug-compiled version of Hyprland):

  1. Start Overwatch 2
  2. Wait for deadlock
  3. Wait 15 seconds. If Hyprland doesn't automatically close after 15 seconds, then this is not a crash handler deadlock.
  4. If your Hyprland is still frozen, press SysRq+R and then Ctrl+Alt+F3 to switch to a new TTY. (SysRq+R takes the keyboard back from Hyprland.)
  5. Run sudo gdb -p $(pgrep Hyprland) to attach gdb to the Hyprland process.
  6. Run backtrace.
  7. Send it here.
derethil commented 7 months ago

I can't seem to reproduce it in a debug-compiled version of Hyprland, which is.... odd lol.

I'm not sure if a non debug-compiled Hyprland version will be of any use, but backtrace showed this: backtrace.txt

Additionally, when I was trying to do all of that at one point Hyprland actually did crash (not freeze) upon starting Overwatch. So here's that crashlog, if that's helpful. hyprlandCrashReport7197.txt

Agent00Ming commented 7 months ago

Overwatch 2 no longer randomly crashes.

proton 9.0 regression

derethil commented 6 months ago

This is no longer happening after updating to v0.40 so I'll close this and re-open if it appears again.