Summary: | kwin>=5.10.0 crashes immediately on start on FreeBSD | ||
---|---|---|---|
Product: | [Plasma] kwin | Reporter: | Tobias C. Berner <tcberner> |
Component: | input | Assignee: | KWin default assignee <kwin-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | grave | CC: | mnd999 |
Priority: | NOR | Flags: | mgraesslin:
X11+
mgraesslin: ReviewRequest+ |
Version: | 5.10.0 | ||
Target Milestone: | --- | ||
Platform: | Other | ||
OS: | FreeBSD | ||
URL: | https://phabricator.kde.org/D6260 | ||
Latest Commit: | https://commits.kde.org/kwin/0df09a8cbbb1caa217c8deb59700bd12f27e45b8 | Version Fixed In: | 5.10.3 |
Sentry Crash Report: |
Description
Tobias C. Berner
2017-06-14 18:26:17 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 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? 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. Yes, I'm getting a similar trace. Is there any way to stop the auto relaunch behaviour? 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 Backtrace from comment #3 looks useful. Could be a regression caused by the KWin::Xkb split. 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". 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 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. 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. FreeBSD doesn't use evdev by default. It's still in beta, and not enabled by default. 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 Fix for the crash at: https://phabricator.kde.org/D6260 (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. 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 |