Bug 444654 - segfault upon exit/save
Summary: segfault upon exit/save
Status: RESOLVED FIXED
Alias: None
Product: kdiff3
Classification: Applications
Component: application (show other bugs)
Version: 1.9.3
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: michael
URL:
Keywords:
: 440558 (view as bug list)
Depends on:
Blocks:
 
Reported: 2021-10-30 09:22 UTC by kim
Modified: 2022-01-12 21:15 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 1.9.4
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description kim 2021-10-30 09:22:42 UTC
Application: kdiff3 (1.9.3 (64 bit))

Qt Version: 5.15.2
Frameworks Version: 5.87.0
Operating System: Linux 5.14.14-300.fc35.x86_64 x86_64
Windowing System: X11
Drkonqi Version: 5.22.5
Distribution: "Fedora release 35 (Thirty Five)"

-- Information about the crash:
- What I was doing when the application crashed:

I use kdiff3  as merger for rpmconf,and upon exiting / saveing kdiff3 it segfaults - seeming before saving. Used to work in Fedora 34.

The crash can be reproduced every time.

-- Backtrace:
Application: KDiff3 (kdiff3), signal: Segmentation fault
Content of s_kcrashErrorMessage: [Current thread is 1 (Thread 0x7ff0b32695c0 (LWP 54475))]
[KCrash Handler]
#6  0x0000556b44fa3af7 in KDiff3App::slotUpdateAvailabilities (this=0x556b45a1f5d0) at /usr/src/debug/kdiff3-1.9.3-1.fc35.x86_64/src/pdiff.cpp:2094
#7  0x00007ff0b78dd3a9 in QtPrivate::QSlotObjectBase::call (a=0x7ffc53a011e0, r=<optimized out>, this=0x556b45cf7530) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#8  doActivate<false> (sender=0x7ffc53a01a80, signal_index=22, argv=0x7ffc53a011e0) at kernel/qobject.cpp:3886
#9  0x00007ff0b78d8327 in QMetaObject::activate (sender=<optimized out>, m=m@entry=0x7ff0b88a64c0 <QApplication::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffc53a011e0) at kernel/qobject.cpp:3946
#10 0x00007ff0b837ec3f in QApplication::focusChanged (this=<optimized out>, _t1=<optimized out>, _t2=<optimized out>) at .moc/moc_qapplication.cpp:244
#11 0x00007ff0b8384ddf in QApplication::setActiveWindow (act=act@entry=0x0) at kernel/qapplication.cpp:2043
#12 0x00007ff0b83a97ff in QWidgetPrivate::deactivateWidgetCleanup (this=this@entry=0x556b45ac56b0) at kernel/qwidget.cpp:2298
#13 0x00007ff0b83b6cc9 in QWidgetPrivate::hide_sys (this=this@entry=0x556b45ac56b0) at kernel/qwidget.cpp:7994
#14 0x00007ff0b83bdca8 in QWidgetPrivate::hide_helper (this=this@entry=0x556b45ac56b0) at kernel/qwidget.cpp:7937
#15 0x00007ff0b83c2b78 in QWidgetPrivate::setVisible (this=0x556b45ac56b0, visible=<optimized out>) at kernel/qwidget.cpp:8133
#16 0x00007ff0b83c2c56 in QWidget::setVisible (this=this@entry=0x556b459f12c0, visible=visible@entry=false) at kernel/qwidget.cpp:8044
#17 0x00007ff0b859130e in QDialog::setVisible (this=0x556b459f12c0, visible=<optimized out>) at dialogs/qdialog.cpp:849
#18 0x00007ff0b858ee15 in QDialog::~QDialog (this=0x556b459f12c0, __in_chrg=<optimized out>) at dialogs/qdialog.cpp:422
#19 0x0000556b44f707e9 in ProgressDialog::~ProgressDialog (this=<optimized out>, this=<optimized out>) at /usr/src/debug/kdiff3-1.9.3-1.fc35.x86_64/redhat-linux-build/src/kdiff3_autogen/EWIEGA46WW/../../../../src/progress.h:24
#20 ProgressDialog::~ProgressDialog (this=<optimized out>, this=<optimized out>) at /usr/src/debug/kdiff3-1.9.3-1.fc35.x86_64/redhat-linux-build/src/kdiff3_autogen/EWIEGA46WW/../../../../src/progress.h:24
#21 0x00007ff0b78d278a in QObjectPrivate::deleteChildren (this=this@entry=0x556b45b13850) at kernel/qobject.cpp:2104
#22 0x00007ff0b83be556 in QWidget::~QWidget (this=0x556b45a1f5d0, __in_chrg=<optimized out>) at kernel/qwidget.cpp:1522
#23 0x0000556b44f7de9d in KDiff3App::~KDiff3App (this=<optimized out>, this=<optimized out>) at /usr/src/debug/kdiff3-1.9.3-1.fc35.x86_64/src/kdiff3.cpp:532
#24 0x00007ff0b8ed30b7 in KParts::Part::~Part (this=<optimized out>, __vtt_parm=<optimized out>, this=<optimized out>, __vtt_parm=<optimized out>) at /usr/src/debug/kf5-kparts-5.87.0-1.fc35.x86_64/src/part.cpp:58
#25 0x0000556b44f74e77 in KDiff3Part::~KDiff3Part (this=<optimized out>, this=<optimized out>) at /usr/src/debug/kdiff3-1.9.3-1.fc35.x86_64/src/kdiff3_part.cpp:84
#26 0x0000556b44f74ecd in KDiff3Part::~KDiff3Part (this=<optimized out>, this=<optimized out>) at /usr/src/debug/kdiff3-1.9.3-1.fc35.x86_64/src/kdiff3_part.cpp:84
#27 0x00007ff0b78d278a in QObjectPrivate::deleteChildren (this=this@entry=0x556b4581c8f0) at kernel/qobject.cpp:2104
#28 0x00007ff0b83be556 in QWidget::~QWidget (this=0x556b4590a750, __in_chrg=<optimized out>) at kernel/qwidget.cpp:1522
#29 0x0000556b44f719b7 in KDiff3Shell::~KDiff3Shell (this=<optimized out>, this=<optimized out>) at /usr/src/debug/kdiff3-1.9.3-1.fc35.x86_64/src/kdiff3_shell.cpp:83
#30 KDiff3Shell::~KDiff3Shell (this=<optimized out>, this=<optimized out>) at /usr/src/debug/kdiff3-1.9.3-1.fc35.x86_64/src/kdiff3_shell.cpp:83
#31 0x00007ff0b78d3d31 in QObject::event (this=0x556b4590a750, e=0x556b45e710c0) at kernel/qobject.cpp:1301
#32 0x00007ff0b8d04cbd in KXmlGuiWindow::event (this=0x556b4590a750, ev=0x556b45e710c0) at /usr/src/debug/kf5-kxmlgui-5.87.0-1.fc35.x86_64/src/kxmlguiwindow.cpp:219
#33 0x00007ff0b8380443 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x556b4590a750, e=0x556b45e710c0) at kernel/qapplication.cpp:3632
#34 0x00007ff0b78a9798 in QCoreApplication::notifyInternal2 (receiver=0x556b4590a750, event=0x556b45e710c0) at kernel/qcoreapplication.cpp:1064
#35 0x00007ff0b78acd06 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=52, data=0x556b45832710) at kernel/qcoreapplication.cpp:1821
#36 0x00007ff0b78b06fc in QCoreApplication::exec () at kernel/qcoreapplication.h:86
#37 0x0000556b44f6c137 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/kdiff3-1.9.3-1.fc35.x86_64/src/main.cpp:193
[Inferior 1 (process 54475) detached]

