flathub / com.modrinth.ModrinthApp

https://flathub.org/apps/details/com.modrinth.ModrinthApp
7 stars 2 forks source link

Segfault on startup with NVIDIA drivers #17

Open mirai-toto opened 1 month ago

mirai-toto commented 1 month ago

I'm encountering a segfault error at startup with the application. modrinth-app-wrapped killed by SIGSEGV Unfortunately, there are no meaningful logs available in the var/spool/abrt/ccpp-2024-08-24-20:33:29.238536-24243. Details:

Tested OS:
    Fedora 40 (Gnome)
    Bazzite
GPU: Nvidia
Tried: Switching to X11 (no effect)

Notes:

The issue persists across both operating systems.
The AppImage and Windows exe versions work without problems.
FelixBrakel commented 1 month ago

Same here, crashes on both Nvidia 555 and 560.

FelixBrakel commented 1 month ago
#0  ___pthread_mutex_lock (mutex=0x0) at pthread_mutex_lock.c:80
        type = <optimized out>
        __PRETTY_FUNCTION__ = "___pthread_mutex_lock"
        id = <optimized out>
#1  0x000076eda2848dd9 in _dbus_platform_rmutex_lock (mutex=<optimized out>) at ../../dbus/dbus-sysdeps-pthread.c:159
        tmp = <optimized out>
#2  0x000076eda283aeab in _dbus_lock (lock=lock@entry=_DBUS_LOCK_bus) at ../../dbus/dbus-threads.c:348
#3  0x000076eda281e880 in internal_bus_get (type=DBUS_BUS_SYSTEM, private=0, error=0x7ffebcb37170) at ../../dbus/dbus-bus.c:431
        address = <optimized out>
        connection = 0x0
        bd = <optimized out>
        address_type = <optimized out>
        __func__ = "internal_bus_get"
#4  0x000076ed3e87545f in ??? () at /usr/lib/x86_64-linux-gnu/GL/nvidia-560-35-03/lib/libnvidia-eglcore.so.560.35.03
#5  0x000076ed3e875711 in ??? () at /usr/lib/x86_64-linux-gnu/GL/nvidia-560-35-03/lib/libnvidia-eglcore.so.560.35.03
#6  0x000076ed3e87eb8a in ??? () at /usr/lib/x86_64-linux-gnu/GL/nvidia-560-35-03/lib/libnvidia-eglcore.so.560.35.03
#7  0x000076ed3e8777ad in ??? () at /usr/lib/x86_64-linux-gnu/GL/nvidia-560-35-03/lib/libnvidia-eglcore.so.560.35.03
#8  0x000076ed3e8779a9 in ??? () at /usr/lib/x86_64-linux-gnu/GL/nvidia-560-35-03/lib/libnvidia-eglcore.so.560.35.03
#9  0x000076ed3e7ee567 in ??? () at /usr/lib/x86_64-linux-gnu/GL/nvidia-560-35-03/lib/libnvidia-eglcore.so.560.35.03
#10 0x000076ed3e7ee8d5 in ??? () at /usr/lib/x86_64-linux-gnu/GL/nvidia-560-35-03/lib/libnvidia-eglcore.so.560.35.03
#11 0x000076ed3e7eea27 in ??? () at /usr/lib/x86_64-linux-gnu/GL/nvidia-560-35-03/lib/libnvidia-eglcore.so.560.35.03
#12 0x000076ed3e80b5ed in ??? () at /usr/lib/x86_64-linux-gnu/GL/nvidia-560-35-03/lib/libnvidia-eglcore.so.560.35.03
#13 0x000076ed3e80b775 in ??? () at /usr/lib/x86_64-linux-gnu/GL/nvidia-560-35-03/lib/libnvidia-eglcore.so.560.35.03
#14 0x000076ed8d043a62 in ??? () at /usr/lib/x86_64-linux-gnu/GL/nvidia-560-35-03/lib/libEGL_nvidia.so.0
#15 0x000076ed8d048e54 in ??? () at /usr/lib/x86_64-linux-gnu/GL/nvidia-560-35-03/lib/libEGL_nvidia.so.0
#16 0x000076eda976c93c in gdk_wayland_gl_context_realize (context=0x638cec67c440 [GdkWaylandGLContext], error=0x7ffebcb38320)
    at ../gdk/wayland/gdkglcontext-wayland.c:176
        context_wayland = 0x638cec67c440 [GdkWaylandGLContext]
        display = 0x638cec5b9e90 [GdkWaylandDisplay]
        share = 0x0
        display_wayland = 0x638cec5b9e90 [GdkWaylandDisplay]
        ctx = <optimized out>
        context_attribs = {12541, 1, 12440, 3, 12539, 2, 12540, 0, 12344, 8, 12321, 8, 12344, 32766, -1451966850, 30445}
        major = 3
        minor = 2
        flags = <optimized out>
        debug_bit = <optimized out>
        forward_bit = 0
        legacy_bit = <optimized out>
        use_es = <optimized out>
        i = <optimized out>
        __func__ = "gdk_wayland_gl_context_realize"
        _g_boolean_var_10 = <optimized out>
