Bug 381210 - kwin>=5.10.0 crashes immediately on start on FreeBSD
Summary: kwin>=5.10.0 crashes immediately on start on FreeBSD
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: input (show other bugs)
Version: 5.10.0
Platform: Other FreeBSD
: NOR grave
Target Milestone: ---
Assignee: KWin default assignee
URL: https://phabricator.kde.org/D6260
Keywords:
Depends on:
Blocks:
 
Reported: 2017-06-14 18:26 UTC by Tobias C. Berner
Modified: 2017-06-20 05:08 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 5.10.3
mgraesslin: X11+
mgraesslin: ReviewRequest+


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Tobias C. Berner 2017-06-14 18:26:17 UTC
Since the update to 5.10.* kwin_x11 crashes immediately on startup as reported in [1] and [2].



[1] https://mail.kde.org/pipermail/kde-freebsd/2017-June/026159.html
[2] https://mail.kde.org/pipermail/kde-freebsd/2017-June/026176.html
Comment 1 mnd999 2017-06-14 19:13:42 UTC
[mark at markspc /usr/home/mark]$ lldb /usr/local/bin/kwin_x11 -c
kwin_x11.core
(lldb) target create "/usr/local/bin/kwin_x11" --core "kwin_x11.core"
Core file '/usr/home/mark/kwin_x11.core' (x86_64) was loaded.
(lldb) bt all
error: libkdeinit5_kwin_x11.so :: Class 'KSelectionOwner' has a base class
'QObject' which does not have a complete definition.
error: libkdeinit5_kwin_x11.so :: Try compiling the source file with
-fno-limit-debug-info.
* thread #1: tid = 101549, 0x0000000818d48525, name = 'kwin_x11', stop
reason = signal SIGSEGV
  * frame #0: 0x0000000818d48525
    frame #1: 0x000000080a8cd83f
libQt5Core.so.5`QThreadPrivate::start(arg=0x0000000816b31000) + 511 at
qthread_unix.cpp:368
    frame #2: 0x000000080b7d9b55 libthr.so.3`??? + 325

  thread #2: tid = 100635, 0x000000080badf48a libc.so.7`__sys_nanosleep +
10, name = 'kwin_x11', stop reason = signal SIGSEGV
    frame #0: 0x000000080badf48a libc.so.7`__sys_nanosleep + 10
    frame #1: 0x000000080b7dc4cc libthr.so.3`??? + 44
    frame #2: 0x000000080ba632cb libc.so.7`sleep + 59
    frame #3: 0x000000080082ac25
libkdeinit5_kwin_x11.so`KWin::ApplicationX11::crashHandler(signal=6) + 213
at main_x11.cpp:325
    frame #4: 0x0000000808ad3b8b
libKF5Crash.so.5`KCrash::defaultCrashHandler(int) + 91
    frame #5: 0x000000080b7df78f libthr.so.3`??? + 223
    frame #6: 0x000000080b7ded6f libthr.so.3`??? + 319
    frame #7: 0x00007ffffffff003
    frame #8: 0x000000080babf499 libc.so.7`abort + 73
    frame #9: 0x000000080a8a8538
libQt5Core.so.5`qt_message_fatal((null)=QtFatalMsg,
context=0x00007fffffffc100, message=0x00007fffffffc0c8) + 24 at
qlogging.cpp:1682
    frame #10: 0x000000080a8aa66e
libQt5Core.so.5`QMessageLogger::fatal(this=0x00007fffffffc100, msg="")
const + 446 at qlogging.cpp:793
    frame #11: 0x000000080a8a0ffa libQt5Core.so.5`qt_assert_x(where="",
what="Cannot send events to objects owned by a different thread. Current
thread 816a44030. Receiver '' (of type 'KWin::ApplicationX11') was created
in thread 816a44050", file="", line=541) + 90 at qglobal.cpp:3089
    frame #12: 0x000000080ab83fd7
libQt5Core.so.5`QCoreApplicationPrivate::checkReceiverThread(receiver=0x00007fffffffe498)
+ 711 at qcoreapplication.cpp:533
    frame #13: 0x00000008095782b9
libQt5Widgets.so.5`QApplication::notify(this=0x00007fffffffe498,
receiver=0x00007fffffffe498, e=0x00007fffffffd128) + 169 at
qapplication.cpp:3021
    frame #14: 0x000000080082ab07
libkdeinit5_kwin_x11.so`KWin::ApplicationX11::notify(this=0x00007fffffffe498,
o=0x00007fffffffe498, e=0x00007fffffffd128) + 87 at main_x11.cpp:277
    frame #15: 0x000000080ab85dcd
libQt5Core.so.5`QCoreApplication::notifyInternal2(receiver=0x00007fffffffe498,
event=0x00007fffffffd128) + 269 at qcoreapplication.cpp:988
    frame #16: 0x000000080ab8a8d8
libQt5Core.so.5`QCoreApplication::sendEvent(receiver=0x00007fffffffe498,
event=0x00007fffffffd128) + 56 at qcoreapplication.h:231
    frame #17: 0x000000080abcd2a3
libQt5Core.so.5`QObjectPrivate::setParent_helper(this=0x0000000816a58c30,
o=0x0000000000000000) + 371 at qobject.cpp:1996
    frame #18: 0x000000080abccf8b
