Closed JoshStrobl closed 2 months ago
Can you coredumpctl debug
the segfault and get a backtrace from gdb? From what you've showed, the segfault looks to be happening somewhere within xwayland_surface_set_geometry, so I do have a starting point to debug from.
Never mind, saw the problem almost immediately. Try latest v1
and see if that works. Commit 9af5081.
Updated builds have been published in COPR.
Progress! I saw budgie-panel for a second before getting kicked back to SDDM.
If you have any recommendations on the best way to debug it while under a Wayland compositor that'd be appreciated as using coredump debug PID
just shows a black screen and reports the following:
unable to lock lockfile /run/user/1000/wayland-0.lock, maybe another compositor is running
Attached is the output from journalctl: magpie-wm-9af5081-journalctl.log
Linked via Proton Drive is the output file of coredumpctl dump
of the process. Too large to share via GitHub.
It seems to be segfaulting within Server::focus_view based on the journald log, though I can't see any obvious place where a segfault would be happening. I also can't check the coredump you linked directly, as I'm not on Fedora. Does running coredumpctl debug
on the process that you dumped give a line number?
Here's the bt
. I think my next step will be making sure there aren't any applications set to autostart that could be triggering the behavior.
#0 0x00005557e80cd956 in Server::focus_view(std::shared_ptr<View>&&, wlr_surface*) ()
#1 0x00005557e80ce13c in XdgView::map() ()
#2 0x00007fd6d0299d3c in wl_signal_emit_mutable (signal=<optimized out>, data=0x0) at ../src/wayland-server.c:2241
#3 0x00007fd6d01fad18 in surface_commit_state (surface=0x7fd6c911fc90, next=0x7fd6c911fe10) at ../types/wlr_compositor.c:499
#4 0x00007fd6d00d6056 in ffi_call_unix64 () at ../src/x86/unix64.S:104
#5 0x00007fd6d00d26a0 in ffi_call_int (cif=cif@entry=0x7fd6cf1ff280, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=closure@entry=0x0) at ../src/x86/ffi64.c:673
#6 0x00007fd6d00d54ee in ffi_call (cif=cif@entry=0x7fd6cf1ff280, fn=<optimized out>, rvalue=rvalue@entry=0x0, avalue=avalue@entry=0x7fd6cf1ff350) at ../src/x86/ffi64.c:710
#7 0x00007fd6d02987e3 in wl_closure_invoke (closure=closure@entry=0x7fd6c9129540, target=<optimized out>, target@entry=0x7fd6c9120040, opcode=opcode@entry=6, data=<optimized out>, data@entry=0x7fd6c90e8340, flags=2)
at ../src/connection.c:1025
#8 0x00007fd6d029d080 in wl_client_connection_data (fd=<optimized out>, mask=<optimized out>, data=0x7fd6c90e8340) at ../src/wayland-server.c:438
#9 0x00007fd6d029b852 in wl_event_loop_dispatch (loop=0x7fd6c8000c60, timeout=timeout@entry=-1) at ../src/event-loop.c:1027
#10 0x00007fd6d029c0d5 in wl_display_run (display=0x7fd6c8000b70) at ../src/wayland-server.c:1493
#11 0x00005557e80c16cf in run_compositor(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::promise<char const*>) ()
#12 0x00005557e80d1aee in std::thread::_State_impl<std::thread::_Invoker<std::tuple<int (*)(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::promise<char const*>), std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::promise<char const*> > > >::_M_run() ()
#13 0x00007fd6cfee6524 in std::execute_native_thread_routine (__p=0x5557e84cb830) at ../../../../../libstdc++-v3/src/c++11/thread.cc:104
#14 0x00007fd6cfbc61b7 in start_thread (arg=<optimized out>) at pthread_create.c:447
#15 0x00007fd6cfc4839c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
(gdb) bt
#0 0x00005557e80cd956 in Server::focus_view(std::shared_ptr<View>&&, wlr_surface*) ()
#1 0x00005557e80ce13c in XdgView::map() ()
#2 0x00007fd6d0299d3c in wl_signal_emit_mutable (signal=<optimized out>, data=0x0) at ../src/wayland-server.c:2241
#3 0x00007fd6d01fad18 in surface_commit_state (surface=0x7fd6c911fc90, next=0x7fd6c911fe10) at ../types/wlr_compositor.c:499
#4 0x00007fd6d00d6056 in ffi_call_unix64 () at ../src/x86/unix64.S:104
#5 0x00007fd6d00d26a0 in ffi_call_int (cif=cif@entry=0x7fd6cf1ff280, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=closure@entry=0x0) at ../src/x86/ffi64.c:673
#6 0x00007fd6d00d54ee in ffi_call (cif=cif@entry=0x7fd6cf1ff280, fn=<optimized out>, rvalue=rvalue@entry=0x0, avalue=avalue@entry=0x7fd6cf1ff350) at ../src/x86/ffi64.c:710
#7 0x00007fd6d02987e3 in wl_closure_invoke (closure=closure@entry=0x7fd6c9129540, target=<optimized out>, target@entry=0x7fd6c9120040, opcode=opcode@entry=6, data=<optimized out>, data@entry=0x7fd6c90e8340, flags=2)
at ../src/connection.c:1025
#8 0x00007fd6d029d080 in wl_client_connection_data (fd=<optimized out>, mask=<optimized out>, data=0x7fd6c90e8340) at ../src/wayland-server.c:438
#9 0x00007fd6d029b852 in wl_event_loop_dispatch (loop=0x7fd6c8000c60, timeout=timeout@entry=-1) at ../src/event-loop.c:1027
#10 0x00007fd6d029c0d5 in wl_display_run (display=0x7fd6c8000b70) at ../src/wayland-server.c:1493
#11 0x00005557e80c16cf in run_compositor(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::promise<char const*>) ()
#12 0x00005557e80d1aee in std::thread::_State_impl<std::thread::_Invoker<std::tuple<int (*)(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::promise<char const*>), std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::promise<char const*> > > >::_M_run() ()
#13 0x00007fd6cfee6524 in std::execute_native_thread_routine (__p=0x5557e84cb830) at ../../../../../libstdc++-v3/src/c++11/thread.cc:104
#14 0x00007fd6cfbc61b7 in start_thread (arg=<optimized out>) at pthread_create.c:447
#15 0x00007fd6cfc4839c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
Description
When running budgie-desktop branch 473-implement-wayland-support-in-panel-manager, with @Conan-Kudo's budgie-wayland-session file for magpie, upon login through SDDM it will black screen and kick me back to SDDM.
I am not 100% convinced that the budgie-wm code to effectively no-op and clean exit on detecting Wayland works under magpie v1 (under kwin, libxfce4windowing does detect the windowing system as Wayland), so may be worth taking a look at too, but would be good to start getting everything else to run.
Ties into #13 with missing Wayland protocol support too.
magpie-wlr provided via Neal's copr against f0fcf8e
Magpie version
1.0~git20240413.f0fcf8e-1
Operating System
Fedora 40
Steps to reproduce the issue
Actual result
Expected result
A very broken but visible Budgie.
Additional information
No response