Bug 1779843

Summary: kdiff3 keeps crashing on diff of file
Product: [Fedora] Fedora Reporter: Ferry Huberts <mailings>
Component: kdiff3Assignee: Vasiliy Glazov <vascom2>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: 31CC: ndbecker2, vascom2
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: kdiff3-1.8.1-4.fc30 kdiff3-1.8.1-4.fc31 kdiff3-1.8.1-4.el8 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-01-24 18:50:51 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Ferry Huberts 2019-12-04 20:45:44 UTC
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

Comment 1 Ferry Huberts 2019-12-04 20:56:59 UTC
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

Comment 2 Vasiliy Glazov 2019-12-05 07:34:18 UTC
Bug in upstream.

Comment 3 Fedora Update System 2020-01-11 01:25:01 UTC
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

Comment 4 Fedora Update System 2020-01-11 01:38:51 UTC
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

Comment 5 Fedora Update System 2020-01-11 01:48:43 UTC
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

Comment 6 Fedora Update System 2020-01-15 00:50:12 UTC
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

Comment 7 Fedora Update System 2020-01-15 01:08:37 UTC
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

Comment 8 Fedora Update System 2020-01-16 19:50:58 UTC
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

Comment 9 Ferry Huberts 2020-01-17 06:55:54 UTC
fixed for f31.

yay, thanks!

Comment 10 Fedora Update System 2020-01-24 18:50:51 UTC
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.

Comment 11 Fedora Update System 2020-01-25 06:34:26 UTC
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.

Comment 12 Fedora Update System 2020-01-30 23:30:11 UTC
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.