Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SIGABRT crash in Mesa's llvmpipe driver while handling hardware cursor updates through libaquamarine(Hyprland's graphics backend). #126

Open
inevity opened this issue Jan 2, 2025 · 2 comments

Comments

@inevity
Copy link

inevity commented Jan 2, 2025

Hyprland crash when use amd dgpu. Now just disable hardcursors to workaround.

Belowe thread 847186 recevie abort signal ,and thread 847147 is the thing doing.

       Message: Process 847147 (Hyprland) of user 1000 dumped core.
                
                Stack trace of thread 847209:
                #0  0x0000763af02a53f4 n/a (libc.so.6 + 0x963f4)
                #1  0x0000763af024c120 raise (libc.so.6 + 0x3d120)
                #2  0x0000763af02334c3 abort (libc.so.6 + 0x244c3)
                #3  0x00005de68374c6ea n/a (n/a + 0x0)
                #4  0x0000763af024c1d0 n/a (libc.so.6 + 0x3d1d0)
                #5  0x0000763ae96f23da n/a (libgallium-24.3.2-arch1.1.so + 0x6f23da)
                #6  0x0000763ae96f26b3 n/a (libgallium-24.3.2-arch1.1.so + 0x6f26b3)
                #7  0x0000763ae97ddb63 n/a (libgallium-24.3.2-arch1.1.so + 0x7ddb63)
                #8  0x0000763ae97de67b n/a (libgallium-24.3.2-arch1.1.so + 0x7de67b)
                #9  0x0000763ae97de7b2 n/a (libgallium-24.3.2-arch1.1.so + 0x7de7b2)
                #10 0x0000763ae95136dd n/a (libgallium-24.3.2-arch1.1.so + 0x5136dd)
                #11 0x0000763af02a339d n/a (libc.so.6 + 0x9439d)
                #12 0x0000763af032849c n/a (libc.so.6 + 0x11949c)
                
                Stack trace of thread 847186:
                #0  0x0000763af029fa19 n/a (libc.so.6 + 0x90a19)
                #1  0x0000763af02a2479 pthread_cond_wait (libc.so.6 + 0x93479)
                #2  0x0000763ae95137ae n/a (libgallium-24.3.2-arch1.1.so + 0x5137ae)
                #3  0x0000763ae94de78c n/a (libgallium-24.3.2-arch1.1.so + 0x4de78c)
                #4  0x0000763ae95136dd n/a (libgallium-24.3.2-arch1.1.so + 0x5136dd)
                #5  0x0000763af02a339d n/a (libc.so.6 + 0x9439d)
                #6  0x0000763af032849c n/a (libc.so.6 + 0x11949c)
                
                Stack trace of thread 847147:
                #0  0x0000763af029fa19 n/a (libc.so.6 + 0x90a19)
                #1  0x0000763af02a2479 pthread_cond_wait (libc.so.6 + 0x93479)
                #2  0x0000763ae95137ae n/a (libgallium-24.3.2-arch1.1.so + 0x5137ae)
                #3  0x0000763ae97daefc n/a (libgallium-24.3.2-arch1.1.so + 0x7daefc)
                #4  0x0000763ae97d6329 n/a (libgallium-24.3.2-arch1.1.so + 0x7d6329)
                #5  0x0000763ae97db4f4 n/a (libgallium-24.3.2-arch1.1.so + 0x7db4f4)
                #6  0x0000763ae97dab5c n/a (libgallium-24.3.2-arch1.1.so + 0x7dab5c)
                #7  0x0000763aeb871961 n/a (libEGL_mesa.so.0 + 0x18961)
                #8  0x0000763aeb869aa7 n/a (libEGL_mesa.so.0 + 0x10aa7)
                #9  0x0000763af10630be _ZN10Aquamarine12CDRMRenderer16recreateBlitSyncEv (libaquamarine.so.4 + 0xb60be)
                #10 0x0000763af1066d9e _ZN10Aquamarine12CDRMRenderer4blitEN9Hyprutils6Memory14CSharedPointerINS_7IBufferEEES5_i (libaquamarine.so.4 + 0xb9d9e)
                #11 0x0000763af1052bd9 _ZN10Aquamarine10CDRMOutput9setCursorEN9Hyprutils6Memory14CSharedPointerINS_7IBufferEEERKNS1_4Math8Vector2DE (libaquamarine.so.4 + 0xa5bd9)
                #12 0x00005de683a6c47b n/a (n/a + 0x0)
                #13 0x00005de683a6c049 n/a (n/a + 0x0)
                #14 0x00005de683a6b3dd n/a (n/a + 0x0)
                #15 0x00005de683a6bbc1 n/a (n/a + 0x0)
                #16 0x00005de683a704ed n/a (n/a + 0x0)
                #17 0x00005de683a705df n/a (n/a + 0x0)
                #18 0x00005de6839e0686 n/a (n/a + 0x0)
                #19 0x00005de683a716b2 n/a (n/a + 0x0)
                #20 0x00005de683a7d3d4 n/a (n/a + 0x0)
                #21 0x00005de683a7a145 n/a (n/a + 0x0)
                #22 0x00005de683a771e6 n/a (n/a + 0x0)
                #23 0x0000763af0eecbdf _ZN9Hyprutils6Signal15CSignalListener4emitESt3any (libhyprutils.so.1 + 0x1abdf)
                #24 0x0000763af0eecf4e _ZN9Hyprutils6Signal7CSignal4emitESt3any (libhyprutils.so.1 + 0x1af4e)
                #25 0x00005de68390a30e n/a (n/a + 0x0)
                #26 0x00005de68390e394 n/a (n/a + 0x0)
                #27 0x00005de68390cfdd n/a (n/a + 0x0)
                #28 0x00005de68390c0f1 n/a (n/a + 0x0)
                #29 0x0000763af0eecbdf _ZN9Hyprutils6Signal15CSignalListener4emitESt3any (libhyprutils.so.1 + 0x1abdf)
                #30 0x0000763af0eecf4e _ZN9Hyprutils6Signal7CSignal4emitESt3any (libhyprutils.so.1 + 0x1af4e)
                #31 0x0000763af102af75 _ZN10Aquamarine8CSession19handleLibinputEventEP14libinput_event (libaquamarine.so.4 + 0x7df75)
                #32 0x0000763af102bb74 _ZN10Aquamarine8CSession22dispatchLibinputEventsEv (libaquamarine.so.4 + 0x7eb74)
                #33 0x00005de68397900c n/a (n/a + 0x0)
                #34 0x00005de6839c8c9e n/a (n/a + 0x0)
                #35 0x0000763af0eb3112 wl_event_loop_dispatch (libwayland-server.so.0 + 0xa112)
                #36 0x0000763af0eb51f7 wl_display_run (libwayland-server.so.0 + 0xc1f7)
                #37 0x00005de6839c8e9d n/a (n/a + 0x0)
                #38 0x00005de683751d7f n/a (n/a + 0x0)
                #39 0x00005de6839b0834 n/a (n/a + 0x0)
                #40 0x0000763af0234e08 n/a (libc.so.6 + 0x25e08)
                #41 0x0000763af0234ecc __libc_start_main (libc.so.6 + 0x25ecc)
                #42 0x00005de6836e0185 n/a (n/a + 0x0)
                ELF object binary architecture: AMD x86-64