libQt5Core.so.5`QObject::~QObject(this=0x0000000816b8fa00) + 2203 at
qobject.cpp:1048
    frame #19: 0x0000000800ee6060
libkwin.so.5`KWin::Platform::~Platform(this=0x0000000816b8fa00) + 96 at
platform.cpp:45
    frame #20: 0x000000081bc1309d
KWinX11Platform.so`KWin::X11StandalonePlatform::~X11StandalonePlatform(this=0x0000000816b8fa00)
+ 61 at x11_platform.cpp:66
    frame #21: 0x000000081bc130c9
KWinX11Platform.so`KWin::X11StandalonePlatform::~X11StandalonePlatform(this=0x0000000816b8fa00)
+ 25 at x11_platform.cpp:66
    frame #22: 0x000000080ab78219
libQt5Core.so.5`QLibraryPrivate::unload(this=0x0000000816ba0240,
flag=UnloadSys) + 137 at qlibrary.cpp:562
    frame #23: 0x000000080ab7ae17 libQt5Core.so.5`QLibraryStore::cleanup()
+ 231 at
qlibrary.cpp:405
    frame #24: 0x000000080ab7a759 libQt5Core.so.5`qlibraryCleanup() + 9 at
qlibrary.cpp:427

    frame #25: 0x000000080ab77a71 libQt5Core.so.5`(anonymous
namespace)::qlibraryCleanup_dtor_class_::~qlibraryCleanup_dtor_class_(this=0x000000080b0c62e0)
+ 17 at
qlibrary.cpp:429

    frame #26: 0x000000080bb2fe22 libc.so.7`__cxa_finalize +
306

    frame #27: 0x000000080a887524 libQt5Core.so.5`__do_global_dtors_aux +
36

    frame #28: 0x000000080ac95451
libQt5Core.so.5

    frame #29: 0x0000000800606de9 ld-elf.so.1`??? +
681

    frame #30: 0x000000080060604b ld-elf.so.1`??? +
43

    frame #31: 0x000000080bb2fe26 libc.so.7`__cxa_finalize +
310

    frame #32: 0x000000080babf191 libc.so.7`exit +
33

    frame #33: 0x000000080082a56b
libkdeinit5_kwin_x11.so`KWin::ApplicationX11::crashChecking(this=0x00007fffffffe498)
+ 219 at main_x11.cpp:295
    frame #34: 0x000000080082a27c
libkdeinit5_kwin_x11.so`KWin::ApplicationX11::performStartup(this=0x00007fffffffe498)
+ 28 at main_x11.cpp:212
    frame #35: 0x0000000800d8adc0
libkwin.so.5`KWin::Application::start(this=0x00007fffffffe498) + 496 at
main.cpp:156
    frame #36: 0x000000080082b61f libkdeinit5_kwin_x11.so`::kdemain(argc=3,
argv=0x00007fffffffe638) + 2383 at
main_x11.cpp:461
    frame #37: 0x0000000000400d32 kwin_x11`main(argc=3,
argv=0x00007fffffffe638) + 34 at
kwin_x11_dummy.cpp:3
    frame #38: 0x0000000000400bff kwin_x11`_start + 383
Comment 2 Christoph Feck 2017-06-14 19:47:18 UTC
The backtraces are misleading, because they only show the "give-up" exit() when kwin has crashed four times in a row.

Is it possible to get the backtrace of the actual crash?
Comment 3 Tobias C. Berner 2017-06-14 20:12:43 UTC
I'm not sure how helpful this is:

#0  0x000000080738b903 in xkb_state_mod_index_is_active () from /usr/local/lib/libxkbcommon.so.0
No symbol table info available.
#1  0x0000000800f14697 in KWin::Xkb::modifiersRelevantForGlobalShortcuts (this=0x815b28880) at /wrkdirs/usr/ports/x11-wm/plasma5-kwin/work/kwin-5.10.2/xkb.cpp:391
        mods = {i = 0}
        consumedMods = {i = 364021888}
#2  0x0000000800d48c11 in KWin::KeyboardInputRedirection::modifiersRelevantForGlobalShortcuts (this=0x819616740) at /wrkdirs/usr/ports/x11-wm/plasma5-kwin/work/kwin-5.10.2/keyboard_input.h:87
No locals.
#3  0x0000000800d44999 in KWin::InputRedirection::modifiersRelevantForGlobalShortcuts (this=0x815ae85c0) at /wrkdirs/usr/ports/x11-wm/plasma5-kwin/work/kwin-5.10.2/input.cpp:1948
No locals.
#4  0x0000000800d66c20 in KWin::PointerInputRedirection::processButton (this=0x815a45760, button=272, state=KWin::InputRedirection::PointerButtonPressed, time=1171810, device=0x0) at /wrkdirs/usr/ports/x11-wm/plasma5-kwin/work/kwin-5.10.2/pointer_input.cpp:306
        type = QEvent::MouseButtonPress
        event = {<QMouseEvent> = {<QInputEvent> = {<QEvent> = {_vptr$QEvent = 0x801247f48 <vtable for KWin::MouseEvent+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x80aab2ec0, data = 0x80a7ff770, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}},
                d = 0x0, t = 2, posted = 0, spont = 0, m_accept = 1, reserved = 816}, modState = {i = 0}, ts = 1171810}, l = {xp = 0, yp = 0}, w = {xp = 0, yp = 0}, s = {xp = 0, yp = 0}, b = Qt::LeftButton, mouseState = {i = 1}, caps = 0, velocity = {xp = 0, yp = 0}}, m_delta = {wd = -1,
            ht = -1}, m_deltaUnccelerated = {wd = -1, ht = -1}, m_timestampMicroseconds = 0, m_device = 0x0, m_modifiersRelevantForShortcuts = {i = 0}, m_nativeButton = 0}
