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.97k stars 912 forks source link

layershells crashing hyprland #6014

Closed pterror closed 6 months ago

pterror commented 6 months ago

Hyprland Version

System/Version info ```sh Hyprland, built from branch at commit ed3a888fc274e09a5097ebbe3d206e4bc85bbb87 (). Date: 2024-05-10 Tag: , commits: flags: (if any) System Information: System name: Linux Node name: pc Release: 6.8.6-zen1 Version: #1-NixOS ZEN SMP PREEMPT_DYNAMIC Tue Jan 1 00:00:00 UTC 1980 GPU information: 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA106 [GeForce RTX 3060 Lite Hash Rate] [10de:2504] (rev a1) (prog-if 00 [VGA controller]) 0d:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Cezanne [Radeon Vega Series / Radeon Vega Mobile Series] [1002:1638] (rev c8) (prog-if 00 [VGA controller]) os-release: ANSI_COLOR="1;34" BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues" BUILD_ID="24.05.20240509.f1010e0" DOCUMENTATION_URL="https://nixos.org/learn.html" HOME_URL="https://nixos.org/" ID=nixos IMAGE_ID="" IMAGE_VERSION="" LOGO="nix-snowflake" NAME=NixOS PRETTY_NAME="NixOS 24.05 (Uakari)" SUPPORT_URL="https://nixos.org/community.html" VERSION="24.05 (Uakari)" VERSION_CODENAME=uakari VERSION_ID="24.05" plugins: ```

Bug or Regression?

Regression

Description

layershells crash hyprland

Notes

How to reproduce

Crash reports, logs, images, videos

hyprlandCrashReport77.txt

coredump.zip

vaxerski commented 6 months ago

I can't repro, cuz the following qs config does not launch. image

No other LS would crash on my end

pterror commented 6 months ago

sorry, my bad

import Quickshell
ShellRoot {
    PanelWindow {}
}

this repros it for me. not quite sure but the error might be specific to NVIDIA gpus?

pterror commented 6 months ago

unfortunately seems to not be 100% fixed? the above repro is still crashing for me, although the backtrace looks slightly different:

