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
20.94k stars 879 forks source link

Disabling monitor after disconnecting crashes Hyprland #6788

Open matejdro opened 3 months ago

matejdro commented 3 months ago

Regression?

No

System Info and Version

System/Version info ```sh Hyprland, built from branch at commit 918d8340afd652b011b937d29d5eea0be08467f5 (flake.lock: update). Date: Tue Jun 25 12:06:02 2024 Tag: v0.41.2, commits: 4886 flags: (if any) System Information: System name: Linux Node name: KOMP Release: 6.9.7-arch1-1 Version: #1 SMP PREEMPT_DYNAMIC Fri, 28 Jun 2024 04:32:50 +0000 GPU information: 28:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 21 [Radeon RX 6950 XT] [1002:73a5] (rev c0) (prog-if 00 [VGA controller]) os-release: NAME="Arch Linux" PRETTY_NAME="Arch Linux" ID=arch BUILD_ID=rolling ANSI_COLOR="38;2;23;147;209" HOME_URL="https://archlinux.org/" DOCUMENTATION_URL="https://wiki.archlinux.org/" SUPPORT_URL="https://bbs.archlinux.org/" BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues" PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/" LOGO=archlinux-logo plugins: hypreasymotion by Zakk ver 1.0 ```

Description

I was migrating my monitor change scripts from X11 to Hyperland and I've noticed Hyperland was crashing after disabling a monitor.

It appears that this statement is redundant anyway, since monitor appears to be auto-disabled anyway when disconnecting, so I removed it to fix the issue. But I think it shouldn't crash regardless, so I made this bug report

How to reproduce

  1. Disconnect monitor
  2. Several seconds after disabling, run hyprctl keyword monitor HDMI-A-1,disable

Crash reports, logs, images, videos

                                         Stack trace of thread 763:
                                         #0  0x00007cb1f43bde44 n/a (libc.so.6 + 0x94e44)
                                         #1  0x00007cb1f4365a30 raise (libc.so.6 + 0x3ca30)
                                         #2  0x00007cb1f434d4c3 abort (libc.so.6 + 0x244c3)
                                         #3  0x00005e7a5de37f97 _Z25handleUnrecoverableSignali (Hyprland + 0x141f97)
                                         #4  0x00007cb1f4365ae0 n/a (libc.so.6 + 0x3cae0)
                                         #5  0x00005e7a5df26c39 _ZN8CMonitor12onDisconnectEb (Hyprland + 0x230c39)
                                         #6  0x00005e7a5e0ca81b _ZN13CHyprRenderer16applyMonitorRuleEP8CMonitorP12SMonitorRuleb (Hyprland + 0x3d481b)
                                         #7  0x00005e7a5de92152 _ZN14CConfigManager19ensureMonitorStatusEv (Hyprland + 0x19c152)
                                         #8  0x00005e7a5decc278 _Z13hyprCtlFDTickijPv (Hyprland + 0x1d6278)
                                         #9  0x00007cb1f4d480a2 wl_event_loop_dispatch (libwayland-server.so.0 + 0xa0a2)
                                         #10 0x00007cb1f4d4a10f wl_display_run (libwayland-server.so.0 + 0xc10f)
                                         #11 0x00005e7a5df93f69 _ZN17CEventLoopManager9enterLoopEP10wl_displayP13wl_event_loop (Hyprland + 0x29df69)
                                         #12 0x00005e7a5ddfbd5b main (Hyprland + 0x105d5b)
                                         #13 0x00007cb1f434ec88 n/a (libc.so.6 + 0x25c88)
                                         #14 0x00007cb1f434ed4c __libc_start_main (libc.so.6 + 0x25d4c)
                                         #15 0x00005e7a5de34e25 _start (Hyprland + 0x13ee25)

                                         Stack trace of thread 790:
                                         #0  0x00007cb1f43b84e9 n/a (libc.so.6 + 0x8f4e9)
                                         #1  0x00007cb1f43baed9 pthread_cond_wait (libc.so.6 + 0x91ed9)
                                         #2  0x00007cb1edc9d47e n/a (radeonsi_dri.so + 0x9d47e)
                                         #3  0x00007cb1edc7b22c n/a (radeonsi_dri.so + 0x7b22c)
                                         #4  0x00007cb1edc9d3ad n/a (radeonsi_dri.so + 0x9d3ad)
                                         #5  0x00007cb1f43bbded n/a (libc.so.6 + 0x92ded)
                                         #6  0x00007cb1f443f0dc n/a (libc.so.6 + 0x1160dc)

                                         Stack trace of thread 791:
                                         #0  0x00007cb1f43b84e9 n/a (libc.so.6 + 0x8f4e9)
                                         #1  0x00007cb1f43baed9 pthread_cond_wait (libc.so.6 + 0x91ed9)
                                         #2  0x00007cb1edc9d47e n/a (radeonsi_dri.so + 0x9d47e)
                                         #3  0x00007cb1edc7b22c n/a (radeonsi_dri.so + 0x7b22c)
                                         #4  0x00007cb1edc9d3ad n/a (radeonsi_dri.so + 0x9d3ad)
                                         #5  0x00007cb1f43bbded n/a (libc.so.6 + 0x92ded)
                                         #6  0x00007cb1f443f0dc n/a (libc.so.6 + 0x1160dc)

                                         Stack trace of thread 792:
                                         #0  0x00007cb1f43b84e9 n/a (libc.so.6 + 0x8f4e9)
                                         #1  0x00007cb1f43baed9 pthread_cond_wait (libc.so.6 + 0x91ed9)
                                         #2  0x00007cb1edc9d47e n/a (radeonsi_dri.so + 0x9d47e)
                                         #3  0x00007cb1edc7b22c n/a (radeonsi_dri.so + 0x7b22c)
                                         #4  0x00007cb1edc9d3ad n/a (radeonsi_dri.so + 0x9d3ad)
                                         #5  0x00007cb1f43bbded n/a (libc.so.6 + 0x92ded)
                                         #6  0x00007cb1f443f0dc n/a (libc.so.6 + 0x1160dc)

                                         Stack trace of thread 788:
                                         #0  0x00007cb1f43b84e9 n/a (libc.so.6 + 0x8f4e9)

(For some reason I cannot reproduce the issue anymore, so this stacktrace is all i've got, I have since rebooted the machine, so no full logs unfortunately)

topaxi commented 2 months ago

Similar situation, switching monitor source crashes Hyprland.

hyprlandCrashReport1619.txt