#17 0x000076eda973834f in gdk_gl_context_realize (context=0x638cec67c440 [GdkWaylandGLContext], error=error@entry=0x7ffebcb38320)
    at ../gdk/gdkglcontext.c:796
        priv = <optimized out>
        __func__ = "gdk_gl_context_realize"
#18 0x000076eda9744107 in gdk_window_get_paint_gl_context (window=window@entry=0x638cec68cfc0 [GdkWaylandWindow], error=error@entry=0x0)
    at ../gdk/gdkwindow.c:2880
        internal_error = 0x0
        _pp = <optimized out>
        _ptr = <optimized out>
#19 0x000076eda974424e in gdk_window_create_gl_context (window=0x638cec68cfc0 [GdkWaylandWindow], error=0x0) at ../gdk/gdkwindow.c:2919
        paint_context = <optimized out>
        __func__ = "gdk_window_create_gl_context"
#20 0x000076edacd0050e in WebCore::PlatformDisplayWayland::gtkEGLDisplay (this=0x76ed990700c0)
    at /run/build/webkit2gtk-4.0/Source/WebCore/platform/graphics/wayland/PlatformDisplayWayland.cpp:112
        context = {m_ptr = <optimized out>}
        window = 0x638cec6b5d70 [GtkWindow]
#21 WebCore::PlatformDisplayWayland::gtkEGLDisplay (this=0x76ed990700c0)
    at /run/build/webkit2gtk-4.0/Source/WebCore/platform/graphics/wayland/PlatformDisplayWayland.cpp:99
        window = <optimized out>
        context = {m_ptr = <optimized out>}
#22 0x000076edacd00574 in WebCore::PlatformDisplayWayland::initializeEGLDisplay (this=0x76ed990700c0)
    at /run/build/webkit2gtk-4.0/Source/WebCore/platform/graphics/wayland/PlatformDisplayWayland.cpp:131
        extensions = <optimized out>
#23 0x000076edacc1871c in WebCore::PlatformDisplay::eglExtensions (this=0x76ed990700c0)
    at /run/build/webkit2gtk-4.0/Source/WebCore/platform/graphics/PlatformDisplay.cpp:312
#24 0x000076edaadc8f7c in operator() (__closure=<optimized out>)
    at /run/build/webkit2gtk-4.0/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp:82
        disableDMABuf = <optimized out>
        platformExtensions = 0x638cec782320 "EGL_EXT_platform_base EGL_EXT_device_base EGL_EXT_device_enumeration EGL_EXT_device_query EGL_KHR_client_get_all_proc_addresses EGL_EXT_client_extensions EGL_KHR_debug EGL_KHR_platform_x11 EGL_EXT_pla"...
        forceSHM = <optimized out>
        eglExtensions = <optimized out>
#25 std::__invoke_impl<void, WebKit::AcceleratedBackingStoreDMABuf::rendererBufferMode()::<lambda()> > (__f=<optimized out>)
--Type <RET> for more, q to quit, c to continue without paging--
    at /usr/include/c++/13.2.0/bits/invoke.h:61
#26 std::__invoke<WebKit::AcceleratedBackingStoreDMABuf::rendererBufferMode()::<lambda()> > (__fn=<optimized out>)
    at /usr/include/c++/13.2.0/bits/invoke.h:96
#27 operator() (__closure=<optimized out>) at /usr/include/c++/13.2.0/mutex:900
        __f = <optimized out>
        __f = <optimized out>
