| 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 First Reported In: | 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/Implemented 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 |