#5  0x0000000800d44180 in KWin::InputRedirection::processPointerButton (this=0x815ae85c0, button=272, state=KWin::InputRedirection::PointerButtonPressed, time=1171810) at /wrkdirs/usr/ports/x11-wm/plasma5-kwin/work/kwin-5.10.2/input.cpp:1828
No locals.
#6  0x0000000800ee8c7e in KWin::Platform::pointerButtonPressed (this=0x815b28180, button=272, time=1171810) at /wrkdirs/usr/ports/x11-wm/plasma5-kwin/work/kwin-5.10.2/platform.cpp:205
No locals.
#7  0x0000000819043f43 in KWin::XInputEventFilter::event (this=0x81a0a5920, event=0x8188648c0) at /wrkdirs/usr/ports/x11-wm/plasma5-kwin/work/kwin-5.10.2/plugins/platforms/x11/standalone/xinputintegration.cpp:99
        e = 0x8188648c0
        ge = {m_event = 0x8188648c0}
#8  0x0000000800d9aa34 in KWin::Workspace::workspaceEvent (this=0x818846000, e=0x8188648c0) at /wrkdirs/usr/ports/x11-wm/plasma5-kwin/work/kwin-5.10.2/events.cpp:239
        filter = 0x81a0a5920
        _container_ = {c = {<QListSpecialMethods<KWin::X11EventFilter*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__1::__atomic_base<int, true>> = {<std::__1::__atomic_base<int, false>> = {__a_ = -1}, <No data fields>}, <No data fields>}}},
                  alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x815b2ea00}, d = 0x815b2ea00}}, i = {i = 0x815b2ea10}, e = {i = 0x815b2ea18}, control = 1}
        ge = 0x8188648c0
        values = {0}
        eventType = 35 '#'
        eventWindow = 16777232
#9  0x0000000800d8e0e3 in KWin::XcbEventFilter::nativeEventFilter (this=0x81880db00, eventType=..., message=0x8188648c0, result=0x7fffffffded0) at /wrkdirs/usr/ports/x11-wm/plasma5-kwin/work/kwin-5.10.2/main.cpp:420
        event = 0x8188648c0
#10 0x000000080a65cad0 in QAbstractEventDispatcher::filterNativeEvent(QByteArray const&, void*, long*) () from /usr/local/lib/qt5/libQt5Core.so.5
No symbol table info available.
#11 0x0000000817741745 in QXcbConnection::handleXcbEvent(xcb_generic_event_t*) () from /usr/local/lib/qt5/libQt5XcbQpa.so.5
No symbol table info available.
#12 0x0000000817743c13 in QXcbConnection::processXcbEvents() () from /usr/local/lib/qt5/libQt5XcbQpa.so.5
No symbol table info available.
#13 0x000000080a68a4c1 in QObject::event(QEvent*) () from /usr/local/lib/qt5/libQt5Core.so.5
No symbol table info available.
#14 0x000000080936ff60 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/local/lib/qt5/libQt5Widgets.so.5
No symbol table info available.
#15 0x0000000809371300 in QApplication::notify(QObject*, QEvent*) () from /usr/local/lib/qt5/libQt5Widgets.so.5
No symbol table info available.
#16 0x000000080082cb77 in KWin::ApplicationX11::notify (this=0x7fffffffe718, o=0x815aa9000, e=0x81889f9c0) at /wrkdirs/usr/ports/x11-wm/plasma5-kwin/work/kwin-5.10.2/main_x11.cpp:277
No locals.
#17 0x000000080a6615d3 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/local/lib/qt5/libQt5Core.so.5
No symbol table info available.
#18 0x000000080a6622da in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/local/lib/qt5/libQt5Core.so.5
No symbol table info available.
#19 0x000000080a6ae658 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/local/lib/qt5/libQt5Core.so.5
No symbol table info available.
#20 0x00000008177b16be in ?? () from /usr/local/lib/qt5/libQt5XcbQpa.so.5
No symbol table info available.
#21 0x000000080a65d5ce in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/local/lib/qt5/libQt5Core.so.5
No symbol table info available.
#22 0x000000080a661c41 in QCoreApplication::exec() () from /usr/local/lib/qt5/libQt5Core.so.5
No symbol table info available.
#23 0x000000080082d6b0 in kdemain (argc=2, argv=0x7fffffffe8b8) at /wrkdirs/usr/ports/x11-wm/plasma5-kwin/work/kwin-5.10.2/main_x11.cpp:466
        primaryScreen = 0
        c = 0x0
        number_of_screens = 1
        isMultiHead = {<No data fields>}
        a = {<KWin::Application> = {<QApplication> = {<QGuiApplication> = {<QCoreApplication> = {<QObject> = {_vptr$QObject = 0x800a35b78 <vtable for KWin::ApplicationX11+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x80aa9e5c8, data = 0x80a7b14d0,
                        static_metacall = 0x80a693200, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x815a9f000}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x80aa9efb8, data = 0x80a7f9520, static_metacall = 0x0, relatedMetaObjects = 0x0,
                        extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x80aa91d48 <QObject::staticMetaObject>, stringdata = 0x80aab2ca8, data = 0x80a7ff630, static_metacall = 0x80a7043e0, relatedMetaObjects = 0x0, extradata = 0x0}}, static self = 0x7fffffffe718},
                static staticMetaObject = {d = {superdata = 0x80aa97a10 <QCoreApplication::staticMetaObject>, stringdata = 0x80a289c68, data = 0x809fe6880, static_metacall = 0x809d016d0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {
                  superdata = 0x80a279a18 <QGuiApplication::staticMetaObject>, stringdata = 0x809a1a180, data = 0x8096ddba0, static_metacall = 0x8093758e0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x8099e8358 <QApplication::staticMetaObject>,
                stringdata = 0x8012783d0 <qt_meta_stringdata_KWin__Application>, data = 0x800f8c910 <qt_meta_data_KWin__Application>, static_metacall = 0x800f56780 <KWin::Application::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}},
            m_originalSessionKey = {static null = {<No data fields>}, d = 0x80aa9ac00 <QArrayData::shared_null>}, static crashes = 0, m_eventFilter = {d = 0x81880db00}, m_configLock = false, m_config = {d = 0x815b2db00}, m_kxkbConfig = {d = 0x815b2df60}, m_inputConfig = {d = 0x815b2df40},
            m_operationMode = KWin::Application::OperationModeX11, m_x11Time = 1171741, m_rootWindow = 605, m_connection = 0x815a76340, m_useKActivities = true, m_platform = 0x815b28180}, static staticMetaObject = {d = {superdata = 0x80124ccd0 <KWin::Application::staticMetaObject>,
              stringdata = 0x800a36a98 <qt_meta_stringdata_KWin__ApplicationX11>, data = 0x800832fc0 <qt_meta_data_KWin__ApplicationX11>, static_metacall = 0x8008323a0 <KWin::ApplicationX11::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0,
              extradata = 0x0}}, owner = {d = 0x815b2e060}, m_replace = true}
        replaceOption = {d = {d = 0x815a31e70}}
        parser = {d = 0x815a1db00}
        noActivitiesOption = {d = {d = 0x818816320}}
        plugins = {d = 0x815b367c0}
        helper = {<QObject> = {_vptr$QObject = 0x801253ae8 <vtable for KWin::SessionSaveDoneHelper+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x80aa9e5c8, data = 0x80a7b14d0, static_metacall = 0x80a693200, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {
              d = 0x815a4aa70}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x80aa9efb8, data = 0x80a7f9520, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x80aa91d48 <QObject::staticMetaObject>,
              stringdata = 0x801280218 <qt_meta_stringdata_KWin__SessionSaveDoneHelper>, data = 0x800f907f0 <qt_meta_data_KWin__SessionSaveDoneHelper>, static_metacall = 0x800f66f30 <KWin::SessionSaveDoneHelper::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>,
              relatedMetaObjects = 0x0, extradata = 0x0}}, notifier = 0x0, conn = 0x0}
#24 0x0000000000400d52 in main (argc=2, argv=0x7fffffffe8b8) at /wrkdirs/usr/ports/x11-wm/plasma5-kwin/work/.build/kwin_x11_dummy.cpp:3
No locals.
Comment 4 mnd999 2017-06-14 21:02:58 UTC
Yes, I'm getting a similar trace. Is there any way to stop the auto relaunch behaviour?
Comment 5 mnd999 2017-06-14 21:08:20 UTC
Actually, can just run in lldb:

(lldb) bt all
* thread #1, stop reason = signal SIGSEGV: invalid address (fault address: 0x80)
  * frame #0: 0x000000080718ee93 libxkbcommon.so.0`xkb_state_mod_index_is_active + 19
    frame #1: 0x0000000800e20956 libkwin.so.5`KWin::Xkb::modifiersRelevantForGlobalShortcuts(void) const + 38
    frame #2: 0x0000000800d0a7a5 libkwin.so.5`KWin::KeyboardInputRedirection::processKey(unsigned int, KWin::InputRedirection::KeyboardKeyState, unsigned int, KWin::LibInput::Device*) + 277
    frame #3: 0x000000081a23d6f2 KWinX11Platform.so`___lldb_unnamed_symbol107$$KWinX11Platform.so + 114
    frame #4: 0x0000000800d2ff38 libkwin.so.5`KWin::Workspace::workspaceEvent(xcb_generic_event_t*) + 840
    frame #5: 0x0000000800d265ec libkwin.so.5`___lldb_unnamed_symbol881$$libkwin.so.5 + 76
    frame #6: 0x000000080a468ab3 libQt5Core.so.5`QAbstractEventDispatcher::filterNativeEvent(QByteArray const&, void*, long*) + 115
    frame #7: 0x0000000818546bb5 libQt5XcbQpa.so.5`QXcbConnection::handleXcbEvent(xcb_generic_event_t*) + 69
    frame #8: 0x0000000818549246 libQt5XcbQpa.so.5`QXcbConnection::processXcbEvents(void) + 710
    frame #9: 0x000000080a497562 libQt5Core.so.5`QObject::event(QEvent*) + 146
    frame #10: 0x0000000818549afc libQt5XcbQpa.so.5`QXcbConnection::event(QEvent*) + 76
    frame #11: 0x000000080916ff20 libQt5Widgets.so.5`QApplicationPrivate::notify_helper(QObject*, QEvent*) + 304
    frame #12: 0x00000008091723ed libQt5Widgets.so.5`QApplication::notify(QObject*, QEvent*) + 4669
    frame #13: 0x000000080082bbdb libkdeinit5_kwin_x11.so`___lldb_unnamed_symbol14$$libkdeinit5_kwin_x11.so + 59
    frame #14: 0x000000080a46da37 libQt5Core.so.5`QCoreApplication::notifyInternal2(QObject*, QEvent*) + 151
    frame #15: 0x000000080a46e77b libQt5Core.so.5`QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) + 875
    frame #16: 0x000000080a4bcf89 libQt5Core.so.5`QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 73
    frame #17: 0x00000008185bb17e libQt5XcbQpa.so.5`___lldb_unnamed_symbol1312$$libQt5XcbQpa.so.5 + 14
    frame #18: 0x000000080a469820 libQt5Core.so.5`QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 400
    frame #19: 0x000000080a46e095 libQt5Core.so.5`QCoreApplication::exec(void) + 325
    frame #20: 0x000000080082c74e libkdeinit5_kwin_x11.so`kdemain + 2574
    frame #21: 0x0000000000400bff kwin_x11`___lldb_unnamed_symbol1$$kwin_x11 + 383
  thread #2
    frame #0: 0x000000080b2f258a libc.so.7`__sys_poll + 10
    frame #1: 0x000000080afdb706 libthr.so.3`___lldb_unnamed_symbol38$$libthr.so.3 + 54
    frame #2: 0x00000008081b4e62 libxcb.so.1`___lldb_unnamed_symbol3$$libxcb.so.1 + 226
    frame #3: 0x00000008081b675b libxcb.so.1`xcb_wait_for_event + 123
    frame #4: 0x0000000818548525 libQt5XcbQpa.so.5`___lldb_unnamed_symbol61$$libQt5XcbQpa.so.5 + 69
    frame #5: 0x000000080a2ac6ba libQt5Core.so.5`___lldb_unnamed_symbol241$$libQt5Core.so.5 + 234
    frame #6: 0x000000080afd8bc5 libthr.so.3`___lldb_unnamed_symbol1$$libthr.so.3 + 325
  thread #3
    frame #0: 0x000000080b2f258a libc.so.7`__sys_poll + 10
    frame #1: 0x000000080afdb706 libthr.so.3`___lldb_unnamed_symbol38$$libthr.so.3 + 54
    frame #2: 0x000000080a4bbbc0 libQt5Core.so.5`qt_safe_poll(pollfd*, unsigned int, timespec const*) + 544
    frame #3: 0x000000080a4bd2a8 libQt5Core.so.5`QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 872
    frame #4: 0x000000080a469820 libQt5Core.so.5`QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 400
    frame #5: 0x000000080a2a8da3 libQt5Core.so.5`QThread::exec(void) + 115
    frame #6: 0x0000000805361a43 libQt5DBus.so.5`___lldb_unnamed_symbol12$$libQt5DBus.so.5 + 19
    frame #7: 0x000000080a2ac6ba libQt5Core.so.5`___lldb_unnamed_symbol241$$libQt5Core.so.5 + 234
    frame #8: 0x000000080afd8bc5 libthr.so.3`___lldb_unnamed_symbol1$$libthr.so.3 + 325
  thread #4
    frame #0: 0x000000080afe6c7c libthr.so.3`___lldb_unnamed_symbol180$$libthr.so.3 + 92
    frame #1: 0x000000080afe49f8 libthr.so.3`___lldb_unnamed_symbol158$$libthr.so.3 + 488
    frame #2: 0x000000080a2adae2 libQt5Core.so.5`___lldb_unnamed_symbol250$$libQt5Core.so.5 + 290
    frame #3: 0x000000080a2ad8b9 libQt5Core.so.5`QWaitCondition::wait(QMutex*, unsigned long) + 153
    frame #4: 0x000000080a2a969e libQt5Core.so.5`___lldb_unnamed_symbol218$$libQt5Core.so.5 + 430
    frame #5: 0x000000080a2ac6ba libQt5Core.so.5`___lldb_unnamed_symbol241$$libQt5Core.so.5 + 234
    frame #6: 0x000000080afd8bc5 libthr.so.3`___lldb_unnamed_symbol1$$libthr.so.3 + 325
  thread #5
    frame #0: 0x000000080b2f258a libc.so.7`__sys_poll + 10
    frame #1: 0x000000080afdb706 libthr.so.3`___lldb_unnamed_symbol38$$libthr.so.3 + 54
    frame #2: 0x000000080a4bbbc0 libQt5Core.so.5`qt_safe_poll(pollfd*, unsigned int, timespec const*) + 544
    frame #3: 0x000000080a4bd2a8 libQt5Core.so.5`QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 872
    frame #4: 0x000000080a469820 libQt5Core.so.5`QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 400
    frame #5: 0x000000080a2a8da3 libQt5Core.so.5`QThread::exec(void) + 115
    frame #6: 0x0000000802cb5859 libQt5Qml.so.5`___lldb_unnamed_symbol4920$$libQt5Qml.so.5 + 57
    frame #7: 0x000000080a2ac6ba libQt5Core.so.5`___lldb_unnamed_symbol241$$libQt5Core.so.5 + 234
    frame #8: 0x000000080afd8bc5 libthr.so.3`___lldb_unnamed_symbol1$$libthr.so.3 + 325
  thread #6
    frame #0: 0x000000080afe6c7c libthr.so.3`___lldb_unnamed_symbol180$$libthr.so.3 + 92
    frame #1: 0x000000080afe49f8 libthr.so.3`___lldb_unnamed_symbol158$$libthr.so.3 + 488
    frame #2: 0x0000000801932bca libQt5Script.so.5`___lldb_unnamed_symbol1988$$libQt5Script.so.5 + 138
    frame #3: 0x0000000801932b39 libQt5Script.so.5`___lldb_unnamed_symbol1987$$libQt5Script.so.5 + 9
    frame #4: 0x000000080afd8bc5 libthr.so.3`___lldb_unnamed_symbol1$$libthr.so.3 + 325