#28 operator() (__closure=0x0) at /usr/include/c++/13.2.0/mutex:836
#29 _FUN () at /usr/include/c++/13.2.0/mutex:836
#30 0x000076eda6ea71b3 in __pthread_once_slow
    (once_control=0x76edae977728 <WebKit::AcceleratedBackingStoreDMABuf::rendererBufferMode()::onceFlag>, init_routine=0x76eda52efda0 <std::__once_proxy()>) at pthread_once.c:116
        __cancel_routine = 0x76eda6ea7250 <clear_once_control>
        __clframe = {__cancel_routine = 0x76eda6ea7250 <clear_once_control>, __cancel_arg = 0x76edae977728 <WebKit::AcceleratedBackingStoreDMABuf::rendererBufferMode()::onceFlag>, __do_it = 1, __buffer = {__routine = 0x76eda6ea7210 <__pthread_cleanup_combined_routine_voidptr>, __arg = 0x7ffebcb38410, __canceltype = 0, __prev = 0x0}}
        val = <optimized out>
        newval = <optimized out>
#31 0x000076edaadc95e1 in __gthread_once
    (__func=<optimized out>, __once=0x76edae977728 <WebKit::AcceleratedBackingStoreDMABuf::rendererBufferMode()::onceFlag>)
    at /usr/include/c++/13.2.0/x86_64-unknown-linux-gnu/bits/gthr-default.h:700
#32 std::call_once<WebKit::AcceleratedBackingStoreDMABuf::rendererBufferMode()::<lambda()> > (__once=..., __f=...)
    at /usr/include/c++/13.2.0/mutex:907
        __e = <optimized out>
        __callable = {____f = @0x7ffebcb3848f}
        __exec = {<No data fields>}
        __callable = {____f = <optimized out>}
        __exec = {<No data fields>}
        __e = <optimized out>
#33 WebKit::AcceleratedBackingStoreDMABuf::rendererBufferMode ()
    at /run/build/webkit2gtk-4.0/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp:65
        mode = {m_storage = 2 '\002'}
        onceFlag = {_M_once = 1}
#34 WebKit::AcceleratedBackingStoreDMABuf::checkRequirements ()
    at /run/build/webkit2gtk-4.0/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp:90
#35 0x000076edaadc8ce3 in WebKit::AcceleratedBackingStore::checkRequirements ()
    at /run/build/webkit2gtk-4.0/Source/WebKit/UIProcess/gtk/AcceleratedBackingStore.cpp:68
#36 0x000076edaadd256b in WebKit::HardwareAccelerationManager::HardwareAccelerationManager
    (this=0x76edae977748 <WebKit::HardwareAccelerationManager::singleton()::manager>)
    at /run/build/webkit2gtk-4.0/Source/WebKit/UIProcess/gtk/HardwareAccelerationManager.cpp:55
        disableCompositing = <optimized out>
        forceCompositing = <optimized out>
        disableCompositing = <optimized out>
        forceCompositing = <optimized out>
#37 0x000076edaadd25fc in WTF::NeverDestroyed<WebKit::HardwareAccelerationManager, WTF::AnyThreadsAccessTraits>::NeverDestroyed<>()
    (this=0x76edae977748 <WebKit::HardwareAccelerationManager::singleton()::manager>) at /usr/include/c++/13.2.0/new:175
#38 WebKit::HardwareAccelerationManager::singleton ()
    at /run/build/webkit2gtk-4.0/Source/WebKit/UIProcess/gtk/HardwareAccelerationManager.cpp:36
        manager = {m_storage = {__data = "\001", __align = {<No data fields>}}}
#39 0x000076edaaddd02f in WebKit::WebPreferences::platformInitializeStore (this=0x76ed99010880)
    at /run/build/webkit2gtk-4.0/Source/WebKit/UIProcess/gtk/WebPreferencesGtk.cpp:42
        compositingState = {acceleratedCompositingEnabled = true, forceCompositingMode = false}
#40 0x000076edaabe718f in WebKit::WebPreferences::create (globalDebugKeyPrefix=..., keyPrefix=..., identifier=...)
    at /run/build/webkit2gtk-4.0/Source/WebKit/UIProcess/WebPreferences.cpp:46
#41 WebKit::WebPreferences::createWithLegacyDefaults (identifier=..., keyPrefix=..., globalDebugKeyPrefix=...)
    at /run/build/webkit2gtk-4.0/Source/WebKit/UIProcess/WebPreferences.cpp:51
        preferences = {m_ptr = 0x76ed9901cc00}
