Hyprland icon indicating copy to clipboard operation
Hyprland copied to clipboard

Crash when turning DPMS on from off

Open AndreasBackx opened this issue 1 month ago • 12 comments

Hyprland Version

System/Version info
Hyprland, built from branch  at commit cba1ade848feac44b2eda677503900639581c3f4  (props: bump version to 0.40.0).
Date: Sat May 4 15:42:32 2024
Tag: v0.40.0, commits: 4606

flags: (if any)


System Information:
System name: Linux
Node name: andreasbackx-fedora-MJ0HJDFH
Release: 6.8.9-300.fc40.x86_64
Version: #1 SMP PREEMPT_DYNAMIC Thu May  2 18:59:06 UTC 2024


GPU information:
61:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA102 [GeForce RTX 3080 Lite Hash Rate] [10de:2216] (rev a1) (prog-if 00 [VGA controller])


os-release: NAME="Fedora Linux"
VERSION="40 (Workstation Edition)"
ID=fedora
VERSION_ID=40
VERSION_CODENAME=""
PLATFORM_ID="platform:f40"
PRETTY_NAME="Fedora Linux 40 (Workstation Edition)"
ANSI_COLOR="0;38;2;60;110;180"
LOGO=fedora-logo-icon
CPE_NAME="cpe:/o:fedoraproject:fedora:40"
DEFAULT_HOSTNAME="fedora"
HOME_URL="https://fedoraproject.org/"
DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f40/system-administrators-guide/"
SUPPORT_URL="https://ask.fedoraproject.org/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Fedora"
REDHAT_BUGZILLA_PRODUCT_VERSION=40
REDHAT_SUPPORT_PRODUCT="Fedora"
REDHAT_SUPPORT_PRODUCT_VERSION=40
SUPPORT_END=2025-05-13
VARIANT="Workstation Edition"
VARIANT_ID=workstation


plugins:

Bug or Regression?

Bug

Description

Using the following hypridle setup, my monitors were first turned off and then swaylock (lock there is a wrapper script) was called afterwards:

general {
    lock_cmd = pidof lock || lock
    before_sleep_cmd = loginctl lock-session    # lock before suspend.
    after_sleep_cmd = hyprctl dispatch dpms on  # to avoid having to press a key twice to turn on the display.
}

listener {
    timeout = 120
    on-timeout = hyprctl dispatch dpms off        # screen off when timeout has passed
    on-resume = hyprctl dispatch dpms on          # screen on when activity is detected after timeout has fired.
}

listener {
    timeout = 300
    on-timeout = loginctl lock-session            # lock screen when timeout has passed
}

When I came back to my desk and moved my mouse, the monitors turned back on and while I was typing my password (or right after I pressed enter, unsure) Hyprland crashed.

How to reproduce

Likely by turning DPMS back on, and potentially combining it with a lock, though I don't think the lock is necesary. This combined with Nvidia and multiple monitors.

Crash reports, logs, images, videos

Crash:

--------------------------------------------
   Hyprland Crash Report
--------------------------------------------
This was an accident, I swear!

Hyprland received signal 11(SEGV)
Version: cba1ade848feac44b2eda677503900639581c3f4
Tag: v0.40.0

System info:
	System name: Linux
	Node name: andreasbackx-fedora-MJ0HJDFH
	Release: 6.8.9-300.fc40.x86_64
	Version: #1 SMP PREEMPT_DYNAMIC Thu May  2 18:59:06 UTC 2024

GPU:
	61:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA102 [GeForce RTX 3080 Lite Hash Rate] [10de:2216] (rev a1) (prog-if 00 [VGA controller])


os-release:
	NAME="Fedora Linux"
	VERSION="40 (Workstation Edition)"
	ID=fedora
	VERSION_ID=40
	VERSION_CODENAME=""
	PLATFORM_ID="platform:f40"
	PRETTY_NAME="Fedora Linux 40 (Workstation Edition)"
	ANSI_COLOR="0;38;2;60;110;180"
	LOGO=fedora-logo-icon
	CPE_NAME="cpe:/o:fedoraproject:fedora:40"
	DEFAULT_HOSTNAME="fedora"
	HOME_URL="https://fedoraproject.org/"
	DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f40/system-administrators-guide/"
	SUPPORT_URL="https://ask.fedoraproject.org/"
	BUG_REPORT_URL="https://bugzilla.redhat.com/"
	REDHAT_BUGZILLA_PRODUCT="Fedora"
	REDHAT_BUGZILLA_PRODUCT_VERSION=40
	REDHAT_SUPPORT_PRODUCT="Fedora"
	REDHAT_SUPPORT_PRODUCT_VERSION=40
	SUPPORT_END=2025-05-13
	VARIANT="Workstation Edition"
	VARIANT_ID=workstation
