Hyprland: Hyprland crashes when turning off monitor
Hyprland Version
System/Version info
- hyperland version 0.35.0-37.3
λ hyprctl systeminfo
Hyprland, built from branch at commit dirty ().
Date:
Tag:
flags: (if any)
System Information:
System name: Linux
Node name: xor
Release: 6.6.11-1-default
Version: #1 SMP PREEMPT_DYNAMIC Thu Jan 11 08:01:39 UTC 2024 (05ae4ad)
GPU information:
44:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 31 [Radeon RX 7900 XT/7900 XTX] [1002:744c] (rev cc) (prog-if 00 [VGA controller])
os-release: NAME="openSUSE Tumbleweed"
# VERSION="20240213"
ID="opensuse-tumbleweed"
ID_LIKE="opensuse suse"
VERSION_ID="20240213"
PRETTY_NAME="openSUSE Tumbleweed"
ANSI_COLOR="0;32"
# CPE 2.3 format, boo#1217921
CPE_NAME="cpe:2.3:o:opensuse:tumbleweed:20240213:*:*:*:*:*:*:*"
#CPE 2.2 format
#CPE_NAME="cpe:/o:opensuse:tumbleweed:20240213"
BUG_REPORT_URL="https://bugzilla.opensuse.org"
SUPPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://www.opensuse.org"
DOCUMENTATION_URL="https://en.opensuse.org/Portal:Tumbleweed"
LOGO="distributor-logo-Tumbleweed"
plugins:
Bug or Regression?
Bug
Description
I’ve now gotten this crash for the second time. It seems to not happen 100% consistently.
Core was generated by `Hyprland'.
Program terminated with signal SIGABRT, Aborted.
#0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
44 return INTERNAL_SYSCALL_ERROR_P (ret) ? INTERNAL_SYSCALL_ERRNO (ret) : 0;
[Current thread is 1 (Thread 0x7f22c4816ac0 (LWP 3065))]
(gdb) bt
#0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1 0x00007f22c55c9a73 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
#2 0x00007f22c5576176 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3 0x00007f22c555d917 in __GI_abort () at abort.c:79
#4 0x000055dbbcd9c9b6 in handleUnrecoverableSignal(int) (sig=11) at ../src/Compositor.cpp:34
#5 0x00007f22c5576240 in <signal handler called> () at /lib64/libc.so.6
#6 operator() (__closure=0x0, x=<optimized out>, y=<optimized out>, data=<optimized out>, surf=0x55dbbe692dc0) at ../src/Window.cpp:361
#7 _FUN(wlr_surface*, int, int, void*) () at ../src/Window.cpp:366
#8 0x000055dbbcf1ab0e in surface_for_each_surface(wlr_surface*, int, int, wlr_surface_iterator_func_t, void*)
(surface=0x55dbbe692dc0, x=0, y=0, iterator=0x55dbbcdd4c80 <_FUN(wlr_surface*, int, int, void*)>, user_data=0x55dbbe89a2d0) at ../subprojects/wlroots/types/wlr_compositor.c:1151
#9 0x000055dbbcdd4c0d in CWindow::updateSurfaceScaleTransformDetails() (this=0x55dbbe89a2d0) at ../src/Window.cpp:326
#10 CWindow::updateToplevel() (this=0x55dbbe89a2d0) at ../src/Window.cpp:311
#11 0x000055dbbce4167a in Events::listener_setTitleWindow(void*, void*) (owner=<optimized out>, data=<optimized out>) at ../src/events/Windows.cpp:895
#12 0x000055dbbce564e7 in std::function<void (void*, void*)>::operator()(void*, void*) const (__args#1=<optimized out>, __args#0=<optimized out>, this=<optimized out>)
at /usr/include/c++/13/bits/std_function.h:591
#13 CHyprWLListener::emit(void*) (data=0x0, this=<optimized out>) at ../src/helpers/WLListener.cpp:61
#14 handleWrapped(wl_listener*, void*) (listener=0x55dbbe89a470, data=0x0) at ../src/helpers/WLListener.cpp:14
#15 0x00007f22c60764ac in wl_signal_emit_mutable (signal=<optimized out>, data=0x0) at ../src/wayland-server.c:2241
#16 0x00007f22c5531962 in ffi_call_unix64 () at ../src/x86/unix64.S:104
#17 0x00007f22c552e2df in ffi_call_int (cif=cif@entry=0x7ffd9f6b4400, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=closure@entry=0x0) at ../src/x86/ffi64.c:673
#18 0x00007f22c5530f26 in ffi_call (cif=cif@entry=0x7ffd9f6b4400, fn=<optimized out>, rvalue=rvalue@entry=0x0, avalue=avalue@entry=0x7ffd9f6b44d0) at ../src/x86/ffi64.c:710
#19 0x00007f22c60750a8 in wl_closure_invoke (closure=closure@entry=0x55dbbe618df0, target=<optimized out>, target@entry=0x55dbbe53e160, opcode=opcode@entry=2, data=<optimized out>,
data@entry=0x55dbbe488cf0, flags=2) at ../src/connection.c:1025
#20 0x00007f22c6079408 in wl_client_connection_data (fd=<optimized out>, mask=<optimized out>, data=<optimized out>) at ../src/wayland-server.c:438
#21 0x00007f22c6077e62 in wl_event_loop_dispatch (loop=0x55dbbd732820, timeout=timeout@entry=-1) at ../src/event-loop.c:1027
#22 0x00007f22c60785c5 in wl_display_run (display=0x55dbbd732730) at ../src/wayland-server.c:1493
#23 0x000055dbbcd85734 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /usr/include/c++/13/bits/unique_ptr.h:199
Full backtrace is attached.
How to reproduce
swaylock
- turn off monitor
- come back hours later
- see above coredump, sometimes
Crash reports, logs, images, videos
Full backtrace:
(gdb) bt full
#0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
tid = <optimized out>
ret = 0
pd = <optimized out>
old_mask = {
__val = {0}
}
ret = <optimized out>
#1 0x00007f22c55c9a73 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
#2 0x00007f22c5576176 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
ret = <optimized out>
#3 0x00007f22c555d917 in __GI_abort () at abort.c:79
save_stage = 1
act = {
__sigaction_handler = {
sa_handler = 0x20,
sa_sigaction = 0x20
},
sa_mask = {
__val = {0, 0, 0, 0, 139784005615624, 140727278057304, 139787321797856, 0, 0, 140727278057000, 139787321796352, 139787321796240, 139787321796256, 140727278057968, 17854534424936460032, 97}
},
sa_flags = 11,
sa_restorer = 0x55dbbe692dc0
}
#4 0x000055dbbcd9c9b6 in handleUnrecoverableSignal(int) (sig=11) at ../src/Compositor.cpp:34
#5 0x00007f22c5576240 in <signal handler called> () at /lib64/libc.so.6
#6 operator() (__closure=0x0, x=<optimized out>, y=<optimized out>, data=<optimized out>, surf=0x55dbbe692dc0) at ../src/Window.cpp:361
PMONITOR = 0x0
PSURFACE = 0x55dbbe89ab58
#7 _FUN(wlr_surface*, int, int, void*) () at ../src/Window.cpp:366
#8 0x000055dbbcf1ab0e in surface_for_each_surface(wlr_surface*, int, int, wlr_surface_iterator_func_t, void*)
(surface=0x55dbbe692dc0, x=0, y=0, iterator=0x55dbbcdd4c80 <_FUN(wlr_surface*, int, int, void*)>, user_data=0x55dbbe89a2d0) at ../subprojects/wlroots/types/wlr_compositor.c:1151
subsurface = <optimized out>
#9 0x000055dbbcdd4c0d in CWindow::updateSurfaceScaleTransformDetails() (this=0x55dbbe89a2d0) at ../src/Window.cpp:326
#10 CWindow::updateToplevel() (this=0x55dbbe89a2d0) at ../src/Window.cpp:311
#11 0x000055dbbce4167a in Events::listener_setTitleWindow(void*, void*) (owner=<optimized out>, data=<optimized out>) at ../src/events/Windows.cpp:895
PWINDOW = 0x55dbbe89a2d0
PEVENTVEC = 0x55dbbe64eae0
PEVENTVEC = 0x55dbbe85bc20
#12 0x000055dbbce564e7 in std::function<void (void*, void*)>::operator()(void*, void*) const (__args#1=<optimized out>, __args#0=<optimized out>, this=<optimized out>)
at /usr/include/c++/13/bits/std_function.h:591
pWrap = 0x55dbbe89a470
#13 CHyprWLListener::emit(void*) (data=0x0, this=<optimized out>) at ../src/helpers/WLListener.cpp:61
pWrap = 0x55dbbe89a470
#14 handleWrapped(wl_listener*, void*) (listener=0x55dbbe89a470, data=0x0) at ../src/helpers/WLListener.cpp:14
pWrap = 0x55dbbe89a470
#15 0x00007f22c60764ac in wl_signal_emit_mutable (signal=<optimized out>, data=0x0) at ../src/wayland-server.c:2241
pos = 0x55dbbe89a470
l = 0x55dbbe89a470
cursor = {
link = {
prev = 0x55dbbe89a470,
next = 0x7ffd9f6b41d0
},
notify = 0x7f22c6073750 <handle_noop>
}
end = {
link = {
prev = 0x7ffd9f6b41f0,
next = 0x55dbbe69c928
},
notify = 0x7f22c6073750 <handle_noop>
}
#16 0x00007f22c5531962 in ffi_call_unix64 () at ../src/x86/unix64.S:104
#17 0x00007f22c552e2df in ffi_call_int (cif=cif@entry=0x7ffd9f6b4400, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=closure@entry=0x0) at ../src/x86/ffi64.c:673
classes = {X86_64_INTEGER_CLASS, 32765, 3310537196, 32546}
stack = <optimized out>
argp = 0x7ffd9f6b4240 ""
arg_types = <optimized out>
gprcount = 3
ssecount = <optimized out>
ngpr = 1
nsse = 0
i = <optimized out>
avn = <optimized out>
flags = <optimized out>
reg_args = <optimized out>
#18 0x00007f22c5530f26 in ffi_call (cif=cif@entry=0x7ffd9f6b4400, fn=<optimized out>, rvalue=rvalue@entry=0x0, avalue=avalue@entry=0x7ffd9f6b44d0) at ../src/x86/ffi64.c:710
arg_types = 0x7ffd9f6b4420
i = <optimized out>
nargs = 3
max_reg_struct_size = <optimized out>
#19 0x00007f22c60750a8 in wl_closure_invoke (closure=closure@entry=0x55dbbe618df0, target=<optimized out>, target@entry=0x55dbbe53e160, opcode=opcode@entry=2, data=<optimized out>,
data@entry=0x55dbbe488cf0, flags=2) at ../src/connection.c:1025
count = <optimized out>
cif = {
abi = FFI_UNIX64,
nargs = 3,
arg_types = 0x7ffd9f6b4420,
rtype = 0x7f22c55321a0 <ffi_type_void>,
bytes = 0,
flags = 0
}
ffi_types = {0x7f22c55322a0 <ffi_type_pointer>, 0x7f22c55322a0 <ffi_type_pointer>, 0x7f22c55322a0 <ffi_type_pointer>, 0x0 <repeats 18 times>, 0x7f22c59d22e5 <std::filesystem::status(std::filesystem::__cxx11::path const&, std::error_code&)+213>}
ffi_args = {0x7ffd9f6b43e0, 0x7ffd9f6b43e8, 0x55dbbe618e08, 0x3e8000081a4, 0x64, 0x0, 0x1a7c, 0xec, 0x55dbbebe1680, 0x7f22c6076990 <log_closure+80>, 0x7f22c5724ac0 <main_arena>, 0x55dbbd732730, 0xec, 0x7f22c55d9b68 <__libc_calloc+218>, 0x13cf1b72, 0x0, 0x55dbbcf9e778, 0x55dbbd02bfd0 <xdg_toplevel_requests.lto_priv+48>, 0x0, 0x1c, 0x1, 0x7f22c60746e8 <wl_closure_init+248>}
implementation = <optimized out>
#20 0x00007f22c6079408 in wl_client_connection_data (fd=<optimized out>, mask=<optimized out>, data=<optimized out>) at ../src/wayland-server.c:438
client = <optimized out>
connection = <optimized out>
resource = <optimized out>
object = 0x55dbbe53e160
closure = <optimized out>
message = 0x55dbbd02bfd0 <xdg_toplevel_requests.lto_priv+48>
p = {43, 1835010}
resource_flags = 0
opcode = 2
size = <optimized out>
since = <optimized out>
len = <optimized out>
#21 0x00007f22c6077e62 in wl_event_loop_dispatch (loop=0x55dbbd732820, timeout=timeout@entry=-1) at ../src/event-loop.c:1027
ep = {{
events = 1,
data = {
ptr = 0x55dbbe68ec70,
fd = -1100419984,
u32 = 3194547312,
u64 = 94402280746096
}
}, {
events = 1,
data = {
ptr = 0x55dbbd732868,
fd = -1116526488,
u32 = 3178440808,
u64 = 94402264639592
}
}, {
events = 1280454400,
data = {
ptr = 0x55dbf7c80c76,
fd = -137884554,
u32 = 4157082742,
u64 = 94403243281526
}
}, {
events = 1,
data = {
ptr = 0x20,
fd = 32,
u32 = 32,
u64 = 32
}
}, {
events = 3196402128,
data = {
ptr = 0x9f6b4850000055db,
fd = 21979,
u32 = 21979,
u64 = 11487354782973187547
}
}, {
events = 32765,
data = {
ptr = 0x55dbbe8569e8,
fd = -1098552856,
u32 = 3196414440,
u64 = 94402282613224
}
}, {
events = 3196406232,
data = {
ptr = 0x1000055db,
fd = 21979,
u32 = 21979,
u64 = 4294989275
}
}, {
events = 0,
data = {
ptr = 0x7f22c6074b26 <wl_connection_flush+374>,
fd = -972600538,
u32 = 3322366758,
u64 = 139787327982374
}
}, {
events = 3190490368,
data = {
ptr = 0x20000055db,
fd = 21979,
u32 = 21979,
u64 = 137438975451
}
}, {
events = 0,
data = {
ptr = 0x7ffd9f6b4890,
fd = -1620359024,
u32 = 2674608272,
u64 = 140727278061712
}
}, {
events = 0,
data = {
ptr = 0x11434,
fd = 70708,
u32 = 70708,
u64 = 70708
}
}, {
events = 0,
data = {
ptr = 0x0,
fd = 0,
u32 = 0,
u64 = 0
}
}, {
events = 0,
data = {
ptr = 0x0,
fd = 0,
u32 = 0,
u64 = 0
}
}, {
events = 0,
data = {
ptr = 0x0,
fd = 0,
u32 = 0,
u64 = 0
}
}, {
events = 0,
data = {
ptr = 0x0,
fd = 0,
u32 = 0,
u64 = 0
}
}, {
events = 0,
data = {
ptr = 0xf7c80c764c522f00,
fd = 1280454400,
u32 = 1280454400,
u64 = 17854534424936460032
}
}, {
events = 3196407308,
data = {
ptr = 0x20000055db,
fd = 21979,
u32 = 21979,
u64 = 137438975451
}
}, {
events = 0,
data = {
ptr = 0x55dbbe8549d8,
fd = -1098561064,
u32 = 3196406232,
u64 = 94402282605016
}
}, {
events = 220,
data = {
ptr = 0x1400000000,
fd = 0,
u32 = 0,
u64 = 85899345920
}
}, {
events = 0,
data = {
ptr = 0x100000001,
fd = 1,
u32 = 1,
u64 = 4294967297
}
}, {
events = 116,
data = {
ptr = 0x7d00000074,
fd = 116,
u32 = 116,
u64 = 536870912116
}
}, {
events = 134,
data = {
ptr = 0x980000008f,
fd = 143,
u32 = 143,
u64 = 652835029135
}
}, {
events = 161,
data = {
ptr = 0x930000008b,
fd = 139,
u32 = 139,
u64 = 631360192651
}
}, {
events = 148,
data = {
ptr = 0x9d0000009c,
fd = 156,
u32 = 156,
u64 = 674309865628
}
}, {
events = 165,
data = {
ptr = 0xbe2b0660000000a6,
fd = 166,
u32 = 166,
u64 = 13703053300591493286
}
}, {
events = 21979,
data = {
ptr = 0x55dbbe2b0678,
fd = -1104476552,
u32 = 3190490744,
u64 = 94402276689528
}
}, {
events = 3190490768,
data = {
ptr = 0x55db,
fd = 21979,
u32 = 21979,
u64 = 21979
}
}, {
events = 0,
data = {
ptr = 0x55db00000008,
fd = 8,
u32 = 8,
u64 = 94399086198792
}
}, {
events = 2674608280,
data = {
ptr = 0xc55796d000007ffd,
fd = 32765,
u32 = 32765,
u64 = 14220000168543027197
}
}, {
events = 32546,
data = {
ptr = 0x0,
fd = 0,
u32 = 0,
u64 = 0
}
}, {
events = 1280454400,
data = {
ptr = 0x8f7c80c76,
fd = -137884554,
u32 = 4157082742,
u64 = 38516821110
}
}, {
events = 0,
data = {
ptr = 0x55dbbe33ee60,
fd = -1103892896,
u32 = 3191074400,
u64 = 94402277273184
}
}}
source = <optimized out>
i = 0
count = <optimized out>
has_timers = <optimized out>
#22 0x00007f22c60785c5 in wl_display_run (display=0x55dbbd732730) at ../src/wayland-server.c:1493
#23 0x000055dbbcd85734 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /usr/include/c++/13/bits/unique_ptr.h:199
cmd = "Hyprland"
configPath = ""
ignoreSudo = <optimized out>
args = std::vector of length 0, capacity 0
(gdb)
About this issue
- Original URL
- State: closed
- Created 4 months ago
- Comments: 15 (11 by maintainers)
@levnikmyskin the issue https://github.com/hyprwm/Hyprland/issues/4628 got solved on my machine, infinitely thxx if i have any issues i will report it