Comment 6 Christoph Feck 2017-06-14 22:44:17 UTC
Backtrace from comment #3 looks useful. Could be a regression caused by the KWin::Xkb split.
Comment 7 Martin Flöser 2017-06-17 12:54:26 UTC
I doubt it's related to the xkb split, I rather think that we failed to create the xkb state and crash due to that.

I would like to see a full kwin log with all debug messages enabled. Especially I'm interested in whether there is a message "Could not create XKB state" or "Could not create default xkb keymap".
Comment 8 mnd999 2017-06-17 19:29:41 UTC
Not sure if any of this us useful:

$ kwin_x11 --replace
qt.qpa.screen: Output DVI-I-0 is not connected
qt.qpa.screen: Output HDMI-0 is not connected
qt.qpa.screen: Output DP-1 is not connected
qt.qpa.screen: Output DVI-D-0 is not connected
qt.qpa.screen: adding QXcbScreen(0x8162c82a0, name="DP-0", geometry=3840x2160+0+0, availableGeometry=3840x2160+0+0, devicePixelRatio=1.0, logicalDpi=QPair(162.0,160.9), physicalSize=597.0x336.0mm, screenNumber=0, virtualSize=5040x2160 (5040.0x2160.0mm), orientation=Qt::ScreenOrientation(LandscapeOrientation), depth=24, refreshRate=59.0, root=1e5, windowManagerName="") (Primary: true )
qt.qpa.screen: adding QXcbScreen(0x8162c8380, name="DVI-I-1", geometry=1200x1920+3840+0, availableGeometry=1200x1920+3840+0, devicePixelRatio=1.0, logicalDpi=QPair(162.0,160.9), physicalSize=324.0x519.0mm, screenNumber=0, virtualSize=5040x2160 (5040.0x2160.0mm), orientation=Qt::ScreenOrientation(PortraitOrientation), depth=24, refreshRate=59.0, root=1e5, windowManagerName="") (Primary: false )
qt.qpa.screen: primary output is "DP-0"
qt.qpa.input.devices: XInput version 2.2 is available and Qt supports 2.2 or greater
qt.qpa.input.devices: input device  Virtual core XTEST pointer ID 4
qt.qpa.input.devices:    has 10 buttons
qt.qpa.input.devices:    has valuator "Rel X" recognized? true
qt.qpa.input.devices:    has valuator "Rel Y" recognized? true
qt.qpa.input.devices:    it's a scrolling device
qt.qpa.input.devices: input device  sysmouse ID 7
qt.qpa.input.devices:    has 5 buttons
qt.qpa.input.devices:    has valuator "Rel X" recognized? true
qt.qpa.input.devices:    has valuator "Rel Y" recognized? true
qt.qpa.input.devices:    it's a scrolling device
qt.qpa.gl: Choosing xcb gl-integration based on following priority
 ("xcb_glx", "xcb_egl")
