Bug 1779843 - kdiff3 keeps crashing on diff of file
Summary: kdiff3 keeps crashing on diff of file
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: kdiff3
Version: 31
Hardware: Unspecified
OS: Unspecified
unspecified
high
Target Milestone: ---
Assignee: Vasiliy Glazov
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2019-12-04 20:45 UTC by Ferry Huberts
Modified: 2020-01-30 23:30 UTC (History)
2 users (show)

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:
Clone Of:
Environment:
Last Closed: 2020-01-24 18:50:51 UTC
Type: Bug


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
KDE Software Compilation 407745 0 'NOR' 'UNCONFIRMED' 'kdiff3 1.8.1 crash on comparing directories, segmentation fault.' 2019-12-05 07:34:17 UTC

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.


Note You need to log in before you can comment on or make changes to this bug.