Below is the 847147 thread stacktrace.

(gdb) bt
#0  0x0000763af029fa19 in __futex_abstimed_wait_common64 (private=0, futex_word=0x5de695180bb0, expected=0, op=393, 
    abstime=0x0, cancel=true) at futex-internal.c:57
#1  __futex_abstimed_wait_common (futex_word=futex_word@entry=0x5de695180bb0, expected=expected@entry=0, 
    clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true)
    at futex-internal.c:87
#2  0x0000763af029fa9f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x5de695180bb0, 
    expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0)
    at futex-internal.c:139
#3  0x0000763af02a2479 in __pthread_cond_wait_common (cond=0x5de695180b88, mutex=<optimized out>, clockid=0, abstime=0x0)
    at pthread_cond_wait.c:503
#4  ___pthread_cond_wait (cond=0x5de695180b88, mutex=<optimized out>) at pthread_cond_wait.c:618
#5  0x0000763ae95137ae in cnd_wait () at ../mesa-24.3.2/src/c11/impl/threads_posix.c:135
#6  0x0000763ae97daefc in lp_fence_wait () at ../mesa-24.3.2/src/gallium/drivers/llvmpipe/lp_fence.c:202
#7  0x0000763ae97d6329 in llvmpipe_fence_finish () at ../mesa-24.3.2/src/gallium/drivers/llvmpipe/lp_screen.c:992
#8  llvmpipe_fence_finish () at ../mesa-24.3.2/src/gallium/drivers/llvmpipe/lp_screen.c:978
#9  0x0000763ae97db4f4 in llvmpipe_finish () at ../mesa-24.3.2/src/gallium/drivers/llvmpipe/lp_flush.c:99
#10 0x0000763ae97dab5c in lp_fence_get_fd () at ../mesa-24.3.2/src/gallium/drivers/llvmpipe/lp_fence.c:270
#11 0x0000763aeb871961 in dri2_dup_native_fence_fd () at ../mesa-24.3.2/src/egl/drivers/dri2/egl_dri2.c:3148
#12 0x0000763aeb869aa7 in eglDupNativeFenceFDANDROID () at ../mesa-24.3.2/src/egl/main/eglapi.c:2247
#13 0x0000763af10630be in Aquamarine::CDRMRenderer::recreateBlitSync() () from /usr/lib/libaquamarine.so.4
#14 0x0000763af1066d9e in Aquamarine::CDRMRenderer::blit(Hyprutils::Memory::CSharedPointer<Aquamarine::IBuffer>, Hyprutils::Memory::CSharedPointer<Aquamarine::IBuffer>, int) () from /usr/lib/libaquamarine.so.4
#15 0x0000763af1052bd9 in Aquamarine::CDRMOutput::setCursor(Hyprutils::Memory::CSharedPointer<Aquamarine::IBuffer>, Hyprutils::Math::Vector2D const&) () from /usr/lib/libaquamarine.so.4
#16 0x00005de683a6c47b in CPointerManager::setHWCursorBuffer(Hyprutils::Memory::CSharedPointer<CPointerManager::SMonitorPointerState>, Hyprutils::Memory::CSharedPointer<Aquamarine::IBuffer>) ()
#17 0x00005de683a6c049 in CPointerManager::attemptHardwareCursor(Hyprutils::Memory::CSharedPointer<CPointerManager::SMonitorPointerState>) ()
#18 0x00005de683a6b3dd in CPointerManager::updateCursorBackend() ()
#19 0x00005de683a6bbc1 in CPointerManager::onCursorMoved() ()
#20 0x00005de683a704ed in CPointerManager::warpTo(Hyprutils::Math::Vector2D const&) ()
#21 0x00005de683a705df in CPointerManager::move(Hyprutils::Math::Vector2D const&) ()
#22 0x00005de6839e0686 in CInputManager::onMouseMoved(IPointer::SMotionEvent) ()
#23 0x00005de683a716b2 in CPointerManager::attachPointer(Hyprutils::Memory::CSharedPointer<IPointer>)::{lambda(std::any)#2}::operator()(std::any) const ()
#24 0x00005de683a7d3d4 in void std::__invoke_impl<void, CPointerManager::attachPointer(Hyprutils::Memory::CSharedPointer<IPointer>)::{lambda(std::any)#2}&, std::any>(std::__invoke_other, CPointerManager::attachPointer(Hyprutils::Memory::CSharedPointer<IPointer>)::{lambda(std::any)#2}&, std::any&&) ()
#25 0x00005de683a7a145 in std::enable_if<is_invocable_r_v<void, CPointerManager::attachPointer(Hyprutils::Memory::CSharedPointer<IPointer>)::{lambda(std::any)#2}&, std::any>, void>::type std::__invoke_r<void, CPointerManager::attachPointer(Hyprutils::Memory::CSharedPointer<IPointer>)::{lambda(std::any)#2}&, std::any>(CPointerManager::attachPointer(Hyprutils::Memory::CSharedPointer<IPointer>)::{lambda(std::any)#2}&, std::any&&) ()
#26 0x00005de683a771e6 in std::_Function_handler<void (std::any), CPointerManager::attachPointer(Hyprutils::Memory::CSharedPointer<IPointer>)::{lambda(std::any)#2}>::_M_invoke(std::_Any_data const&, std::any&&) ()
#27 0x0000763af0eecbdf in Hyprutils::Signal::CSignalListener::emit(std::any) () from /usr/lib/libhyprutils.so.1
#28 0x0000763af0eecf4e in Hyprutils::Signal::CSignal::emit(std::any) () from /usr/lib/libhyprutils.so.1
#29 0x00005de68390a30e in CMouse::CMouse(Hyprutils::Memory::CSharedPointer<Aquamarine::IPointer>)::{lambda(std::any)#2}::operator()(std::any) const ()
#30 0x00005de68390e394 in void std::__invoke_impl<void, CMouse::CMouse(Hyprutils::Memory::CSharedPointer<Aquamarine::IPointer>)::{lambda(std::any)#2}&, std::any>(std::__invoke_other, CMouse::CMouse(Hyprutils::Memory::CSharedPointer<Aquamarine::IPointer>)::{lambda(std::any)#2}&, std::any&&) ()
#31 0x00005de68390cfdd in std::enable_if<is_invocable_r_v<void, CMouse::CMouse(Hyprutils::Memory::CSharedPointer<Aquamarine::IPointer>)::{lambda(std::any)#2}&, std::any>, void>::type std::__invoke_r<void, CMouse::CMouse(Hyprutils::Memory::CSharedPointer<Aquamarine::IPointer>)::{lambda(std::any)#2}&, std::any>(CMouse::CMouse(Hyprutils::Memory::CSharedPointer<Aquamarine::IPointer>)::{lambda(std::any)#2}&, std::any&&) ()
#32 0x00005de68390c0f1 in std::_Function_handler<void (std::any), CMouse::CMouse(Hyprutils::Memory::CSharedPointer<Aquamarine::IPointer>)::{lambda(std::any)#2}>::_M_invoke(std::_Any_data const&, std::any&&) ()
#33 0x0000763af0eecbdf in Hyprutils::Signal::CSignalListener::emit(std::any) () from /usr/lib/libhyprutils.so.1
#34 0x0000763af0eecf4e in Hyprutils::Signal::CSignal::emit(std::any) () from /usr/lib/libhyprutils.so.1
#35 0x0000763af102af75 in Aquamarine::CSession::handleLibinputEvent(libinput_event*) () from /usr/lib/libaquamarine.so.4
#36 0x0000763af102bb74 in Aquamarine::CSession::dispatchLibinputEvents() () from /usr/lib/libaquamarine.so.4
#37 0x00005de68397900c in std::function<void ()>::operator()() const ()
#38 0x00005de6839c8c9e in aquamarineFDWrite(int, unsigned int, void*) ()
#39 0x0000763af0eb3112 in wl_event_loop_dispatch (loop=0x5de68eab8fb0, timeout=<optimized out>, timeout@entry=-1)
    at ../wayland-1.23.1/src/event-loop.c:1105
#40 0x0000763af0eb51f7 in wl_display_run (display=0x5de68eac0990) at ../wayland-1.23.1/src/wayland-server.c:1530
#41 0x00005de6839c8e9d in CEventLoopManager::enterLoop() ()
#42 0x00005de683751d7f in CCompositor::startCompositor() ()
#43 0x00005de6839b0834 in main ()
@inevity
Copy link
Author

inevity commented Jan 8, 2025

Why no one response? i miss some log?

@vaxerski
Copy link
Member

vaxerski commented Jan 8, 2025

no response because I don't know what's up, and considering everyone else seems to be working, my first thought is "ah great, some weird system"

what is your system? libgallium is nvk iirc? Have you tried proprietary?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants