Description of problem: kdiff3 crashes on file diff when starting it with a dir diff Version-Release number of selected component (if applicable): How reproducible: always (but a little bit funny/strange) Steps to Reproduce: 1. kdiff3 dir1 dir2 2. double click a file to make it show the compare of the file 3. crash funny enough, it doesn't crash when I do this under gdb with debug symbols installed. it does crash on exit though, with the stack trace below. Actual results: b) bt #0 0x00007ffff626626e in malloc () at /lib64/libc.so.6 #1 0x00007ffff6594059 in operator new(unsigned long) () at /lib64/libstdc++.so.6 #2 0x00007ffff6970108 in QObject::deleteLater() () at /lib64/libQt5Core.so.5 #3 0x00007fffddd35698 in Adwaita::BaseDataMap<QObject, Adwaita::WidgetStateData>::unregisterWidget(QObject const*) () at /usr/lib64/qt5/plugins/styles/adwaita.so #4 0x00007fffddd2f36c in Adwaita::WidgetStateEngine::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) [clone .part.0] () at /usr/lib64/qt5/plugins/styles/adwaita.so #5 0x00007ffff6971dfb in QMetaObject::activate(QObject*, int, int, void**) () at /lib64/libQt5Core.so.5 #6 0x00007ffff6972583 in QObject::destroyed(QObject*) () at /lib64/libQt5Core.so.5 #7 0x00007ffff72e9cf3 in QWidget::~QWidget() () at /lib64/libQt5Widgets.so.5 #8 0x00007ffff7306f41 in QDesktopScreenWidget::~QDesktopScreenWidget() () at /lib64/libQt5Widgets.so.5 #9 0x00007ffff7307556 in QDesktopWidgetPrivate::~QDesktopWidgetPrivate() () at /lib64/libQt5Widgets.so.5 #10 0x00007ffff6979d47 in QObject::~QObject() () at /lib64/libQt5Core.so.5 #11 0x00007ffff72e9dde in QWidget::~QWidget() () at /lib64/libQt5Widgets.so.5 #12 0x00007ffff730563d in QDesktopWidget::~QDesktopWidget() () at /lib64/libQt5Widgets.so.5 #13 0x00007ffff72ac2f0 in QApplication::~QApplication() () at /lib64/libQt5Widgets.so.5 #14 0x000055555558bdad in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/kdiff3-1.8.1-2.fc31.x86_64/src/main.cpp:178 Expected results: no crash Additional info: This has been happening for a while now. I got fed up and filed this bug ;-) When starting kdiff3 in the cli, it does complain a bit: QSocketNotifier: Can only be used with threads started with QThread
Managed to get a backtrace by attaching to a running kdiff3. This backtrace shows the crash for the describe usecase. #0 0x00007ff103fbeb59 in QAction::setEnabled(bool) () at /lib64/libQt5Widgets.so.5 #1 0x0000562d028579cd in MergeResultWindow::slotUpdateAvailabilities(bool, bool) (this=0x562d04837000, bMergeEditorVisible=false, bTripleDiff=<optimized out>) at /usr/src/debug/kdiff3-1.8.1-2.fc31.x86_64/src/mergeresultwindow.cpp:183 #2 0x0000562d0282723a in KDiff3App::slotUpdateAvailabilities() (this=0x562d042316f0) at /usr/src/debug/kdiff3-1.8.1-2.fc31.x86_64/src/pdiff.cpp:2456 #3 0x00007ff103688f40 in QMetaObject::activate(QObject*, int, int, void**) () at /lib64/libQt5Core.so.5 #4 0x00007ff104005660 in QWidget::event(QEvent*) () at /lib64/libQt5Widgets.so.5 #5 0x00007ff1040b2942 in QFrame::event(QEvent*) () at /lib64/libQt5Widgets.so.5 #6 0x00007ff1040b55c1 in QAbstractScrollArea::event(QEvent*) () at /lib64/libQt5Widgets.so.5 #7 0x00007ff104237093 in QAbstractItemView::event(QEvent*) () at /lib64/libQt5Widgets.so.5 #8 0x00007ff103fc2ad6 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5 #9 0x00007ff103fcc150 in QApplication::notify(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5 #10 0x00007ff10365ede8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt5Core.so.5 #11 0x00007ff103fc9a1c in QApplicationPrivate::setFocusWidget(QWidget*, Qt::FocusReason) () at /lib64/libQt5Widgets.so.5 #12 0x00007ff103fff78f in QWidget::setFocus(Qt::FocusReason) () at /lib64/libQt5Widgets.so.5 #13 0x0000562d02830164 in QWidget::setFocus() (this=<optimized out>) at /usr/include/qt5/QtWidgets/qwidget.h:416 #14 KDiff3App::initView() (this=this@entry=0x562d042316f0) at /usr/src/debug/kdiff3-1.8.1-2.fc31.x86_64/src/pdiff.cpp:747 #15 0x0000562d0283125c in KDiff3App::initView() (this=0x562d042316f0) at /usr/src/debug/kdiff3-1.8.1-2.fc31.x86_64/src/pdiff.cpp:590 #16 KDiff3App::mainInit(TotalDiffStatus*, bool, bool) (this=this@entry=0x562d042316f0, pTotalDiffStatus=<optimized out>, pTotalDiffStatus@entry=0x0, bLoadFiles=bLoadFiles@entry=true, bUseCurrentEncoding=bUseCurrentEncoding@entry=false) at /usr/src/debug/kdiff3-1.8.1-2.fc31.x86_64/src/pdiff.cpp:340 #17 0x0000562d02834ac6 in KDiff3App::slotFileOpen2(QString const&, QString const&, QString const&, QString const&, QString const&, QString const&, QString const&, TotalDiffStatus*) (pTotalDiffStatus=0x0, an3=..., an2=..., an1=..., ofn=..., fn3=..., fn2=..., fn1=..., this=0x562d042316f0) at /usr/src/debug/kdiff3-1.8.1-2.fc31.x86_64/src/pdiff.cpp:1155 #18 KDiff3App::slotFileOpen2(QString const&, QString const&, QString const&, QString const&, QString const&, QString const&, QString const&, TotalDiffStatus*) (this=0x562d042316f0, fn1=..., fn2=..., fn3=..., ofn=..., an1=..., an2=..., an3=..., pTotalDiffStatus=0x0) at /usr/src/debug/kdiff3-1.8.1-2.fc31.x86_64/src/pdiff.cpp:1119 #19 0x0000562d02810655 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1, 2, 3, 4, 5, 6, 7>, QtPrivate::List<QString, QString, QString, QString, QString, QString, QString, TotalDiffStatus*>, void, void (KDiff3App::*)(QString const&, QString const&, QString const&, QString const&, QString const&, QString const&, QString const&, TotalDiffStatus*)>::call(void (KDiff3App::*)(QString const&, QString const&, QString const&, QString const&, QString const&, QString const&, QString const&, TotalDiffStatus*), KDiff3App*, void**) (arg=<optimized out>, o=<optimized out>, f=<optimized out>) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:184 #20 QtPrivate::FunctionPointer<void (KDiff3App::*)(QString const&, QString const&, QString const&, QString const&, QString const&, QString const&, QString const&, TotalDiffStatus*)>::call<QtPrivate::List<QString, QString, QString, QString, QString, QString, QString, TotalDiffStatus*>, void>(void (KDiff3App::*)(QString const&, QString const&, QString const&, QString const&, QString const&, QString const&, QString const&, TotalDiffStatus*), KDiff3App*, void**) (arg=<optimized out>, o=<optimized out>, f=<optimized out>) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:185 #21 QtPrivate::QSlotObject<void (KDiff3App::*)(QString const&, QString const&, QString const&, QString const&, QString const&, QString const&, QString const&, TotalDiffStatus*), QtPrivate::List<QString, QString, QString, QString, QString, QString, QString, TotalDiffStatus*>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=<optimized out>, this_=<optimized out>, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:414 #22 0x00007ff103688f40 in QMetaObject::activate(QObject*, int, int, void**) () at /lib64/libQt5Core.so.5 #23 0x0000562d027fba18 in DirectoryMergeWindow::startDiffMerge(QString, QString, QString, QString, QString, QString, QString, TotalDiffStatus*) (this=this@entry=0x562d045985b0, _t1=..., _t2=..., _t3=..., _t4=..., _t5=..., _t6=..., _t7=..., _t8=<optimized out>) at /usr/src/debug/kdiff3-1.8.1-2.fc31.x86_64/x86_64-redhat-linux-gnu/src/kdiff3_autogen/EWIEGA46WW/moc_directorymergewindow.cpp:370 #24 0x0000562d02814189 in DirectoryMergeWindow::compareCurrentFile() (this=0x562d045985b0) at /usr/src/debug/kdiff3-1.8.1-2.fc31.x86_64/src/MergeFileInfos.h:80 #25 DirectoryMergeWindow::compareCurrentFile() (this=0x562d045985b0) at /usr/src/debug/kdiff3-1.8.1-2.fc31.x86_64/src/directorymergewindow.cpp:2216 #26 0x00007ff103688f40 in QMetaObject::activate(QObject*, int, int, void**) () at /lib64/libQt5Core.so.5 #27 0x00007ff104229049 in QAbstractItemView::doubleClicked(QModelIndex const&) () at /lib64/libQt5Widgets.so.5 #28 0x00007ff1042a340b in QTreeView::mouseDoubleClickEvent(QMouseEvent*) () at /lib64/libQt5Widgets.so.5 #29 0x00007ff1040053ee in QWidget::event(QEvent*) () at /lib64/libQt5Widgets.so.5 #30 0x00007ff1040b2942 in QFrame::event(QEvent*) () at /lib64/libQt5Widgets.so.5 #31 0x00007ff104237202 in QAbstractItemView::viewportEvent(QEvent*) () at /lib64/libQt5Widgets.so.5 #32 0x00007ff1042a558f in QTreeView::viewportEvent(QEvent*) () at /lib64/libQt5Widgets.so.5 #33 0x00007ff10365ec2e in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () at /lib64/libQt5Core.so.5 #34 0x00007ff103fc2ac5 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5 #35 0x00007ff103fcc3a3 in QApplication::notify(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5 #36 0x00007ff10365ede8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt5Core.so.5 #37 0x00007ff103fcb4b7 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) () at /lib64/libQt5Widgets.so.5 #38 0x00007ff1040210dd in QWidgetWindow::handleMouseEvent(QMouseEvent*) () at /lib64/libQt5Widgets.so.5 #39 0x00007ff104023f6c in QWidgetWindow::event(QEvent*) () at /lib64/libQt5Widgets.so.5 #40 0x00007ff103fc2ad6 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5 #41 0x00007ff103fcc150 in QApplication::notify(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5 #42 0x00007ff10365ede8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt5Core.so.5 #43 0x00007ff103a3066c in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /lib64/libQt5Gui.so.5 #44 0x00007ff103a31f4b in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /lib64/libQt5Gui.so.5 #45 0x00007ff103a0e54b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Gui.so.5 #46 0x00007ff0f2963564 in userEventSourceDispatch(_GSource*, int (*)(void*), void*) () at /lib64/libQt5WaylandClient.so.5 #47 0x00007ff101c4d4a0 in g_main_context_dispatch () at /lib64/libglib-2.0.so.0 #48 0x00007ff101c4d830 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0 #49 0x00007ff101c4d8d3 in g_main_context_iteration () at /lib64/libglib-2.0.so.0 #50 0x00007ff1036b3cb5 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5 #51 0x00007ff10365dceb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5 #52 0x00007ff103665a16 in QCoreApplication::exec() () at /lib64/libQt5Core.so.5 #53 0x0000562d027fad66 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/kdiff3-1.8.1-2.fc31.x86_64/src/main.cpp:175
Bug in upstream.
kdiff3-1.8.1-3.fc31 has been pushed to the Fedora 31 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-556f176eea
kdiff3-1.8.1-3.el8 has been pushed to the Fedora EPEL 8 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2020-e6b9098b5c
kdiff3-1.8.1-3.fc30 has been pushed to the Fedora 30 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-c4dc94aa2d
kdiff3-1.8.1-4.fc30 has been pushed to the Fedora 30 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-15d00d4dab
kdiff3-1.8.1-4.el8 has been pushed to the Fedora EPEL 8 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2020-be568a097a
kdiff3-1.8.1-4.fc31 has been pushed to the Fedora 31 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-fca310369e
fixed for f31. yay, thanks!
kdiff3-1.8.1-4.fc30 has been pushed to the Fedora 30 stable repository. If problems still persist, please make note of it in this bug report.
kdiff3-1.8.1-4.fc31 has been pushed to the Fedora 31 stable repository. If problems still persist, please make note of it in this bug report.
kdiff3-1.8.1-4.el8 has been pushed to the Fedora EPEL 8 stable repository. If problems still persist, please make note of it in this bug report.