This happens with Qt 6.6.3 & Qt 6.7.0 using KF6 from Git fireburn@axion ~/sddm $ lldb kdiff3 LICENSE LICENSE.CC-BY-3.0 (lldb) target create "kdiff3" Current executable set to '/usr/bin/kdiff3' (x86_64). (lldb) settings set -- target.run-args "LICENSE" "LICENSE.CC-BY-3.0" (lldb) run Process 1006614 launched: '/usr/bin/kdiff3' (x86_64) Process 1006614 stopped and restarted: thread 1 received signal: SIGCHLD org.kde.kdiff3: Loading A: "http://license" org.kde.kdiff3: Loading B: "http://license.cc-by-3.0" qt.core.qobject.connect: QObject::connect: No such signal KIO::FileCopyJob::percent(KJob*,ulong) kdiff3: /var/tmp/portage/kde-misc/kdiff3-9999/work/kdiff3-9999/src/DefaultFileAccessJobHandler.cpp:368: virtual bool DefaultFileAccessJobHandler::copyFile(const QString &): Assertion `QObject::connect(pJob, "2" "percent(KJob*,ulong)", &pp, "1" "slotPercent(KJob*,ulong)")' failed. Process 1006614 stopped * thread #1, name = 'kdiff3', stop reason = signal SIGABRT frame #0: 0x00007ffff5ac36ac libc.so.6`___lldb_unnamed_symbol3694 + 268 libc.so.6`___lldb_unnamed_symbol3694: -> 0x7ffff5ac36ac <+268>: movl %eax, %ebx 0x7ffff5ac36ae <+270>: negl %ebx 0x7ffff5ac36b0 <+272>: cmpl $0xfffff000, %eax ; imm = 0xFFFFF000 0x7ffff5ac36b5 <+277>: movl $0x0, %eax (lldb) bt * thread #1, name = 'kdiff3', stop reason = signal SIGABRT * frame #0: 0x00007ffff5ac36ac libc.so.6`___lldb_unnamed_symbol3694 + 268 frame #1: 0x00007ffff5a71202 libc.so.6`raise + 18 frame #2: 0x00007ffff5a594ed libc.so.6`abort + 211 frame #3: 0x00007ffff5a59415 libc.so.6`___lldb_unnamed_symbol3173 + 15 frame #4: 0x00007ffff5a697b2 libc.so.6`__assert_fail + 66 frame #5: 0x0000555555729257 kdiff3`DefaultFileAccessJobHandler::copyFile(this=0x0000555555d67420, inDest=0x00007fffffff9d78) at DefaultFileAccessJobHandler.cpp:368:5 frame #6: 0x000055555571ff7d kdiff3`FileAccess::copyFile(this=0x0000555555cec3c8, dest=0x00007fffffff9d78) at fileaccess.cpp:876:25 frame #7: 0x0000555555720521 kdiff3`FileAccess::createLocalCopy(this=0x0000555555cec3c8) at fileaccess.cpp:991:12 frame #8: 0x00005555557b367b kdiff3`SourceData::readAndPreprocess(this=0x0000555555cec3b0, encoding="UTF-8", bAutoDetect=true) at SourceData.cpp:356:30 frame #9: 0x000055555564d90c kdiff3`KDiff3App::mainInit(this=0x0000555555cecf80, pTotalDiffStatus=0x0000555555becbb0, inFlags=(i = 13)) at pdiff.cpp:139:20 frame #10: 0x00005555555e0483 kdiff3`KDiff3App::doFileCompare(this=0x0000555555cecf80) at kdiff3.cpp:440:5 frame #11: 0x00005555555e098b kdiff3`KDiff3App::completeInit(this=0x0000555555cecf80, fn1=0x00007fffffffbe40, fn2=0x00007fffffffbe28, fn3=0x00007fffffffbe10) at kdiff3.cpp:493:13 frame #12: 0x00005555555d245a kdiff3`KDiff3Shell::KDiff3Shell(this=0x000055555592d9c0, fn1=0x00007fffffffbe40, fn2=0x00007fffffffbe28, fn3=0x00007fffffffbe10) at kdiff3_shell.cpp:39:15 frame #13: 0x00005555555ce0aa kdiff3`main::$_0::operator()(this=0x0000555555b9fe40) const at main.cpp:196:21 frame #14: 0x00005555555cdfe6 kdiff3`QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, main::$_0>::call(f=0x0000555555b9fe40, arg=0x0000555555b9d0a8) at qobjectdefs_impl.h:137:13 frame #15: 0x00005555555cdf4e kdiff3`void QtPrivate::Functor<main::$_0, 0>::call<QtPrivate::List<>, void>(f=0x0000555555b9fe40, (null)=0x00007fffffffd3b0, arg=0x0000555555b9d0a8) at qobjectdefs_impl.h:339:13 frame #16: 0x00005555555cde9b kdiff3`QtPrivate::QCallableObject<main::$_0, QtPrivate::List<>, void>::impl(which=1, this_=0x0000555555b9fe30, r=0x00007fffffffd3b0, a=0x0000555555b9d0a8, ret=0x0000000000000000) at qobjectdefs_impl.h:522:21 frame #17: 0x00007ffff635de35 libQt6Core.so.6`QObject::event(QEvent*) + 629 frame #18: 0x00007ffff692e107 libQt6Gui.so.6`QGuiApplication::event(QEvent*) + 695 frame #19: 0x00007ffff72f162a libQt6Widgets.so.6`QApplication::event(QEvent*) + 890 frame #20: 0x00007ffff72f2ff4 libQt6Widgets.so.6`QApplicationPrivate::notify_helper(QObject*, QEvent*) + 244 frame #21: 0x00007ffff72f3ecc libQt6Widgets.so.6`QApplication::notify(QObject*, QEvent*) + 476 frame #22: 0x00007ffff6316ef3 libQt6Core.so.6`QCoreApplication::notifyInternal2(QObject*, QEvent*) + 179 frame #23: 0x00007ffff6317f8c libQt6Core.so.6`QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) + 508 frame #24: 0x00007ffff65960e3 libQt6Core.so.6`___lldb_unnamed_symbol15827 + 19 frame #25: 0x00007ffff50db602 libglib-2.0.so.0`___lldb_unnamed_symbol2489 + 482 frame #26: 0x00007ffff5148588 libglib-2.0.so.0`___lldb_unnamed_symbol2747 + 600 frame #27: 0x00007ffff50da8ac libglib-2.0.so.0`g_main_context_iteration + 44 frame #28: 0x00007ffff6595b30 libQt6Core.so.6`QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 96 frame #29: 0x00007ffff6320716 libQt6Core.so.6`QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 550 frame #30: 0x00007ffff6317604 libQt6Core.so.6`QCoreApplication::exec() + 132 frame #31: 0x00005555555ccf28 kdiff3`main(argc=3, argv=0x00007fffffffd5b8) at main.cpp:199:21 frame #32: 0x00007ffff5a5af02 libc.so.6`___lldb_unnamed_symbol3279 + 130 frame #33: 0x00007ffff5a5afb5 libc.so.6`__libc_start_main + 133 frame #34: 0x000055555559bd41 kdiff3`_start + 33
Created attachment 168106 [details] workaround This works around the issue
So I notice this happens when running from the command line kdiff3 filea fileb It's assumign that filea & fileb are actually http://filea https://fileb and saying they're binary equal But works fine when giving the full location to the file, or opening the files from the dialog manually
kdiff3 SQ-game8-sorted SQ-ign-sorted org.kde.kdiff3: Loading A: "http://sq-game8-sorted" kf.kio.core: mimeType() not emitted when sending first data!; job URL = QUrl("http://sq-game8-sorted") data size = 0 org.kde.kdiff3: Loading B: "http://sq-ign-sorted" kf.kio.core: mimeType() not emitted when sending first data!; job URL = QUrl("http://sq-ign-sorted") data size = 0 org.kde.kdiff3: Diff: A <-> B org.kde.kdiff3: Linediff: A <-> B org.kde.kdiff3: Enter: calcDiff3LineListUsingAB org.kde.kdiff3: Leave: calcDiff3LineListUsingAB
I've just checked, without the patch kdiff still doesn't crash if launched with "kdiff3 /path/to/filea /path/to/fileb" only when it's "kdiff3 filea fileb" It also aborts when using git mergetool: git revert db7606495bb81894d91617e6348825a47de785c2 Auto-merging po/tr/kdiff3.po CONFLICT (content): Merge conflict in po/tr/kdiff3.po error: could not revert db760649... GIT_SILENT Sync po/docbooks with svn hint: After resolving the conflicts, mark them with hint: "git add/rm <pathspec>", then run hint: "git revert --continue". hint: You can instead skip this commit with "git revert --skip". hint: To abort and get back to the state before "git revert", hint: run "git revert --abort". fireburn@axion ~/kdiff3 $ git mergetool Merging: po/tr/kdiff3.po Normal merge conflict for 'po/tr/kdiff3.po': {local}: modified file {remote}: modified file /usr/libexec/git-core/mergetools/kdiff3: line 11: 28298 Segmentation fault (core dumped) "$merge_tool_path" --auto --L1 "$MERGED (Base)" --L2 "$MERGED (Local)" --L3 "$MERGED (Remote)" -o "$MERGED" "$BASE" "$LOCAL" "$REMOTE" > /dev/null 2>&1 merge of po/tr/kdiff3.po failed Which gives the following debug info: Application: KDiff3 (kdiff3), signal: Segmentation fault [New LWP 31172] [New LWP 31173] [New LWP 31177] [New LWP 31195] [New LWP 31180] [New LWP 31176] [New LWP 31194] [New LWP 31178] [New LWP 31197] [New LWP 31179] [New LWP 31196] [New LWP 31181] [New LWP 31175] [New LWP 31174] [Thread debugging using libthread_db enabled] Using host libthread_db library "/usr/lib64/libthread_db.so.1". Core was generated by `kdiff3 --auto --L1 po/tr/kdiff3.po (Base) --L2 po/tr/kdiff3.po (Local) --L3 po/'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x00007f21e9cc0b5c in ?? () from /usr/lib64/libc.so.6 [Current thread is 1 (Thread 0x7f21e5fdd9c0 (LWP 31172))] Cannot QML trace cores :( Unexpectedly stumbled over an objfile (/usr/bin/kdiff3) without build_id. Not creating payload. [Current thread is 1 (Thread 0x7f21e5fdd9c0 (LWP 31172))] Thread 14 (Thread 0x7f21df6006c0 (LWP 31174)): #0 0x00007f21e9d213bf in poll () at /usr/lib64/libc.so.6 #1 0x00007f21e8a496b8 in ??? () at /usr/lib64/libQt6WaylandClient.so.6 #2 0x00007f21ea5eb09e in ??? () at /usr/lib64/libQt6Core.so.6 #3 0x00007f21e9cbed22 in ??? () at /usr/lib64/libc.so.6 #4 0x00007f21e9d2e63c in ??? () at /usr/lib64/libc.so.6 Thread 13 (Thread 0x7f21dec006c0 (LWP 31175)): #0 0x00007f21e9d213bf in poll () at /usr/lib64/libc.so.6 #1 0x00007f21e8a496b8 in ??? () at /usr/lib64/libQt6WaylandClient.so.6 #2 0x00007f21ea5eb09e in ??? () at /usr/lib64/libQt6Core.so.6 #3 0x00007f21e9cbed22 in ??? () at /usr/lib64/libc.so.6 #4 0x00007f21e9d2e63c in ??? () at /usr/lib64/libc.so.6 Thread 12 (Thread 0x7f21d4c006c0 (LWP 31181)): #0 0x00007f21e9cbb565 in ??? () at /usr/lib64/libc.so.6 #1 0x00007f21e9cbdea1 in pthread_cond_wait () at /usr/lib64/libc.so.6 #2 0x00007f21dcef7fbd in ??? () at /usr/lib64/dri/radeonsi_dri.so #3 0x00007f21dcf8485a in ??? () at /usr/lib64/dri/radeonsi_dri.so #4 0x00007f21e9cbed22 in ??? () at /usr/lib64/libc.so.6 #5 0x00007f21e9d2e63c in ??? () at /usr/lib64/libc.so.6 Thread 11 (Thread 0x7f21cea006c0 (LWP 31196)): #0 0x00007f21e9cbb565 in ??? () at /usr/lib64/libc.so.6 #1 0x00007f21e9cbe1f9 in pthread_cond_timedwait () at /usr/lib64/libc.so.6 #2 0x00007f21ea5fb6a3 in ??? () at /usr/lib64/libQt6Core.so.6 #3 0x00007f21ea5ebdf9 in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /usr/lib64/libQt6Core.so.6 #4 0x00007f21ea5efdb6 in ??? () at /usr/lib64/libQt6Core.so.6 #5 0x00007f21ea5eb09e in ??? () at /usr/lib64/libQt6Core.so.6 #6 0x00007f21e9cbed22 in ??? () at /usr/lib64/libc.so.6 #7 0x00007f21e9d2e63c in ??? () at /usr/lib64/libc.so.6 Thread 10 (Thread 0x7f21d60006c0 (LWP 31179)): #0 0x00007f21e9cbb565 in ??? () at /usr/lib64/libc.so.6 #1 0x00007f21e9cbdea1 in pthread_cond_wait () at /usr/lib64/libc.so.6 #2 0x00007f21dcef7fbd in ??? () at /usr/lib64/dri/radeonsi_dri.so #3 0x00007f21dcf8485a in ??? () at /usr/lib64/dri/radeonsi_dri.so #4 0x00007f21e9cbed22 in ??? () at /usr/lib64/libc.so.6 #5 0x00007f21e9d2e63c in ??? () at /usr/lib64/libc.so.6 Thread 9 (Thread 0x7f21ce0006c0 (LWP 31197)): #0 0x00007f21e9cbb565 in ??? () at /usr/lib64/libc.so.6 #1 0x00007f21e9cbe1f9 in pthread_cond_timedwait () at /usr/lib64/libc.so.6 #2 0x00007f21ea5fb6a3 in ??? () at /usr/lib64/libQt6Core.so.6 #3 0x00007f21ea5ebdf9 in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /usr/lib64/libQt6Core.so.6 #4 0x00007f21ea5efdb6 in ??? () at /usr/lib64/libQt6Core.so.6 #5 0x00007f21ea5eb09e in ??? () at /usr/lib64/libQt6Core.so.6 #6 0x00007f21e9cbed22 in ??? () at /usr/lib64/libc.so.6 #7 0x00007f21e9d2e63c in ??? () at /usr/lib64/libc.so.6 Thread 8 (Thread 0x7f21d6a006c0 (LWP 31178)): #0 0x00007f21e9cbb565 in ??? () at /usr/lib64/libc.so.6 #1 0x00007f21e9cbdea1 in pthread_cond_wait () at /usr/lib64/libc.so.6 #2 0x00007f21dcef7fbd in ??? () at /usr/lib64/dri/radeonsi_dri.so #3 0x00007f21dcf8485a in ??? () at /usr/lib64/dri/radeonsi_dri.so #4 0x00007f21e9cbed22 in ??? () at /usr/lib64/libc.so.6 #5 0x00007f21e9d2e63c in ??? () at /usr/lib64/libc.so.6 Thread 7 (Thread 0x7f21cfe006c0 (LWP 31194)): #0 0x00007f21e9cbb565 in ??? () at /usr/lib64/libc.so.6 #1 0x00007f21e9cbe1f9 in pthread_cond_timedwait () at /usr/lib64/libc.so.6 #2 0x00007f21ea5fb6a3 in ??? () at /usr/lib64/libQt6Core.so.6 #3 0x00007f21ea5ebdf9 in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /usr/lib64/libQt6Core.so.6 #4 0x00007f21ea5efdb6 in ??? () at /usr/lib64/libQt6Core.so.6 #5 0x00007f21ea5eb09e in ??? () at /usr/lib64/libQt6Core.so.6 #6 0x00007f21e9cbed22 in ??? () at /usr/lib64/libc.so.6 #7 0x00007f21e9d2e63c in ??? () at /usr/lib64/libc.so.6 Thread 6 (Thread 0x7f21d7e006c0 (LWP 31176)): #0 0x00007f21e9cbb565 in ??? () at /usr/lib64/libc.so.6 #1 0x00007f21e9cbdea1 in pthread_cond_wait () at /usr/lib64/libc.so.6 #2 0x00007f21dcef7fbd in ??? () at /usr/lib64/dri/radeonsi_dri.so #3 0x00007f21dcf8485a in ??? () at /usr/lib64/dri/radeonsi_dri.so #4 0x00007f21e9cbed22 in ??? () at /usr/lib64/libc.so.6 #5 0x00007f21e9d2e63c in ??? () at /usr/lib64/libc.so.6 Thread 5 (Thread 0x7f21d56006c0 (LWP 31180)): #0 0x00007f21e9cbb565 in ??? () at /usr/lib64/libc.so.6 #1 0x00007f21e9cbdea1 in pthread_cond_wait () at /usr/lib64/libc.so.6 #2 0x00007f21dcef7fbd in ??? () at /usr/lib64/dri/radeonsi_dri.so #3 0x00007f21dcf8485a in ??? () at /usr/lib64/dri/radeonsi_dri.so #4 0x00007f21e9cbed22 in ??? () at /usr/lib64/libc.so.6 #5 0x00007f21e9d2e63c in ??? () at /usr/lib64/libc.so.6 Thread 4 (Thread 0x7f21cf4006c0 (LWP 31195)): #0 0x00007f21e9cbb565 in ??? () at /usr/lib64/libc.so.6 #1 0x00007f21e9cbe1f9 in pthread_cond_timedwait () at /usr/lib64/libc.so.6 #2 0x00007f21ea5fb6a3 in ??? () at /usr/lib64/libQt6Core.so.6 #3 0x00007f21ea5ebdf9 in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /usr/lib64/libQt6Core.so.6 #4 0x00007f21ea5efdb6 in ??? () at /usr/lib64/libQt6Core.so.6 #5 0x00007f21ea5eb09e in ??? () at /usr/lib64/libQt6Core.so.6 #6 0x00007f21e9cbed22 in ??? () at /usr/lib64/libc.so.6 #7 0x00007f21e9d2e63c in ??? () at /usr/lib64/libc.so.6 Thread 3 (Thread 0x7f21d74006c0 (LWP 31177)): #0 0x00007f21e9cbb565 in ??? () at /usr/lib64/libc.so.6 #1 0x00007f21e9cbdea1 in pthread_cond_wait () at /usr/lib64/libc.so.6 #2 0x00007f21dcef7fbd in ??? () at /usr/lib64/dri/radeonsi_dri.so #3 0x00007f21dcf8485a in ??? () at /usr/lib64/dri/radeonsi_dri.so #4 0x00007f21e9cbed22 in ??? () at /usr/lib64/libc.so.6 #5 0x00007f21e9d2e63c in ??? () at /usr/lib64/libc.so.6 Thread 2 (Thread 0x7f21e5a006c0 (LWP 31173)): #0 0x00007f21e9d213bf in poll () at /usr/lib64/libc.so.6 #1 0x00007f21e943c4c7 in ??? () at /usr/lib64/libglib-2.0.so.0 #2 0x00007f21e93ce8ac in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0 #3 0x00007f21ea4b61c4 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt6Core.so.6 #4 0x00007f21ea734c16 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt6Core.so.6 #5 0x00007f21ea647f94 in QThread::exec() () at /usr/lib64/libQt6Core.so.6 #6 0x00007f21ea16ee67 in ??? () at /usr/lib64/libQt6DBus.so.6 #7 0x00007f21ea5eb09e in ??? () at /usr/lib64/libQt6Core.so.6 #8 0x00007f21e9cbed22 in ??? () at /usr/lib64/libc.so.6 #9 0x00007f21e9d2e63c in ??? () at /usr/lib64/libc.so.6 Thread 1 (Thread 0x7f21e5fdd9c0 (LWP 31172)): [KCrash Handler] #4 0x00007f21ea709624 in QIODevice::isOpen() const () at /usr/lib64/libQt6Core.so.6 #5 0x000055c175bf1b2c in FileAccess::writeFile (this=0x7ffeb568bc80, pSrcBuffer=0x7f21ea30a950 <QByteArray::_empty>, length=0) at /var/tmp/portage/kde-misc/kdiff3-9999/work/kdiff3-9999/src/fileaccess.cpp:865 #6 0x000055c175be5615 in MergeResultWindow::saveDocument (this=0x55c194ef4e80, fileName=<optimized out>, encoding=<optimized out>, eLineEndStyle=<optimized out>) at /var/tmp/portage/kde-misc/kdiff3-9999/work/kdiff3-9999/src/mergeresultwindow.cpp:2689 #7 0x000055c175b602a9 in KDiff3App::completeInit (this=0x55c194e27450, fn1=<optimized out>, fn2=<optimized out>, fn3=<optimized out>) at /var/tmp/portage/kde-misc/kdiff3-9999/work/kdiff3-9999/src/kdiff3.cpp:688 #8 0x000055c175b4b300 in KDiff3Shell::KDiff3Shell (this=0x55c194e4bc10, fn1=..., fn2=..., fn3=...) at /var/tmp/portage/kde-misc/kdiff3-9999/work/kdiff3-9999/src/kdiff3_shell.cpp:39 #9 0x000055c175b4a549 in main::$_0::operator() (this=0x55c194de90d0) at /var/tmp/portage/kde-misc/kdiff3-9999/work/kdiff3-9999/src/main.cpp:196 #10 QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, main::$_0>::call(main::$_0&, void**) (f=..., arg=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:137 #11 QtPrivate::FunctorCallable<main::$_0>::call<QtPrivate::List<>, void>(main::$_0&, void*, void**) (f=..., arg=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:345 #12 QtPrivate::QCallableObject<main::$_0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=<optimized out>, this_=0x55c194de90c0, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:555 #13 0x00007f21ea684fcc in QObject::event(QEvent*) () at /usr/lib64/libQt6Core.so.6 #14 0x00007f21ead14977 in QGuiApplication::event(QEvent*) () at /usr/lib64/libQt6Gui.so.6 #15 0x00007f21eba8dc78 in QApplication::event(QEvent*) () at /usr/lib64/libQt6Widgets.so.6 #16 0x00007f21eba908ee in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt6Widgets.so.6 #17 0x00007f21eba9237e in QApplication::notify(QObject*, QEvent*) () at /usr/lib64/libQt6Widgets.so.6 #18 0x00007f21ea733fc7 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib64/libQt6Core.so.6 #19 0x00007f21ea73579e in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib64/libQt6Core.so.6 #20 0x00007f21ea4cb2d7 in ??? () at /usr/lib64/libQt6Core.so.6 #21 0x00007f21e93cf602 in ??? () at /usr/lib64/libglib-2.0.so.0 #22 0x00007f21e943c588 in ??? () at /usr/lib64/libglib-2.0.so.0 #23 0x00007f21e93ce8ac in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0 #24 0x00007f21ea4b61c4 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt6Core.so.6 #25 0x00007f21ea734c16 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt6Core.so.6 #26 0x00007f21ea734858 in QCoreApplication::exec() () at /usr/lib64/libQt6Core.so.6 #27 0x000055c175b489a9 in main (argc=13, argv=<optimized out>) at /var/tmp/portage/kde-misc/kdiff3-9999/work/kdiff3-9999/src/main.cpp:199
I got a backtrace from kdiff3 git mergetool Merging: kcms/mouse/CMakeLists.txt Normal merge conflict for 'kcms/mouse/CMakeLists.txt': {local}: modified file {remote}: modified file (lldb) target create "kdiff3" Current executable set to '/usr/bin/kdiff3' (x86_64). (lldb) settings set -- target.run-args "--auto" "--L1" "kcms/mouse/CMakeLists.txt (Base)" "--L2" "kcms/mouse/CMakeLists.txt (Local)" "--L3" "kcms/mouse/CMakeLists.txt (Remote)" "-o" "kcms/mouse/CMakeLists.txt" "./kcms/mouse/CMakeLists_BASE_1741404.txt" "./kcms/mouse/CMakeLists_LOCAL_1741404.txt" "./kcms/mouse/CMakeLists_REMOTE_1741404.txt" (lldb) run org.kde.kdiff3: Diff: A <-> B org.kde.kdiff3: Linediff: A <-> B org.kde.kdiff3: Enter: calcDiff3LineListUsingAB org.kde.kdiff3: Leave: calcDiff3LineListUsingAB Process 1741515 launched: '/usr/bin/kdiff3' (x86_64) Process 1741515 stopped and restarted: thread 2 received signal: SIGCHLD Process 1741515 stopped * thread #1, name = 'kdiff3', stop reason = signal SIGSEGV: address not mapped to object (fault address: 0x8) frame #0: 0x00007ffff61095b4 libQt6Core.so.6`QIODevice::isOpen() const + 4 libQt6Core.so.6`QIODevice::isOpen: -> 0x7ffff61095b4 <+4>: movq 0x8(%rdi), %rax 0x7ffff61095b8 <+8>: cmpl $0x0, 0x180(%rax) 0x7ffff61095bf <+15>: setne %al 0x7ffff61095c2 <+18>: retq (lldb) bt * thread #1, name = 'kdiff3', stop reason = signal SIGSEGV: address not mapped to object (fault address: 0x8) * frame #0: 0x00007ffff61095b4 libQt6Core.so.6`QIODevice::isOpen() const + 4 frame #1: 0x00005555556c2d6c kdiff3`FileAccess::writeFile(this=0x00007fffffffc520, pSrcBuffer=0x00007ffff5d0aa80, length=0) at fileaccess.cpp:865:9 frame #2: 0x00005555556b66d5 kdiff3`MergeResultWindow::saveDocument(this=0x0000555556130830, fileName=<unavailable>, encoding=<unavailable>, eLineEndStyle=<unavailable>) at mergeresultwindow.cpp:2689:25 frame #3: 0x0000555555631369 kdiff3`KDiff3App::completeInit(this=0x00005555559aa0d0, fn1=<unavailable>, fn2=<unavailable>, fn3=<unavailable>) at kdiff3.cpp:688:54 frame #4: 0x000055555561c3c0 kdiff3`KDiff3Shell::KDiff3Shell(this=0x000055555599d540, fn1=0x00007fffffffc948, fn2=0x00007fffffffc930, fn3=0x00007fffffffc918) at kdiff3_shell.cpp:39:15 frame #5: 0x000055555561b609 kdiff3`QtPrivate::QCallableObject<main::$_0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) [inlined] main::$_0::operator()(this=0x0000555555b2f600) const at main.cpp:196:21 frame #6: 0x000055555561b567 kdiff3`QtPrivate::QCallableObject<main::$_0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) [inlined] QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, main::$_0>::call(f=0x0000555555b2f600, arg=<unavailable>) at qobjectdefs_impl.h:137:13 frame #7: 0x000055555561b567 kdiff3`QtPrivate::QCallableObject<main::$_0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) [inlined] void QtPrivate::FunctorCallable<main::$_0>::call<QtPrivate::List<>, void>(f=0x0000555555b2f600, (null)=<unavailable>, arg=<unavailable>) at qobjectdefs_impl.h:345:13 frame #8: 0x000055555561b567 kdiff3`QtPrivate::QCallableObject<main::$_0, QtPrivate::List<>, void>::impl(which=<unavailable>, this_=0x0000555555b2f5f0, r=<unavailable>, a=<unavailable>, ret=<unavailable>) at qobjectdefs_impl.h:555:21 frame #9: 0x00007ffff6084f6c libQt6Core.so.6`QObject::event(QEvent*) + 636 frame #10: 0x00007ffff6714d47 libQt6Gui.so.6`QGuiApplication::event(QEvent*) + 711 frame #11: 0x00007ffff768d9a8 libQt6Widgets.so.6`QApplication::event(QEvent*) + 520 frame #12: 0x00007ffff769061e libQt6Widgets.so.6`QApplicationPrivate::notify_helper(QObject*, QEvent*) + 302 frame #13: 0x00007ffff76920ae libQt6Widgets.so.6`QApplication::notify(QObject*, QEvent*) + 494 frame #14: 0x00007ffff6133f57 libQt6Core.so.6`QCoreApplication::notifyInternal2(QObject*, QEvent*) + 183 frame #15: 0x00007ffff613572e libQt6Core.so.6`QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) + 526 frame #16: 0x00007ffff5ecb2d7 libQt6Core.so.6`___lldb_unnamed_symbol10036 + 23 frame #17: 0x00007ffff4f49602 libglib-2.0.so.0`___lldb_unnamed_symbol2489 + 482 frame #18: 0x00007ffff4fb6588 libglib-2.0.so.0`___lldb_unnamed_symbol2747 + 600 frame #19: 0x00007ffff4f488ac libglib-2.0.so.0`g_main_context_iteration + 44 frame #20: 0x00007ffff5eb61c4 libQt6Core.so.6`QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 100 frame #21: 0x00007ffff6134ba6 libQt6Core.so.6`QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 550 frame #22: 0x00007ffff61347e8 libQt6Core.so.6`QCoreApplication::exec() + 136 frame #23: 0x0000555555619a69 kdiff3`main(argc=13, argv=<unavailable>) at main.cpp:199:21 frame #24: 0x00007ffff6256f46 libc.so.6`___lldb_unnamed_symbol3280 + 134 frame #25: 0x00007ffff6256ff9 libc.so.6`__libc_start_main + 137 frame #26: 0x00005555556073c5 kdiff3`_start + 37
The crash on save is fixed in: 700eb940c615d8a90632f87f9833ca1a8e3a2fc2 ff6196eba71179c528360ab5eef355989d5ae979 This is present in master and 1.11.0. Will be submitting a fix for the file open crash shortly.
Both the crash and the file processing error have now been corrected in master and 1.11.
I'm still seeing a failure on master: (lldb) run Process 1098029 launched: '/usr/bin/kdiff3' (x86_64) org.kde.kdiff3: Loading A: "/home/fireburn/dmesg.axion" org.kde.kdiff3: Loading B: "/home/fireburn/dmesg.txt" org.kde.kdiff3: Diff: A <-> B org.kde.kdiff3: Linediff: A <-> B org.kde.kdiff3: Enter: calcDiff3LineListUsingAB org.kde.kdiff3: Leave: calcDiff3LineListUsingAB terminate called after throwing an instance of 'std::system_error' what(): converted signed value too small: negative overflow error Process 1098029 stopped * thread #1, name = 'kdiff3', stop reason = signal SIGABRT frame #0: 0x00007ffff62bf86c libc.so.6`___lldb_unnamed_symbol3697 + 268 libc.so.6`___lldb_unnamed_symbol3697: -> 0x7ffff62bf86c <+268>: movl %eax, %ebx 0x7ffff62bf86e <+270>: negl %ebx 0x7ffff62bf870 <+272>: cmpl $0xfffff000, %eax ; imm = 0xFFFFF000 0x7ffff62bf875 <+277>: movl $0x0, %eax (lldb) bt * thread #1, name = 'kdiff3', stop reason = signal SIGABRT * frame #0: 0x00007ffff62bf86c libc.so.6`___lldb_unnamed_symbol3697 + 268 frame #1: 0x00007ffff626be66 libc.so.6`raise + 22 frame #2: 0x00007ffff62538b7 libc.so.6`abort + 215 frame #3: 0x00007ffff58a4c7b libstdc++.so.6`___lldb_unnamed_symbol7333 + 98 frame #4: 0x00007ffff58b8eec libstdc++.so.6`___lldb_unnamed_symbol7788 + 12 frame #5: 0x00007ffff58b8f57 libstdc++.so.6`std::terminate() + 23 frame #6: 0x000055555560fabf kdiff3`__clang_call_terminate + 15 frame #7: 0x000055555567559f kdiff3`getBestFirstLine(LineRef, int, LineRef, int) [inlined] LineRef::operator=(this=<unavailable>, lineIn=<unavailable>) at LineRef.h:51:21 frame #8: 0x0000555555675581 kdiff3`getBestFirstLine(line=LineRef @ scalar, nofLines=1559, firstLine=LineRef @ scalar, visibleLines=14) at difftextwindow.cpp:0 frame #9: 0x00005555556756ab kdiff3`DiffTextWindow::setFastSelectorRange(this=0x000055555615a6c0, line1=<unavailable>, nofLines=<unavailable>) at difftextwindow.cpp:595:32 frame #10: 0x00007ffff60dda8f libQt6Core.so.6`___lldb_unnamed_symbol13786 + 1279 frame #11: 0x000055555560ccd1 kdiff3`MergeResultWindow::setFastSelectorRange(this=<unavailable>, _t1=LineRef @ 0x00007fffffffc46c, _t2=1559) at moc_mergeresultwindow.cpp:574:5 frame #12: 0x00005555556ad3f3 kdiff3`MergeResultWindow::setFastSelector(this=0x0000555555c804c0, i=std::__cxx11::list<MergeBlock, std::allocator<MergeBlock> >::iterator @ scalar) at mergeresultwindow.cpp:788:12 frame #13: 0x00005555556a63a2 kdiff3`MergeResultWindow::merge(bool, e_SrcSelector, bool, bool) [inlined] MergeResultWindow::go(this=0x0000555555c804c0, eDir=eUp, eEndPoint=eEnd) at mergeresultwindow.cpp:548:5 frame #14: 0x00005555556a6364 kdiff3`MergeResultWindow::merge(bool, e_SrcSelector, bool, bool) [inlined] MergeResultWindow::slotGoTop(this=0x0000555555c804c0) at mergeresultwindow.cpp:658:5 frame #15: 0x00005555556a6364 kdiff3`MergeResultWindow::merge(this=0x0000555555c804c0, bAutoSolve=<unavailable>, defaultSelector=<unavailable>, bConflictsOnly=false, bWhiteSpaceOnly=<unavailable>) at mergeresultwindow.cpp:397:5 frame #16: 0x00005555556a5d8c kdiff3`MergeResultWindow::init(this=0x0000555555c804c0, pLineDataA=<unavailable>, sizeA=LineRef @ 0x00007fffffffc5c8, pLineDataB=<unavailable>, sizeB=LineRef @ 0x00007fffffffc5cc, pLineDataC=<unavailable>, sizeC=LineRef @ 0x00007fffffffc620, pDiff3LineList=0x000055555597a388, pTotalDiffStatus=0x0000555555a9ac50, bAutoSolve=true) at mergeresultwindow.cpp:132:5 frame #17: 0x000055555565f1b0 kdiff3`KDiff3App::mainInit(this=0x0000555555979fe0, pTotalDiffStatus=<unavailable>, inFlags=<unavailable>) at pdiff.cpp:377:27 frame #18: 0x000055555563193c kdiff3`KDiff3App::completeInit(QString const&, QString const&, QString const&) [inlined] KDiff3App::doFileCompare(this=0x0000555555979fe0) at kdiff3.cpp:595:5 frame #19: 0x0000555555631908 kdiff3`KDiff3App::completeInit(this=0x0000555555979fe0, fn1=<unavailable>, fn2=<unavailable>, fn3=<unavailable>) at kdiff3.cpp:646:13 frame #20: 0x000055555561d3e0 kdiff3`KDiff3Shell::KDiff3Shell(this=0x0000555555a07850, fn1=0x00007fffffffcb68, fn2=0x00007fffffffcb50, fn3=0x00007fffffffcb38) at kdiff3_shell.cpp:39:15 frame #21: 0x000055555561c629 kdiff3`QtPrivate::QCallableObject<main::$_0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) [inlined] main::$_0::operator()(this=0x0000555555982d30) const at main.cpp:192:21 frame #22: 0x000055555561c587 kdiff3`QtPrivate::QCallableObject<main::$_0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) [inlined] QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, main::$_0>::call(f=0x0000555555982d30, arg=<unavailable>) at qobjectdefs_impl.h:137:13 frame #23: 0x000055555561c587 kdiff3`QtPrivate::QCallableObject<main::$_0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) [inlined] void QtPrivate::FunctorCallable<main::$_0>::call<QtPrivate::List<>, void>(f=0x0000555555982d30, (null)=<unavailable>, arg=<unavailable>) at qobjectdefs_impl.h:345:13 frame #24: 0x000055555561c587 kdiff3`QtPrivate::QCallableObject<main::$_0, QtPrivate::List<>, void>::impl(which=<unavailable>, this_=0x0000555555982d20, r=<unavailable>, a=<unavailable>, ret=<unavailable>) at qobjectdefs_impl.h:555:21 frame #25: 0x00007ffff6084f6c libQt6Core.so.6`QObject::event(QEvent*) + 636 frame #26: 0x00007ffff6714d47 libQt6Gui.so.6`QGuiApplication::event(QEvent*) + 711 frame #27: 0x00007ffff768d9a8 libQt6Widgets.so.6`QApplication::event(QEvent*) + 520 frame #28: 0x00007ffff769061e libQt6Widgets.so.6`QApplicationPrivate::notify_helper(QObject*, QEvent*) + 302 frame #29: 0x00007ffff76920ae libQt6Widgets.so.6`QApplication::notify(QObject*, QEvent*) + 494 frame #30: 0x00007ffff6133f57 libQt6Core.so.6`QCoreApplication::notifyInternal2(QObject*, QEvent*) + 183 frame #31: 0x00007ffff613572e libQt6Core.so.6`QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) + 526 frame #32: 0x00007ffff5ecb2d7 libQt6Core.so.6`___lldb_unnamed_symbol10036 + 23 frame #33: 0x00007ffff4fa7602 libglib-2.0.so.0`___lldb_unnamed_symbol2489 + 482 frame #34: 0x00007ffff5014588 libglib-2.0.so.0`___lldb_unnamed_symbol2747 + 600 frame #35: 0x00007ffff4fa68ac libglib-2.0.so.0`g_main_context_iteration + 44 frame #36: 0x00007ffff5eb61c4 libQt6Core.so.6`QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 100 frame #37: 0x00007ffff6134ba6 libQt6Core.so.6`QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 550 frame #38: 0x00007ffff61347e8 libQt6Core.so.6`QCoreApplication::exec() + 136 frame #39: 0x000055555561aa89 kdiff3`main(argc=3, argv=<unavailable>) at main.cpp:195:21 frame #40: 0x00007ffff6255306 libc.so.6`___lldb_unnamed_symbol3281 + 134 frame #41: 0x00007ffff62553b9 libc.so.6`__libc_start_main + 137 frame #42: 0x00005555556083e5 kdiff3`_start + 37 (lldb)
Go ahead and file sperrate bug for the new crash so its easier to track.