Backtrace:
	# | /usr/bin/Hyprland(_Z12getBacktracev+0x60) [0x55ba8d1c1140]
		getBacktrace()
		??:?
	#1 | /usr/bin/Hyprland(_ZN13CrashReporter18createAndSaveCrashEi+0x188e) [0x55ba8d15500e]
		CrashReporter::createAndSaveCrash(int)
		??:?
	#2 | /usr/bin/Hyprland(_Z25handleUnrecoverableSignali+0x68) [0x55ba8d0eed58]
		handleUnrecoverableSignal(int)
		??:?
	#3 | /lib64/libc.so.6(+0x40710) [0x7f3be7e53710]
		??
		??:0
	#4 | /usr/bin/Hyprland(+0x2913f5) [0x55ba8d2593f5]
		CGammaControlProtocol::applyGammaToState(CMonitor*)
		??:?
	#5 | /usr/bin/Hyprland(+0x105e70) [0x55ba8d0cde70]
		_start
		??:?
	#6 | /lib64/libffi.so.8(+0x9056) [0x7f3be82bc056]
		??
		??:0
	#7 | /lib64/libffi.so.8(+0x56a0) [0x7f3be82b86a0]
		??
		??:0
	#8 | /lib64/libffi.so.8(ffi_call+0x12e) [0x7f3be82bb4ee]
		??
		??:0
	#9 | /lib64/libwayland-server.so.0(+0x67e3) [0x7f3be89497e3]
		??
		??:0
	#1 | /lib64/libwayland-server.so.0(+0xb080) [0x7f3be894e080]
		??
		??:0
	#11 | /lib64/libwayland-server.so.0(wl_event_loop_dispatch+0xa2) [0x7f3be894c852]
		??
		??:0
	#12 | /lib64/libwayland-server.so.0(wl_display_run+0x35) [0x7f3be894d0d5]
		??
		??:0
	#13 | /usr/bin/Hyprland(_ZN17CEventLoopManager9enterLoopEP10wl_displayP13wl_event_loop+0x53) [0x55ba8d2197e3]
		CEventLoopManager::enterLoop(wl_display*, wl_event_loop*)
		??:?
	#14 | /usr/bin/Hyprland(main+0x863) [0x55ba8d0a5b73]
		main
		??:?
	#15 | /lib64/libc.so.6(+0x2a088) [0x7f3be7e3d088]
		??
		??:0
	#16 | /lib64/libc.so.6(__libc_start_main+0x8b) [0x7f3be7e3d14b]
		??
		??:0
	#17 | /usr/bin/Hyprland(_start+0x25) [0x55ba8d0cc455]
		_start
		??:?