qt.qpa.gl: Xcb GLX gl-integration created
qt.qpa.gl: Xcb GLX gl-integration successfully initialized
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-mark'
kwin_platform_x11_standalone: Has XInput support 2 . 2
QXcbConnection: XCB error: 3 (BadWindow), sequence: 179, resource id: 6291462, major code: 20 (GetProperty), minor code: 0
QXcbConnection: XCB error: 3 (BadWindow), sequence: 190, resource id: 6291462, major code: 20 (GetProperty), minor code: 0
kwin_xkbcommon: XKB: created compose table from locale en_GB.UTF-8 with path /usr/local/lib/X11/locale/en_US.UTF-8/Compose

kwin_xkbcommon: Could not create xkb keymap from configuration
kwin_xkbcommon: XKB: Compiling from RMLVO: rules 'no', model 'no', layout 'no', variant 'no', options 'no'

kwin_xkbcommon: XKB: Couldn't find file "rules/no" in include paths

kwin_xkbcommon: XKB: 1 include paths searched:

kwin_xkbcommon: XKB:    /usr/local/share/X11/xkb

kwin_xkbcommon: XKB: 1 include paths could not be added:

kwin_xkbcommon: XKB:    /home/mark/.xkb

kwin_xkbcommon: XKB: Couldn't look up rules 'no', model 'no', layout 'no', variant 'no', options 'no'

kwin_xkbcommon: Could not create default xkb keymap
kwin_core: Extensions: shape: 0x "11"  composite: 0x "4"  render: 0x "b"  fixes: 0x "50"  randr: 0x "14"  sync: 0x "31"  damage: 0x  "11"
kwin_decorations: Trying to load decoration plugin:  "/usr/local/lib/qt5/plugins/org.kde.kdecoration2/breezedecoration.so"
org.kde.kwindowsystem: Loaded plugin "/usr/local/lib/qt5/plugins/kf5/org.kde.kwindowsystem.platforms/KF5WindowSystemX11Plugin.so" for platform "xcb"
kwin_core: User timestamp, ASN: 4294967295
kwin_core: User timestamp, final: 'ID: 4194314 ;WMCLASS: "xclock" : "xclock" ;Caption: "xclock" ' : 4294967295
kwin_core: User timestamp, ASN: 4294967295
kwin_core: User timestamp, final: 'ID: 10485773 ;WMCLASS: "xterm" : "xterm" ;Caption: "xterm" ' : 4294967295
kwin_core: User timestamp, ASN: 4294967295
kwin_core: User timestamp, final: 'ID: 8388621 ;WMCLASS: "xterm" : "xterm" ;Caption: "xterm <2>\u200E" ' : 4294967295
kwin_core: User timestamp, ASN: 4294967295
kwin_core: User timestamp, final: 'ID: 12582925 ;WMCLASS: "xterm" : "login" ;Caption: "login" ' : 4294967295
kwin_core: Compositing is suspended, reason: ("Disabled by User")
QXcbConnection: XCB error: 3 (BadWindow), sequence: 1261, resource id: 6291478, major code: 3 (GetWindowAttributes), minor code: 0
kf5.kcoreaddons.desktopparser: About to parse service type file "kwin-script.desktop"
kf5.kcoreaddons.desktopparser: Could not locate service type file kservicetypes5/kwin-script.desktop, tried ("/home/mark/.local/share", "/usr/local/share", "/usr/share")
kf5.kcoreaddons.desktopparser: Unknown property type for key "X-Plasma-API" -> falling back to string
kf5.kcoreaddons.desktopparser: Unknown property type for key "X-Plasma-MainScript" -> falling back to string
kf5.kcoreaddons.desktopparser: About to parse service type file "kwin-script.desktop"
kf5.kcoreaddons.desktopparser: Could not locate service type file kservicetypes5/kwin-script.desktop, tried ("/home/mark/.local/share", "/usr/local/share", "/usr/share")
kf5.kcoreaddons.desktopparser: Unknown property type for key "X-Plasma-API" -> falling back to string
kf5.kcoreaddons.desktopparser: Unknown property type for key "X-Plasma-MainScript" -> falling back to string
kf5.kcoreaddons.desktopparser: Unknown property type for key "X-KWin-Border-Activate" -> falling back to string
kf5.kcoreaddons.desktopparser: Unknown property type for key "X-KDE-PluginKeyword" -> falling back to string
kf5.kcoreaddons.desktopparser: About to parse service type file "kwin-script.desktop"
kf5.kcoreaddons.desktopparser: Could not locate service type file kservicetypes5/kwin-script.desktop, tried ("/home/mark/.local/share", "/usr/local/share", "/usr/share")
kf5.kcoreaddons.desktopparser: About to parse service type file "kcmodule.desktop"
kf5.kcoreaddons.desktopparser: Found property definition "X-KDE-FactoryName" with type "QString"
kf5.kcoreaddons.desktopparser: Found property definition "X-KDE-ParentComponents" with type "QStringList"
kf5.kcoreaddons.desktopparser: Found property definition "X-KDE-CfgDlgHierarchy" with type "QString"
kf5.kcoreaddons.desktopparser: Found property definition "X-KDE-System-Settings-Parent-Category" with type "QString"
kf5.kcoreaddons.desktopparser: Found property definition "X-KDE-KInfoCenter-Category" with type "QString"
kf5.kcoreaddons.desktopparser: Found property definition "X-KDE-Weight" with type "int"
kf5.kcoreaddons.desktopparser: Found property definition "X-KDE-PluginKeyword" with type "QString"
kf5.kcoreaddons.desktopparser: Unknown property type for key "X-Plasma-API" -> falling back to string
kf5.kcoreaddons.desktopparser: Unknown property type for key "X-Plasma-MainScript" -> falling back to string
kf5.kcoreaddons.desktopparser: About to parse service type file "kwin-script.desktop"
kf5.kcoreaddons.desktopparser: Could not locate service type file kservicetypes5/kwin-script.desktop, tried ("/home/mark/.local/share", "/usr/local/share", "/usr/share")
kf5.kcoreaddons.desktopparser: Unknown property type for key "X-Plasma-API" -> falling back to string
kf5.kcoreaddons.desktopparser: Unknown property type for key "X-Plasma-MainScript" -> falling back to string
kf5.kcoreaddons.desktopparser: Unknown property type for key "X-KWin-Exclude-Listing" -> falling back to string
kf5.kcoreaddons.desktopparser: About to parse service type file "kwin-script.desktop"
kf5.kcoreaddons.desktopparser: Could not locate service type file kservicetypes5/kwin-script.desktop, tried ("/home/mark/.local/share", "/usr/local/share", "/usr/share")
kf5.kcoreaddons.desktopparser: Unknown property type for key "X-Plasma-API" -> falling back to string
kf5.kcoreaddons.desktopparser: Unknown property type for key "X-Plasma-MainScript" -> falling back to string
Application::crashHandler() called with signal 11; recent crashes: 1
Comment 9 Martin Flöser 2017-06-17 20:25:24 UTC
Yep, perfect it shows what I expected. For whatever reason xkb fails and thus we get into a situation where we expect it to have not failed and do not check properly.