Possible duplicates by query: bug 444411, bug 443954, bug 443784, bug 443771, bug 443586.

Report to https://bugs.kde.org/
Comment 1 michael 2021-11-16 20:01:08 UTC
That's an intresting one. Not able to reproduce it on my machine. I wonder if its timing issue with when the QSplitter gets destroyed.
Comment 2 michael 2021-11-16 21:20:41 UTC
Git commit a9244cfb81e45699c301f26fab0e52f47afcb10a by Michael Reeves.
Committed on 16/11/2021 at 20:49.
Pushed by mreeves into tag '1.9.4'.

Fix race condition in teardown

Manually disconnect from QApplication::focusChanged to prevent spurious focus change signals  from reaching us during teardown.
FIXED-IN:1.9.4

M  +1    -0    ChangeLog
M  +5    -1    src/kdiff3.cpp

https://invent.kde.org/sdk/kdiff3/commit/a9244cfb81e45699c301f26fab0e52f47afcb10a
Comment 3 michael 2021-11-16 21:48:05 UTC
Git commit d929ff5d528d9082bba84d7739716e42d2968517 by Michael Reeves.
Committed on 16/11/2021 at 21:46.
Pushed by mreeves into branch 'master'.

Fix race condition in teardown

Manually disconnect from QApplication::focusChanged to prevent spurious focus change signals from reaching us during teardown.
FIXED-IN:1.9.4

M  +5    -1    src/kdiff3.cpp

https://invent.kde.org/sdk/kdiff3/commit/d929ff5d528d9082bba84d7739716e42d2968517
Comment 4 michael 2021-12-17 16:13:30 UTC
*** Bug 440558 has been marked as a duplicate of this bug. ***
Comment 5 michael 2022-01-12 21:15:43 UTC
Git commit b13ffaee8023b09abf518bd482e762fe0a401f26 by Michael Reeves.
Committed on 12/01/2022 at 21:14.
Pushed by mreeves into branch 'master'.

[kdiff3] Update metadata for 1.9.4

Updating meta information for Windows/MacOS builds. Will update binaries when binary-factory.kde.org generates new ones.

M  +1    -1    extragear/kdiff3/kdiff3.py
M  +1    -1    extragear/kdiff3/version.ini

https://invent.kde.org/packaging/craft-blueprints-kde/commit/b13ffaee8023b09abf518bd482e762fe0a401f26