#42 0x000076edaabd19ab in WebKit::WebPageGroup::WebPageGroup (this=0x76ed99034540, identifier=<optimized out>)
    at /run/build/webkit2gtk-4.0/WTF/Headers/wtf/RawPtrTraits.h:41
#43 0x000076edaabd1faf in WebKit::WebPageGroup::create (identifier=...)
    at /run/build/webkit2gtk-4.0/Source/WebKit/UIProcess/WebPageGroup.cpp:54
#44 0x000076edaac4b946 in WebKit::WebProcessPool::WebProcessPool (this=0x76ed99068100, configuration=...)
    at /run/build/webkit2gtk-4.0/Source/WebKit/UIProcess/WebProcessPool.cpp:218
        needsGlobalStaticInitialization = <optimized out>
        scheme = <optimized out>
        __for_range = <optimized out>
        __for_begin = <optimized out>
        __for_end = <optimized out>
        urlScheme = <optimized out>
        __for_range = <optimized out>
        __for_begin = <optimized out>
        __for_end = <optimized out>
        s_needsGlobalStaticInitialization = WebKit::WebProcessPool::NeedsGlobalStaticInitialization::Yes
        needsGlobalStaticInitialization = <optimized out>
        scheme = <optimized out>
        __for_range = <optimized out>
        __for_begin = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--
        __for_end = <optimized out>
        urlScheme = <optimized out>
        __for_range = <optimized out>
        __for_begin = <optimized out>
        __for_end = <optimized out>
#45 0x000076edaac4c564 in WebKit::WebProcessPool::create (configuration=...)
    at /run/build/webkit2gtk-4.0/Source/WebKit/UIProcess/WebProcessPool.cpp:179
#46 0x000076edaad050a0 in webkitWebContextConstructed (object=0x638cec6601a0 [WebKitWebContext])
    at /run/build/webkit2gtk-4.0/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp:446
        bundleFilename = std::unique_ptr<char> = {get() = 0x638cec6c3430 "/app/lib/webkit2gtk-4.0/injected-bundle/libwebkit2gtkinjectedbundle.so"}
        webContext = 0x638cec6601a0 [WebKitWebContext]
        priv = 0x638cec6600b0
        configuration = {<API::ObjectImpl<(API::Object::Type)87>> = {<API::Object> = {<WTF::ThreadSafeRefCounted<API::Object, (WTF::DestructionThread)0>> = {<WTF::ThreadSafeRefCountedBase> = {m_refCount = std::atomic<unsigned int> = { 1 }}, <No data fields>}, _vptr.Object = 0x76edae698008 <vtable for API::ProcessPoolConfiguration+16>}, static APIType = API::Object::Type::ProcessPoolConfiguration}, m_injectedBundlePath = {static allowCompactPointers = true, static MaxLength = 2147483647, m_impl = {m_ptr = 0x76ed990089c0}}, m_cachePartitionedURLSchemes = {<WTF::VectorBuffer<WTF::String, 0, WTF::FastMalloc>> = {<WTF::VectorBufferBase<WTF::String, WTF::FastMalloc>> = {m_buffer = 0x0, m_capacity = 0, m_size = 0}, <No data fields>}, <No data fields>}, m_alwaysRevalidatedURLSchemes = {<WTF::VectorBuffer<WTF::String, 0, WTF::FastMalloc>> = {<WTF::VectorBufferBase<WTF::String, WTF::FastMalloc>> = {m_buffer = 0x0, m_capacity = 0, m_size = 0}, <No data fields>}, <No data fields>}, m_additionalReadAccessAllowedPaths = {<WTF::VectorBuffer<WTF::String, 0, WTF::FastMalloc>> = {<WTF::VectorBufferBase<WTF::String, WTF::FastMalloc>> = {m_buffer = 0x0, m_capacity = 0, m_size = 0}, <No data fields>}, <No data fields>}, m_fullySynchronousModeIsAllowedForTesting = false, m_ignoreSynchronousMessagingTimeoutsForTesting = false, m_attrStyleEnabled = false, m_shouldThrowExceptionForGlobalConstantRedeclaration = true, m_alwaysRunsAtBackgroundPriority = false, m_shouldTakeUIBackgroundAssertion = true, m_shouldCaptureDisplayInUIProcess = false, m_presentingApplicationPID = 2, m_processSwapsOnNavigationFromClient = std::optional<bool> = {[contained value] = false}, m_processSwapsOnNavigationFromExperimentalFeatures = false, m_alwaysKeepAndReuseSwappedProcesses = false, m_processSwapsOnNavigationWithinSameNonHTTPFamilyProtocol = false, m_isAutomaticProcessWarmingEnabledByClient = std::optional<bool> [no contained value], m_usesWebProcessCache = true, m_usesBackForwardCache = true, m_clientWouldBenefitFromAutomaticProcessPrewarming = false, m_shouldConfigureJSCForTesting = false, m_isJITEnabled = true, m_usesSingleWebProcess = false, m_useSystemAppearanceForScrollbars = true, m_memoryPressureHandlerConfiguration = std::optional<struct WTF::MemoryPressureHandlerConfiguration> [no contained value], m_disableFontHintingForTesting = false, m_timeZoneOverride = {static allowCompactPointers = true, static MaxLength = 2147483647, m_impl = {m_ptr = 0x0}}}
