Bug 491600 - Plasma on Wayland fails to start on FreeBSD
Summary: Plasma on Wayland fails to start on FreeBSD
Status: RESOLVED DOWNSTREAM
Alias: None
Product: kwin
Classification: Plasma
Component: wayland-generic (other bugs)
Version First Reported In: 6.1.2
Platform: FreeBSD Ports FreeBSD
: NOR major
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-08-11 23:09 UTC by Dušan Gvozdenović
Modified: 2024-08-12 14:47 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments
Logs generated from the startup script. (2.92 MB, text/x-log)
2024-08-11 23:09 UTC, Dušan Gvozdenović
Details
Startup script (452 bytes, application/x-shellscript)
2024-08-11 23:10 UTC, Dušan Gvozdenović
Details
Logs from when I try to start from SDDM (7.78 KB, text/x-log)
2024-08-11 23:11 UTC, Dušan Gvozdenović
Details
kwin_wayland.core.gz (3.83 MB, application/gzip)
2024-08-11 23:53 UTC, Dušan Gvozdenović
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Dušan Gvozdenović 2024-08-11 23:09:36 UTC
Created attachment 172523 [details]
Logs generated from the startup script.

SUMMARY
Plasma with Wayland fails to start on FreeBSD. X11 session starts fine though.

I am using a i5-8265U processor with integrated graphics and have drm-515-kmod installed. 

Attached are the logs generated from the startup script posted below. 

STEPS TO REPRODUCE

This is the startup script I used:

#!/usr/local/bin/zsh

export TZ=Europe/Belgrade
export WAYLAND_DEBUG=1
export QT_DEBUG_PLUGINS=1
export QT_LOGGING_RULES="kwin_*=true;qt.*=true"

export XDG_SESSION_TYPE="wayland"
export QT_QPA_PLATFORMTHEME=qt6ct
export QT_QPA_PLATFORM=wayland
export LIBSEAT_BACKEND=consolekit2

export QT_WAYLAND_SHELL_INTEGRATION="xdg-shell"

exec -- ck-launch-session dbus-launch --exit-with-session startplasma-wayland |& tee ~/start-plasma.sh.log

OBSERVED RESULT
Plasma on Wayland doesn't start. See the log files.

EXPECTED RESULT
Plasma on Wayland should start.

SOFTWARE/OS VERSIONS

Operating System: FreeBSD 14.1
KDE Plasma Version: 6.1.2
KDE Frameworks Version: 6.3.0
Qt Version: 6.7.2
Kernel Version: 14.1-RELEASE-p3 (64-bit)
Graphics Platform: Wayland
Memory: 15.8 GiB of RAM
Graphics Processor: Mesa Intel UHD Graphics 620
Comment 1 Dušan Gvozdenović 2024-08-11 23:10:28 UTC
Created attachment 172524 [details]
Startup script
Comment 2 Dušan Gvozdenović 2024-08-11 23:11:14 UTC
Created attachment 172525 [details]
Logs from when I try to start from SDDM
Comment 3 Dušan Gvozdenović 2024-08-11 23:53:35 UTC
Created attachment 172526 [details]
kwin_wayland.core.gz