GDB backtrace ```cpp #0 0x00000000005e174e in CWeakPointer::decrementWeak (this=this@entry=0x4289f28) at /build/source/src/helpers/memory/WeakPtr.hpp:165 #1 0x00000000005e17e9 in CWeakPointer::operator= (this=this@entry=0x4289f28, rhs=...) at /build/source/src/helpers/memory/WeakPtr.hpp:74 #2 0x00000000005ea7ae in std::__copy_move::__copy_m*, CWeakPointer*> (__first=0x4289f30, __last=, __result=0x4289f28) at /nix/store/ilwrjzsa7mc6jji7is7i59gza0cq1x9w-gcc-13.2.0/include/c++/13.2.0/bits/stl_algobase.h:413 #3 0x00000000005ea7d0 in std::__copy_move_a2*, CWeakPointer*> (__result=, __last=, __first=) at /nix/store/ilwrjzsa7mc6jji7is7i59gza0cq1x9w-gcc-13.2.0/include/c++/13.2.0/bits/stl_algobase.h:497 #4 std::__copy_move_a1*, CWeakPointer*> (__result=, __last=, __first=) at /nix/store/ilwrjzsa7mc6jji7is7i59gza0cq1x9w-gcc-13.2.0/include/c++/13.2.0/bits/stl_algobase.h:533 #5 std::__copy_move_a*, std::vector, std::allocator > > >, __gnu_cxx::__normal_iterator*, std::vector, std::allocator > > > > (__first=..., __last=..., __result=...) at /nix/store/ilwrjzsa7mc6jji7is7i59gza0cq1x9w-gcc-13.2.0/include/c++/13.2.0/bits/stl_algobase.h:540 #6 0x00000000005ea7de in std::move<__gnu_cxx::__normal_iterator*, std::vector, std::allocator > > >, __gnu_cxx::__normal_iterator*, std::vector, std::allocator > > > > (__first=..., __last=..., __result=...) at /nix/store/ilwrjzsa7mc6jji7is7i59gza0cq1x9w-gcc-13.2.0/include/c++/13.2.0/bits/cpp_type_traits.h:607 #7 0x0000000000651f97 in std::vector, std::allocator > >::_M_erase (this=0x43407c0, __position=...) at /nix/store/ilwrjzsa7mc6jji7is7i59gza0cq1x9w-gcc-13.2.0/include/c++/13.2.0/bits/stl_iterator.h:1076 #8 0x0000000000651fbb in std::vector, std::allocator > >::erase (this=, __position=..., __position@entry=...) at /nix/store/ilwrjzsa7mc6jji7is7i59gza0cq1x9w-gcc-13.2.0/include/c++/13.2.0/bits/stl_iterator.h:1076 #9 0x000000000064e0e3 in CLayerSurface::onCommit (this=0x4566d80) at /nix/store/ilwrjzsa7mc6jji7is7i59gza0cq1x9w-gcc-13.2.0/include/c++/13.2.0/bits/stl_iterator.h:1162 #10 0x000000000064e8c1 in operator() (d=..., __closure=0x4348a60) at /build/source/src/desktop/LayerSurface.cpp:56 #11 std::__invoke_impl)::&, std::any>(std::__invoke_other, struct {...} &) (__f=...) at /nix/store/ilwrjzsa7mc6jji7is7i59gza0cq1x9w-gcc-13.2.0/include/c++/13.2.0/bits/invoke.h:61 #12 0x000000000064e915 in std::__invoke_r)::&, std::any> (__fn=...) at /nix/store/ilwrjzsa7mc6jji7is7i59gza0cq1x9w-gcc-13.2.0/include/c++/13.2.0/bits/invoke.h:104 #13 std::_Function_handler):: >::_M_invoke(const std::_Any_data &, std::any &&) (__functor=..., __args#0=...) at /nix/store/ilwrjzsa7mc6jji7is7i59gza0cq1x9w-gcc-13.2.0/include/c++/13.2.0/bits/std_function.h:290 #14 0x00000000006b418c in std::function::operator()(std::any) const (this=this@entry=0x4348a60, __args#0=...) at /nix/store/ilwrjzsa7mc6jji7is7i59gza0cq1x9w-gcc-13.2.0/include/c++/13.2.0/bits/std_function.h:591 #15 0x00000000006b35d8 in CSignalListener::emit (this=this@entry=0x4348a60, data=...) at /build/source/src/helpers/signal/Listener.cpp:12 #16 0x00000000006b45d7 in CSignal::emit (this=0x3d7e2d0, data=...) at /build/source/src/helpers/signal/Signal.cpp:9 #17 0x000000000077361d in operator() (__closure=0x3d7e518, owner=, data=) at /build/source/src/protocols/LayerShell.cpp:81 #18 0x00000000007737eb in std::__invoke_impl, wlr_surface*, std::string, CMonitor*, zwlrLayerShellV1Layer)::&, void*, void*> (__f=...) at /nix/store/ilwrjzsa7mc6jji7is7i59gza0cq1x9w-gcc-13.2.0/include/c++/13.2.0/bits/invoke.h:61 #19 std::__invoke_r, wlr_surface*, std::string, CMonitor*, zwlrLayerShellV1Layer)::&, void*, void*> ( __fn=...) at /nix/store/ilwrjzsa7mc6jji7is7i59gza0cq1x9w-gcc-13.2.0/include/c++/13.2.0/bits/invoke.h:111 #20 std::_Function_handler, wlr_surface*, std::string, CMonitor*, zwlrLayerShellV1Layer):: >::_M_invoke(const std::_Any_data &, void *&&, void *&&) (__functor=..., __args#0=, __args#1=) at /nix/store/ilwrjzsa7mc6jji7is7i59gza0cq1x9w-gcc-13.2.0/include/c++/13.2.0/bits/std_function.h:290 #21 0x00000000006b1c5d in std::function::operator()(void*, void*) const (this=, __args#0=, __args#1=, __args#1@entry=0x45669b0) at /nix/store/ilwrjzsa7mc6jji7is7i59gza0cq1x9w-gcc-13.2.0/include/c++/13.2.0/bits/std_function.h:591 #22 0x00000000006b0c6e in CHyprWLListener::emit (this=, data=data@entry=0x45669b0) at /build/source/src/helpers/WLListener.cpp:61 #23 0x00000000006b0f99 in handleWrapped (listener=0x3d7e4f0, data=0x45669b0) at /build/source/src/helpers/WLListener.cpp:14 #24 0x00007e1cda609a0c in wl_signal_emit_mutable () from /nix/store/19idnjxghxxzwmh2hrzs5j3vxw7czyza-wayland-1.22.0/lib/libwayland-server.so.0 #25 0x0000000000850891 in surface_commit_state (surface=surface@entry=0x45669b0, next=next@entry=0x4566b30) at ../types/wlr_compositor.c:551 #26 0x0000000000850961 in surface_handle_commit (client=, resource=) at ../types/wlr_compositor.c:582 #27 0x00007e1cd9843052 in ffi_call_unix64 () from /nix/store/ym7yrwqvzcb3i3js4x322nyd4c5k944l-libffi-3.4.6/lib/libffi.so.8 #28 0x00007e1cd9840ee5 in ffi_call_int () from /nix/store/ym7yrwqvzcb3i3js4x322nyd4c5k944l-libffi-3.4.6/lib/libffi.so.8 #29 0x00007e1cd9841ad8 in ffi_call () from /nix/store/ym7yrwqvzcb3i3js4x322nyd4c5k944l-libffi-3.4.6/lib/libffi.so.8 #30 0x00007e1cda60d841 in wl_closure_invoke () from /nix/store/19idnjxghxxzwmh2hrzs5j3vxw7czyza-wayland-1.22.0/lib/libwayland-server.so.0 #31 0x00007e1cda608c4b in wl_client_connection_data () from /nix/store/19idnjxghxxzwmh2hrzs5j3vxw7czyza-wayland-1.22.0/lib/libwayland-server.so.0 #32 0x00007e1cda60b8f2 in wl_event_loop_dispatch () from /nix/store/19idnjxghxxzwmh2hrzs5j3vxw7czyza-wayland-1.22.0/lib/libwayland-server.so.0 #33 0x00007e1cda609455 in wl_display_run () from /nix/store/19idnjxghxxzwmh2hrzs5j3vxw7czyza-wayland-1.22.0/lib/libwayland-server.so.0 #34 0x00000000007186bb in CEventLoopManager::enterLoop (this=, display=0x28df130, wlEventLoop=) at /build/source/src/managers/eventLoop/EventLoopManager.cpp:27 #35 0x00000000005cf967 in CCompositor::startCompositor (this=0x28dcb90) at /build/source/src/Compositor.cpp:589 #36 0x00000000006d4de5 in main (argc=, argv=) at /build/source/src/main.cpp:116 ```

coredump.zip

crash report (no debuginfo): hyprlandCrashReport162577.txt

crash report (with debuginfo) (not particularly useful, it's blank): hyprlandCrashReport169131.txt

vaxerski commented 6 months ago

it's not crashing on my end

pterror commented 6 months ago
 ~  hyprctl version
Hyprland, built from branch  at commit b6a7fb9e9125e56bf742f68e0ec46f52d5c34f4c  ().

yeah hyprctl is showing latest main so idk what's happening. maybe i missed a driver update, i guess i'll reboot and hype for the best

vaxerski commented 6 months ago

patch.txt try this maybe

pterror commented 6 months ago

doesn't seem to help unfortunately:

hyprlandCrashReport187163.txt

pterror commented 6 months ago

also confirmed that a reboot didn't help unfortunately

vaxerski commented 6 months ago

should be fixado

pterror commented 6 months ago

confirmed fixed for real this time (both on this minimal repro, and on my full quickshell setup). thanks!