#47 0x000076edae9ed0fa in g_object_new_internal (class=0x638cec692ea0, params=0x7ffebcb38880, n_params=1) at ../gobject/gobject.c:2657
        nqueue = 0x0
        object = 0x638cec6601a0 [WebKitWebContext]
        i = <optimized out>
        __func__ = "g_object_new_internal"
        _g_boolean_var_89 = <optimized out>
#48 0x000076edae9ee89d in g_object_new_internal (n_params=<optimized out>, params=<optimized out>, class=<optimized out>)
    at ../gobject/gobject.c:2603
        nqueue = <optimized out>
        object = <optimized out>
        i = <optimized out>
        nqueue = <optimized out>
        object = <optimized out>
        i = <optimized out>
        __func__ = "g_object_new_internal"
        _g_boolean_var_89 = <optimized out>
        _g_boolean_var_90 = <optimized out>
        node = <optimized out>
        value = <optimized out>
        pspec = <optimized out>
        j = <optimized out>
        user_specified = <optimized out>
#49 g_object_newv (object_type=<optimized out>, n_parameters=<optimized out>, parameters=<optimized out>) at ../gobject/gobject.c:2838
        class = 0x638cec692ea0
        unref_class = <optimized out>
        object = <optimized out>
        __func__ = "g_object_newv"
#50 0x0000638ce272a877 in ??? ()
#51 0x0000638ce2a739da in ??? ()
#52 0x0000638ce23d179b in ??? ()
#53 0x0000638ce26719b0 in ??? ()
#54 0x0000638ce26a3b23 in ??? ()
#55 0x0000638ce23e13c4 in ??? ()
#56 0x0000638ce26b0a0d in ??? ()
#57 0x000076eda6e3b08a in __libc_start_call_main (main=main@entry=0x638ce26b0650, argc=argc@entry=1, argv=argv@entry=0x7ffebcb3e4f8)
    at ../sysdeps/nptl/libc_start_call_main.h:58
        self = <optimized out>
        result = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140732064326904, -2799811994965972395, 1, 0, 130763209740288, 0, -2799811995051955627, -3818166880237065643}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x1, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 1}}}
        not_first_call = <optimized out>
#58 0x000076eda6e3b14b in __libc_start_main_impl
    (main=0x638ce26b0650, argc=1, argv=0x7ffebcb3e4f8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffebcb3e4e8) at ../csu/libc-start.c:360
#59 0x0000638ce238770e in ??? ()

Managed to get a stacktrace.

getchoo commented 3 weeks ago

This is probably the result of upstream webkitgtk regressions with NVIDIA GPUs such as https://bugs.webkit.org/show_bug.cgi?id=278230. Some workarounds I've seen work for some depending on the driver version are setting WEBKIT_DISABLE_DMABUF_RENDERER=1 or (do not set these at the same time) WEBKIT_DISABLE_COMPOSITING_MODE=1, but last time I tested this on (I believe) 555, neither worked. NVK did however, and I haven't seen this reported on AMD/Intel GPUs so I'm pretty confident in this

The only solution until these issues are fixed would be to downgrade the version of webkitgtk being used -- but this has some big costs in:

Honestly not sure what to do in this case 🤷🏻

mirai-toto commented 3 weeks ago

Thank you for the answer, great to know.