I did not notice initially that kwin_wayland actually crashes when I try this. Backtrace:
dusan@Dell-Latitude-5400 ~> lldb kwin_wayland -c kwin_wayland.core
(lldb) target create "kwin_wayland" --core "kwin_wayland.core"
Core file '/home/dusan/kwin_wayland.core' (x86_64) was loaded.
(lldb) bt
* thread #1, name = 'kwin_wayland', stop reason = signal SIGSEGV
  * frame #0: 0x000000084607d9e6 libudev.so.0`udev_list_entry_get_by_name + 38
    frame #1: 0x000000084607c5fd libudev.so.0`udev_device_has_tag + 29
    frame #2: 0x000000082cde87a1 libkwin.so.6`___lldb_unnamed_symbol29807 + 449
    frame #3: 0x000000083db7358a libQt6Core.so.6`___lldb_unnamed_symbol12358 + 1354
    frame #4: 0x000000082ccceea9 libkwin.so.6`KWin::InputRedirection::addInputDevice(KWin::InputDevice*) + 4025
    frame #5: 0x000000083db7358a libQt6Core.so.6`___lldb_unnamed_symbol12358 + 1354
    frame #6: 0x000000082cc3711d libkwin.so.6`KWin::InputBackend::deviceAdded(KWin::InputDevice*) + 61
    frame #7: 0x000000083db7358a libQt6Core.so.6`___lldb_unnamed_symbol12358 + 1354
    frame #8: 0x000000082cee04eb libkwin.so.6`KWin::LibInput::Connection::processEvents() + 3963
    frame #9: 0x000000083db67543 libQt6Core.so.6`QObject::event(QEvent*) + 611
    frame #10: 0x0000000837cfee88 libQt6Widgets.so.6`QApplicationPrivate::notify_helper(QObject*, QEvent*) + 248
    frame #11: 0x0000000837cffdd9 libQt6Widgets.so.6`QApplication::notify(QObject*, QEvent*) + 553
    frame #12: 0x000000083db1f644 libQt6Core.so.6`QCoreApplication::notifyInternal2(QObject*, QEvent*) + 180
    frame #13: 0x000000083db20817 libQt6Core.so.6`QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) + 503
    frame #14: 0x000000083dca7a38 libQt6Core.so.6`QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 72
    frame #15: 0x000000083b7cd73e libQt6Gui.so.6`QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 14
    frame #16: 0x000000083db28af7 libQt6Core.so.6`QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 519
    frame #17: 0x000000083db1fe34 libQt6Core.so.6`QCoreApplication::exec() + 148
    frame #18: 0x00000000002b6a0c kwin_wayland`___lldb_unnamed_symbol4202 + 12476
    frame #19: 0x000000083fd86a6a libc.so.7`__libc_start1(argc=12, argv=0x000000082128a048, env=0x000000082128a0b0, cleanup=<unavailable>, mainX=(kwin_wayland`___lldb_unnamed_symbol4202)) at libc_start1.c:157:7
    frame #20: 0x00000000002856f0 kwin_wayland`___lldb_unnamed_symbol3089 + 48
Comment 4 Dušan Gvozdenović 2024-08-12 01:05:47 UTC
Sorry, for noise. This is the full stacktrace after I recompiled plasma6-kwin (kwin_wayland):