Log tail:
[LOG] Hyprctl: dispatcher dpms : on
[LOG] Registered signal for owner 55ba8e0639d0: 55ba8df1c5e8 -> 55ba8e0639d8 (owner: CRenderbuffer)
[LOG] Registered signal for owner 55ba8e0a2500: 55ba8dce6ad8 -> 55ba8e0a2508 (owner: CRenderbuffer)
[LOG] Registered signal for owner 55ba9088a060: 55ba8d97ab98 -> 55ba9088a068 (owner: CRenderbuffer)
[LOG] Destroy called for monitor HDMI-A-1
[LOG] onDisconnect called for HDMI-A-1
[LOG] Callback 55ba8dd07068 -> 55ba8dd07060,  removed.
[LOG] Callback 55ba8dd071a0 -> 55ba8dd07198,  removed.
[LOG] Callback 55ba8dd07208 -> 55ba8dd07200,  removed.
[LOG] Callback 55ba8dd07270 -> 55ba8dd07268,  removed.
[LOG] Callback 55ba8dd072d8 -> 55ba8dd072d0,  removed.
[LOG] Removed monitor HDMI-A-1!
[LOG] moveWorkspaceToMonitor: Moving -98 to monitor 1
[LOG] [hookSystem] New hook event registered: moveWorkspace
[LOG] moveWorkspaceToMonitor: Moving 101 to monitor 1
[LOG] moveWorkspaceToMonitor: Plugging gap with new 13
[LOG] moveWorkspaceToMonitor: Plugging gap with existing 13
[LOG] moveWorkspaceToMonitor: SWITCHINGISACTIVE, active 3 -> 101
[LOG] Callback 55ba8dd2ab30 -> 55ba8dd2ab28, CRenderbuffer removed.
[LOG] Callback 55ba8e063a00 -> 55ba8e0639f8, CRenderbuffer removed.
[LOG] Removing monitor HDMI-A-1 from realMonitors
[LOG] Callback 55ba8dd070d0 -> 55ba8dd070c8,  removed.
[LOG] Callback 55ba8dd07138 -> 55ba8dd07130,  removed.
[LOG] Destroying workspace ID 13
[LOG] Registered signal for owner 55ba8dd06b20: 55ba8dcf7258 -> 55ba8dd07040 (owner: )
[LOG] Registered signal for owner 55ba8dd06b20: 55ba8dcf72e8 -> 55ba8dd070a8 (owner: )
[LOG] Registered signal for owner 55ba8dd06b20: 55ba8dcf72d8 -> 55ba8dd07110 (owner: )
[LOG] Registered signal for owner 55ba8dd06b20: 55ba8dcf7268 -> 55ba8dd07178 (owner: )
[LOG] Registered signal for owner 55ba8dd06b20: 55ba8dcf7278 -> 55ba8dd071e0 (owner: )
[LOG] Registered signal for owner 55ba8dd06b20: 55ba8dcf7298 -> 55ba8dd07248 (owner: )
[LOG] Registered signal for owner 55ba8dd06b20: 55ba8dcf72b8 -> 55ba8dd072b0 (owner: )
[LOG] Applying monitor rule for HDMI-A-1
[LOG] Monitor HDMI-A-1: requested [email protected], found available mode: 3840x2160@119880mHz, applying.
[LOG] output HDMI-A-1 succeeded basic test on format DRM_FORMAT_XRGB8888
[LOG] Monitor HDMI-A-1 -> destroyed all render data
[LOG] arrangeMonitors: 3 to arrange
[LOG] arrangeMonitors: DP-2 explicit [0, 0]
[LOG] arrangeMonitors: DP-3 explicit [4800, 0]
[LOG] arrangeMonitors: HDMI-A-1 explicit [1728, 865]
[LOG] arrangeMonitors: DP-2 xwayland [0, 0]
[LOG] arrangeMonitors: DP-3 xwayland [2160, 0]
[LOG] arrangeMonitors: HDMI-A-1 xwayland [4320, 0]
[LOG] Monitor HDMI-A-1 data dump: res [email protected], scale 1.25, transform 0, pos 1728x865, 10b 0
[LOG] Added new monitor with name HDMI-A-1 at [1728, 865] with size [3840, 2160], pointer 55ba8dcf71b0
[LOG] New monitor: WORKSPACEID 101, exists: 1
[LOG] moveWorkspaceToMonitor: Moving 101 to monitor 0
[LOG] moveWorkspaceToMonitor: Plugging gap with existing 5
[LOG] moveWorkspaceToMonitor: SWITCHINGISACTIVE, active 0 -> 101
[LOG] moveWorkspaceToMonitor: Moving -98 to monitor 0
[LOG] Applying monitor rule for DP-2
[LOG] Not applying a new rule to DP-2 because it's already applied!
[LOG] Applying monitor rule for DP-3
[LOG] Monitor DP-3: REJECTED available mode: [email protected]!
[ERR] Custom resolution FAILED, falling back to preferred
[ERR] Monitor DP-3 got an invalid requested mode: [email protected], using the preferred one instead: [email protected]
[LOG] output DP-3 succeeded basic test on format DRM_FORMAT_XRGB8888
[LOG] arrangeMonitors: 3 to arrange
[LOG] arrangeMonitors: DP-2 explicit [0, 0]
[LOG] arrangeMonitors: DP-3 explicit [4800, 0]
[LOG] arrangeMonitors: HDMI-A-1 explicit [1728, 865]
[LOG] arrangeMonitors: DP-2 xwayland [0, 0]
[LOG] arrangeMonitors: DP-3 xwayland [2160, 0]
[LOG] arrangeMonitors: HDMI-A-1 xwayland [4320, 0]
[LOG] Monitor DP-3 data dump: res [email protected], scale 1.25, transform 3, pos 4800x0, 10b 0
[LOG] Applying monitor rule for HDMI-A-1
[LOG] Not applying a new rule to HDMI-A-1 because it's already applied!

You can find my dotfiles at https://github.com/AndreasBackx/dotfiles/tree/main/private_dot_config/hypr

AndreasBackx avatar May 15 '24 11:05 AndreasBackx