Summary: | Kopete crashes after chat window close | ||
---|---|---|---|
Product: | [Applications] kopete | Reporter: | Paul <pa_kru> |
Component: | general | Assignee: | Kopete Developers <kopete-bugs-null> |
Status: | REPORTED --- | ||
Severity: | crash | CC: | ctrlaltca, vovochka13 |
Priority: | NOR | Keywords: | drkonqi |
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Neon | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: |
Description
Paul
2018-05-17 04:55:08 UTC
Having exact the same problem on opensuse 15.1 with kopete 1.13 KDE Frameworks 5.55.0 Qt 5.9.7 SOFTWARE/OS VERSIONS Operating System: Slackware Linux -current KDE Plasma Version: 5.20.5 KDE Frameworks Version: 5.78.0 Qt Version: 5.15.2 Kernel Version: 5.10.14 OS Type: 64-bit Processors: 8 × AMD Ryzen 7 4700U with Radeon Graphics Memory: 15,0 GiB of RAM Graphics Processor: AMD RENOIR I can reproduce this issue every time a chat window gets closed. It only happens on a plasma wayland session; no crash under x11. The crash signature is the same: #4 0x00007f0fecb35c50 in QScrollArea::widget() const () from /usr/lib64/libQt5Widgets.so.5 #5 0x00007f0fc325bf79 in KHTMLView::contentsHeight() const () from /usr/lib64/libKF5KHtml.so.5 #6 0x00007f0fd40989d3 in ChatMessagePart::slotScrollView() () from /usr/lib64/libkopetechatwindow_shared.so.1 I debugged this issue a bit. There's a workaround, just disabling "Input auto-resize" from the "Format" menu avoids the crash when closing the chat window. The crash is due to KopeteRichTextWidget triggering a size recalc on the chatview of the window that has just been closed; this leads to a call to ChatMessagePart::keepScrolledDown() to ensure the view is scrolled down to the last message. Here's the backtrace up to the method emitting the signal: #0 ChatMessagePart::keepScrolledDown (this=0xd76ba0) at /home/fabio/prj/kopete/kopete/chatwindow/chatmessagepart.cpp:650 #1 0x00007fffd81c4324 in ChatView::slotRecalculateSize (this=0x10bda20, difference=0) at /home/fabio/prj/kopete/kopete/chatwindow/chatview.cpp:488 #2 0x00007fffd81bf0ab in ChatView::qt_static_metacall (_o=0x10bda20, _c=QMetaObject::InvokeMetaMethod, _id=25, _a=0x7fffffffbf30) at /home/fabio/prj/kopete/buid/kopete/chatwindow/kopete_chatwindow_autogen/EWIEGA46WW/moc_chatview.cpp:275 #3 0x00007ffff55d4845 in ?? () from /usr/lib64/libQt5Core.so.5 #4 0x00007fffd81641b4 in KopeteRichTextWidget::documentSizeUpdated (this=0xf474c0, _t1=0) at /home/fabio/prj/kopete/buid/kopete/chatwindow/kopetechatwindow_shared_autogen/EWIEGA46WW/moc_kopeterichtextwidget.cpp:250 #5 0x00007fffd817c093 in KopeteRichTextWidget::slotDocumentSizeUpdated (this=0xf474c0) at /home/fabio/prj/kopete/kopete/chatwindow/kopeterichtextwidget.cpp:152 #6 0x00007fffd8163e6d in KopeteRichTextWidget::qt_static_metacall (_o=0xf474c0, _c=QMetaObject::InvokeMetaMethod, _id=12, _a=0x7fffffffc070) at /home/fabio/prj/kopete/buid/kopete/chatwindow/kopetechatwindow_shared_autogen/EWIEGA46WW/moc_kopeterichtextwidget.cpp:163 #7 0x00007ffff55d4845 in ?? () from /usr/lib64/libQt5Core.so.5 #8 0x00007ffff55d4845 in ?? () from /usr/lib64/libQt5Core.so.5 #9 0x00007ffff6294a83 in QWidgetTextControl::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib64/libQt5Widgets.so.5 #10 0x00007ffff55d455d in ?? () from /usr/lib64/libQt5Core.so.5 #11 0x00007ffff5aa8a1c in QTextDocumentPrivate::finishEdit() () from /usr/lib64/libQt5Gui.so.5 #12 0x00007ffff6292401 in ?? () from /usr/lib64/libQt5Widgets.so.5 #13 0x00007ffff628a32a in QWidgetTextControl::processEvent(QEvent*, QPointF const&, QWidget*) () from /usr/lib64/libQt5Widgets.so.5 #14 0x00007ffff626e219 in QTextEdit::inputMethodEvent(QInputMethodEvent*) () from /usr/lib64/libQt5Widgets.so.5 #15 0x00007ffff60fdace in QWidget::event(QEvent*) () from /usr/lib64/libQt5Widgets.so.5 #16 0x00007ffff61a204e in QFrame::event(QEvent*) () from /usr/lib64/libQt5Widgets.so.5 #17 0x00007fffd817dd27 in KopeteRichTextWidget::event (this=0xf474c0, event=0x7fffffffc6d0) at /home/fabio/prj/kopete/kopete/chatwindow/kopeterichtextwidget.cpp:463 #18 0x00007ffff60c126f in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/libQt5Widgets.so.5 #19 0x00007ffff55a034a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib64/libQt5Core.so.5 #20 0x00007ffff372051f in ?? () from /usr/lib64/libQt5WaylandClient.so.5 #21 0x00007ffff60c4f6d in QApplication::setActiveWindow(QWidget*) () from /usr/lib64/libQt5Widgets.so.5 #22 0x00007ffff60e69e7 in QWidgetPrivate::deactivateWidgetCleanup() () from /usr/lib64/libQt5Widgets.so.5 #23 0x00007ffff60f2be5 in QWidgetPrivate::hide_sys() () from /usr/lib64/libQt5Widgets.so.5 #24 0x00007ffff60f9470 in QWidgetPrivate::hide_helper() () from /usr/lib64/libQt5Widgets.so.5 #25 0x00007ffff60fd868 in QWidgetPrivate::setVisible(bool) () from /usr/lib64/libQt5Widgets.so.5 #26 0x00007ffff60f98b2 in QWidgetPrivate::close_helper(QWidgetPrivate::CloseMode) () from /usr/lib64/libQt5Widgets.so.5 #27 0x00007ffff6118267 in ?? () from /usr/lib64/libQt5Widgets.so.5 #28 0x00007ffff60c126f in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/libQt5Widgets.so.5 #29 0x00007ffff55a034a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib64/libQt5Core.so.5 #30 0x00007ffff5980a57 in QGuiApplicationPrivate::processCloseEvent(QWindowSystemInterfacePrivate::CloseEvent*) () from /usr/lib64/libQt5Gui.so.5 #31 0x00007ffff595b9d5 in bool QWindowSystemInterfacePrivate::handleWindowSystemEvent<QWindowSystemInterface::SynchronousDelivery>(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /usr/lib64/libQt5Gui.so.5 #32 0x00007ffff0e4094d in ?? () from /usr/lib64/libffi.so.7 #33 0x00007ffff0e3ff48 in ?? () from /usr/lib64/libffi.so.7 #34 0x00007ffff368deb2 in ?? () from /usr/lib64/libwayland-client.so.0 #35 0x00007ffff368a91a in ?? () from /usr/lib64/libwayland-client.so.0 #36 0x00007ffff368be6c in wl_display_dispatch_queue_pending () from /usr/lib64/libwayland-client.so.0 #37 0x00007ffff370d0c3 in QtWaylandClient::QWaylandDisplay::flushRequests() () from /usr/lib64/libQt5WaylandClient.so.5 #38 0x00007ffff55d4845 in ?? () from /usr/lib64/libQt5Core.so.5 #39 0x00007ffff55d7a6f in QSocketNotifier::activated(QSocketDescriptor, QSocketNotifier::Type, QSocketNotifier::QPrivateSignal) () from /usr/lib64/libQt5Core.so.5 #40 0x00007ffff55d816b in QSocketNotifier::event(QEvent*) () from /usr/lib64/libQt5Core.so.5 #41 0x00007ffff60c126f in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/libQt5Widgets.so.5 #42 0x00007ffff55a034a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib64/libQt5Core.so.5 --Type <RET> for more, q to quit, c to continue without paging--c #43 0x00007ffff55f4d25 in ?? () from /usr/lib64/libQt5Core.so.5 #44 0x00007ffff13d472b in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0 #45 0x00007ffff13d49a8 in ?? () from /usr/lib64/libglib-2.0.so.0 #46 0x00007ffff13d4a4f in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0 #47 0x00007ffff55f41ff in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5 #48 0x00007ffff559ee8b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5 #49 0x00007ffff55a6aac in QCoreApplication::exec() () from /usr/lib64/libQt5Core.so.5 #50 0x000000000041d3c2 in main (argc=1, argv=0x7fffffffdd48) at /home/fabio/prj/kopete/kopete/main.cpp:121 ChatMessagePart::keepScrolledDown will run a singleshot timer calling the ChatMessagePart::slotScrollView() slot that crashes Kopete because that object instance has already been deleted. |