dusan@Dell-Latitude-5400 ~> lldb kwin_wayland -c kwin_wayland.core
(lldb) target create "kwin_wayland" --core "kwin_wayland.core"
Core file '/home/dusan/kwin_wayland.core' (x86_64) was loaded.
(lldb) bt
* thread #1, name = 'kwin_wayland', stop reason = signal SIGSEGV
  * frame #0: 0x00000008486949e6 libudev.so.0`udev_list_entry_get_by_name + 38
    frame #1: 0x00000008486935fd libudev.so.0`udev_device_has_tag + 29
    frame #2: 0x0000000829ef684d libkwin.so.6`KWin::shouldIgnoreDevice(device=0x00001dfeaf825a00) at tabletmodemanager.cpp:38:18
    frame #3: 0x0000000829ef79ab libkwin.so.6`KWin::TabletModeTouchpadRemovedSpy::check(this=0x0000000820b54717, device=0x00001dfeaf825a00)::'lambda0'(KWin::InputDevice*)::operator()(KWin::InputDevice*) const at tabletmodemanager.cpp:104:44
    frame #4: 0x0000000829ef7885 libkwin.so.6`bool std::__1::any_of[abi:sn180100]<QList<KWin::InputDevice*>::const_iterator, KWin::TabletModeTouchpadRemovedSpy::check()::'lambda0'(KWin::InputDevice*)>(__first=const_iterator @ 0x0000000820b54720, __last=const_iterator @ 0x0000000820b54718, __pred=(unnamed class) @ 0x0000000820b54717) at any_of.h:25:9
    frame #5: 0x0000000829ef72ee libkwin.so.6`KWin::TabletModeTouchpadRemovedSpy::check(this=0x00001dfeaf8a79e0) at tabletmodemanager.cpp:103:33
    frame #6: 0x0000000829ef7240 libkwin.so.6`KWin::TabletModeTouchpadRemovedSpy::refresh(this=0x00001dfeaf8a79e0, inputDevice=0x00001dfeaf825a00) at tabletmodemanager.cpp:91:13
    frame #7: 0x0000000829ef763d libkwin.so.6`QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<KWin::InputDevice*>, void, void (KWin::TabletModeTouchpadRemovedSpy::*)(KWin::InputDevice*)>::call(f=(libkwin.so.6`KWin::TabletModeTouchpadRemovedSpy::refresh(KWin::InputDevice*) at tabletmodemanager.cpp:89), o=0x00001dfeaf8a79e0, arg=0x0000000820b54bc0) at qobjectdefs_impl.h:145:13
    frame #8: 0x0000000829ef757d libkwin.so.6`void QtPrivate::FunctionPointer<void (KWin::TabletModeTouchpadRemovedSpy::*)(KWin::InputDevice*)>::call<QtPrivate::List<KWin::InputDevice*>, void>(f=(libkwin.so.6`KWin::TabletModeTouchpadRemovedSpy::refresh(KWin::InputDevice*) at tabletmodemanager.cpp:89), o=0x00001dfeaf8a79e0, arg=0x0000000820b54bc0) at qobjectdefs_impl.h:182:13
    frame #9: 0x0000000829ef74a5 libkwin.so.6`QtPrivate::QCallableObject<void (KWin::TabletModeTouchpadRemovedSpy::*)(KWin::InputDevice*), QtPrivate::List<KWin::InputDevice*>, void>::impl(which=1, this_=0x00001dfeaf8a79a0, r=0x00001dfeaf8a79e0, a=0x0000000820b54bc0, ret=0x0000000000000000) at qobjectdefs_impl.h:553:21
    frame #10: 0x000000083d759c1e libQt6Core.so.6`QtPrivate::QSlotObjectBase::call(this=0x00001dfeaf8a79a0, r=0x00001dfeaf8a79e0, a=0x0000000820b54bc0) at qobjectdefs_impl.h:469:51
    frame #11: 0x000000083d800407 libQt6Core.so.6`void doActivate<false>(sender=0x00001dfeae646540, signal_index=3, argv=0x0000000820b54bc0) at qobject.cpp:4086:26
    frame #12: 0x000000083d7f64d9 libQt6Core.so.6`QMetaObject::activate(sender=0x00001dfeae646540, m=0x000000082a411c20, local_signal_index=0, argv=0x0000000820b54bc0) at qobject.cpp:4146:9
    frame #13: 0x0000000829c2b664 libkwin.so.6`KWin::InputRedirection::deviceAdded(this=0x00001dfeae646540, _t1=0x00001dfeaf825a00) at moc_input.cpp:334:5
    frame #14: 0x0000000829c2b410 libkwin.so.6`KWin::InputRedirection::addInputDevice(this=0x00001dfeae646540, device=0x00001dfeaf825a00) at input.cpp:3072:12
    frame #15: 0x0000000829c632ed libkwin.so.6`QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<KWin::InputDevice*>, void, void (KWin::InputRedirection::*)(KWin::InputDevice*)>::call(f=(libkwin.so.6`KWin::InputRedirection::addInputDevice(KWin::InputDevice*) at input.cpp:3006), o=0x00001dfeae646540, arg=0x0000000820b555b0) at qobjectdefs_impl.h:145:13
    frame #16: 0x0000000829c6322d libkwin.so.6`void QtPrivate::FunctionPointer<void (KWin::InputRedirection::*)(KWin::InputDevice*)>::call<QtPrivate::List<KWin::InputDevice*>, void>(f=(libkwin.so.6`KWin::InputRedirection::addInputDevice(KWin::InputDevice*) at input.cpp:3006), o=0x00001dfeae646540, arg=0x0000000820b555b0) at qobjectdefs_impl.h:182:13
    frame #17: 0x0000000829c63155 libkwin.so.6`QtPrivate::QCallableObject<void (KWin::InputRedirection::*)(KWin::InputDevice*), QtPrivate::List<KWin::InputDevice*>, void>::impl(which=1, this_=0x00001dfeae6e74c0, r=0x00001dfeae646540, a=0x0000000820b555b0, ret=0x0000000000000000) at qobjectdefs_impl.h:553:21
    frame #18: 0x000000083d759c1e libQt6Core.so.6`QtPrivate::QSlotObjectBase::call(this=0x00001dfeae6e74c0, r=0x00001dfeae646540, a=0x0000000820b555b0) at qobjectdefs_impl.h:469:51
    frame #19: 0x000000083d800407 libQt6Core.so.6`void doActivate<false>(sender=0x00001dfeaf808150, signal_index=3, argv=0x0000000820b555b0) at qobject.cpp:4086:26
    frame #20: 0x000000083d7f64d9 libQt6Core.so.6`QMetaObject::activate(sender=0x00001dfeaf808150, m=0x000000082a409508, local_signal_index=0, argv=0x0000000820b555b0) at qobject.cpp:4146:9
    frame #21: 0x0000000829a7bca4 libkwin.so.6`KWin::InputBackend::deviceAdded(this=0x00001dfeaf808150, _t1=0x00001dfeaf825a00) at moc_inputbackend.cpp:157:5
    frame #22: 0x000000082a17df1d libkwin.so.6`QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<KWin::LibInput::Device*>, void, void (KWin::InputBackend::*)(KWin::InputDevice*)>::call(f=(libkwin.so.6`KWin::InputBackend::deviceAdded(KWin::InputDevice*) at moc_inputbackend.cpp:155), o=0x00001dfeaf808150, arg=0x0000000820b559b0) at qobjectdefs_impl.h:145:13
    frame #23: 0x000000082a17de5d libkwin.so.6`void QtPrivate::FunctionPointer<void (KWin::InputBackend::*)(KWin::InputDevice*)>::call<QtPrivate::List<KWin::LibInput::Device*>, void>(f=(libkwin.so.6`KWin::InputBackend::deviceAdded(KWin::InputDevice*) at moc_inputbackend.cpp:155), o=0x00001dfeaf808150, arg=0x0000000820b559b0) at qobjectdefs_impl.h:182:13
    frame #24: 0x000000082a17dd85 libkwin.so.6`QtPrivate::QCallableObject<void (KWin::InputBackend::*)(KWin::InputDevice*), QtPrivate::List<KWin::LibInput::Device*>, void>::impl(which=1, this_=0x00001dfeae6e7500, r=0x00001dfeaf808150, a=0x0000000820b559b0, ret=0x0000000000000000) at qobjectdefs_impl.h:553:21
    frame #25: 0x000000083d759c1e libQt6Core.so.6`QtPrivate::QSlotObjectBase::call(this=0x00001dfeae6e7500, r=0x00001dfeaf808150, a=0x0000000820b559b0) at qobjectdefs_impl.h:469:51
    frame #26: 0x000000083d800407 libQt6Core.so.6`void doActivate<false>(sender=0x00001dfeae7491c0, signal_index=3, argv=0x0000000820b559b0) at qobject.cpp:4086:26
    frame #27: 0x000000083d7f64d9 libQt6Core.so.6`QMetaObject::activate(sender=0x00001dfeae7491c0, m=0x000000082a426f48, local_signal_index=0, argv=0x0000000820b559b0) at qobject.cpp:4146:9
    frame #28: 0x000000082a144174 libkwin.so.6`KWin::LibInput::Connection::deviceAdded(this=0x00001dfeae7491c0, _t1=0x00001dfeaf825a00) at moc_connection.cpp:183:5
    frame #29: 0x000000082a141687 libkwin.so.6`KWin::LibInput::Connection::processEvents(this=0x00001dfeae7491c0) at connection.cpp:286:20
    frame #30: 0x000000082a17da1c libkwin.so.6`KWin::LibinputBackend::LibinputBackend(KWin::Session*, QObject*)::$_0::operator()(this=0x00001dfeae6e7550) const at libinputbackend.cpp:25:23
    frame #31: 0x000000082a17d9c7 libkwin.so.6`QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, KWin::LibinputBackend::LibinputBackend(KWin::Session*, QObject*)::$_0>::call(f=0x00001dfeae6e7550, arg=0x00001dfeafe140c8) at qobjectdefs_impl.h:137:13
    frame #32: 0x000000082a17d981 libkwin.so.6`void QtPrivate::FunctorCallable<KWin::LibinputBackend::LibinputBackend(KWin::Session*, QObject*)::$_0>::call<QtPrivate::List<>, void>(f=0x00001dfeae6e7550, (null)=0x00001dfeaf808150, arg=0x00001dfeafe140c8) at qobjectdefs_impl.h:345:13
    frame #33: 0x000000082a17d91e libkwin.so.6`QtPrivate::QCallableObject<KWin::LibinputBackend::LibinputBackend(KWin::Session*, QObject*)::$_0, QtPrivate::List<>, void>::impl(which=1, this_=0x00001dfeae6e7540, r=0x00001dfeaf808150, a=0x00001dfeafe140c8, ret=0x0000000000000000) at qobjectdefs_impl.h:555:21
    frame #34: 0x000000083d759c1e libQt6Core.so.6`QtPrivate::QSlotObjectBase::call(this=0x00001dfeae6e7540, r=0x00001dfeaf808150, a=0x00001dfeafe140c8) at qobjectdefs_impl.h:469:51
    frame #35: 0x000000083d7eb40f libQt6Core.so.6`QMetaCallEvent::placeMetaCall(this=0x00001dfeafe14080, object=0x00001dfeaf808150) at qobject.cpp:654:21
    frame #36: 0x000000083d7ed2ba libQt6Core.so.6`QObject::event(this=0x00001dfeaf808150, e=0x00001dfeafe14080) at qobject.cpp:1452:18
    frame #37: 0x000000083828b75a libQt6Widgets.so.6`QApplicationPrivate::notify_helper(this=0x00001dfeae67dc00, receiver=0x00001dfeaf808150, e=0x00001dfeafe14080) at qapplication.cpp:3287:26
    frame #38: 0x000000083828f86b libQt6Widgets.so.6`QApplication::notify(this=0x0000000820b58c28, receiver=0x00001dfeaf808150, e=0x00001dfeafe14080) at qapplication.cpp:3238:18
    frame #39: 0x000000083d7436a3 libQt6Core.so.6`QCoreApplication::notifyInternal2(receiver=0x00001dfeaf808150, event=0x00001dfeafe14080) at qcoreapplication.cpp:1142:18
    frame #40: 0x000000083d7444f3 libQt6Core.so.6`QCoreApplication::sendEvent(receiver=0x00001dfeaf808150, event=0x00001dfeafe14080) at qcoreapplication.cpp:1583:12
    frame #41: 0x000000083d745622 libQt6Core.so.6`QCoreApplicationPrivate::sendPostedEvents(receiver=0x0000000000000000, event_type=0, data=0x00001dfeae64d000) at qcoreapplication.cpp:1940:9
    frame #42: 0x000000083daab0ef libQt6Core.so.6`QEventDispatcherUNIX::processEvents(this=0x00001dfeae6782b0, flags=(i = 164)) at qeventdispatcher_unix.cpp:415:5
    frame #43: 0x000000083b1e0ebf libQt6Gui.so.6`QUnixEventDispatcherQPA::processEvents(this=0x00001dfeae6782b0, flags=(i = 164)) at qunixeventdispatcher.cpp:27:54
    frame #44: 0x000000083d75de14 libQt6Core.so.6`QEventLoop::processEvents(this=0x0000000820b57468, flags=(i = 164)) at qeventloop.cpp:100:55
    frame #45: 0x000000083d75e068 libQt6Core.so.6`QEventLoop::exec(this=0x0000000820b57468, flags=(i = 128)) at qeventloop.cpp:182:9
    frame #46: 0x000000083d744195 libQt6Core.so.6`QCoreApplication::exec() at qcoreapplication.cpp:1486:32
    frame #47: 0x000000083a9aeaf6 libQt6Gui.so.6`QGuiApplication::exec() at qguiapplication.cpp:1926:12
    frame #48: 0x000000083828c949 libQt6Widgets.so.6`QApplication::exec() at qapplication.cpp:2555:12
    frame #49: 0x00000000003b0980 kwin_wayland`main(argc=12, argv=0x0000000820b58ea0) at main_wayland.cpp:639:12
    frame #50: 0x000000084011ca6a libc.so.7`__libc_start1(argc=12, argv=0x0000000820b58ea0, env=0x0000000820b58f08, cleanup=<unavailable>, mainX=(kwin_wayland`main at main_wayland.cpp:271)) at libc_start1.c:157:7
    frame #51: 0x000000000031f8c0 kwin_wayland`_start at crt1_s.S:83
Comment 5 David Edmundson 2024-08-12 14:47:22 UTC
Crash is in udev.