I hope I can reproduce the issue in a test setup with the help of the log output.
Comment 10 Martin Flöser 2017-06-18 15:39:15 UTC
The root problem here is: https://xkbcommon.org/doc/current/structxkb__rule__names.html

KWin passes null as rule names as mentioned in the documentation. On FreeBSD the system seems to be configured to be "no", but it should be something proper like: "evdev"

This results in:
kwin_xkbcommon: XKB: Compiling from RMLVO: rules 'no', model 'no', layout 'no', variant 'no', options 'no'

kwin_xkbcommon: XKB: Couldn't find file "rules/no" in include paths

While a proper output with default settings should be e.g.:
XKB: Compiling from RMLVO: rules 'evdev', model 'pc104', layout 'us', variant '(null)', options ''

I assume that setting the env variable XKB_DEFAULT_RULES to evdev will fix the root problem.
Comment 11 mnd999 2017-06-18 16:01:32 UTC
FreeBSD doesn't use evdev by default. It's still in beta, and not enabled by default.
Comment 12 mnd999 2017-06-18 16:45:38 UTC
That said, I've now set the following in .profile and it works:

export XKB_DEFAULT_VARIANT=basic
export XKB_DEFAULT_RULES=base                                                                                                                              
export XKB_DEFAULT_LAYOUT=gb
export XKB_DEFAULT_MODEL=pc105
Comment 13 Martin Flöser 2017-06-18 19:05:42 UTC
Fix for the crash at: https://phabricator.kde.org/D6260
Comment 14 Martin Flöser 2017-06-18 19:07:36 UTC
(In reply to mnd999 from comment #12)
> That said, I've now set the following in .profile and it works:
> 
> export XKB_DEFAULT_VARIANT=basic
> export XKB_DEFAULT_RULES=base                                               
> 
> export XKB_DEFAULT_LAYOUT=gb
> export XKB_DEFAULT_MODEL=pc105

it might make sense to set this (or similar) as system default in xkbcommon packaging. KWin is probably not the only project having problems with it.
Comment 15 Martin Flöser 2017-06-20 05:08:28 UTC
Git commit 0df09a8cbbb1caa217c8deb59700bd12f27e45b8 by Martin Flöser.
Committed on 18/06/2017 at 19:04.
Pushed by graesslin into branch 'Plasma/5.10'.

Better handle cases when the xkb keymap fails to be created

Summary:
If the keymap cannot be created a few pointers in Xkb are null.
We should make sure to not call any xkbcommon functions on those
null pointers and instead use proper fallbacks.

This change introduces fixes for a few usages, but it's not unlikely
that there are more cases.
FIXED-IN: 5.10.3

Test Plan:
Autotest added for the condition of the bug, which does
not crash any more. Just starting the test found a few more crash
cases.

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D6260

M  +1    -0    autotests/integration/CMakeLists.txt
A  +102  -0    autotests/integration/keymap_creation_failure_test.cpp     [License: GPL (v2)]
M  +7    -1    xkb.cpp

https://commits.kde.org/kwin/0df09a8cbbb1caa217c8deb59700bd12f27e45b8