https://bugs.kde.org/show_bug.cgi?id=488624
Bug ID: 488624 Summary: kdiff3 unusable due to crashing Classification: Applications Product: kdiff3 Version: 1.11.1 Platform: Arch Linux OS: Linux Status: REPORTED Severity: crash Priority: NOR Component: application Assignee: reeves...@gmail.com Reporter: jarmo.tii...@gmail.com Target Milestone: --- Created attachment 170571 --> https://bugs.kde.org/attachment.cgi?id=170571&action=edit Output of qtdiag tool SUMMARY kdiff3 somehow started to *always* crash on this system when given two or more files to compare. It's basically dead, and I'm using currently meld to go around this issue. STEPS TO REPRODUCE 1. kdiff3 <relative path-to-file> <file> OBSERVED RESULT segfault, or dies to a thrown exception. #0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44 #1 0x00007ffff5aa8eb3 in __pthread_kill_internal (threadid=<optimized out>, signo=6) at pthread_kill.c:78 #2 0x00007ffff5a50a30 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26 #3 0x00007ffff5a384c3 in __GI_abort () at abort.c:79 #4 0x00007ffff5c97b0c in __gnu_cxx::__verbose_terminate_handler () at /usr/src/debug/gcc/gcc/libstdc++-v3/libsupc++/vterminate.cc:95 #5 0x00007ffff5cadf1a in __cxxabiv1::__terminate (handler=<optimized out>) at /usr/src/debug/gcc/gcc/libstdc++-v3/libsupc++/eh_terminate.cc:48 #6 0x00007ffff5c9750a in std::terminate () at /usr/src/debug/gcc/gcc/libstdc++-v3/libsupc++/eh_terminate.cc:58 #7 0x00007ffff5cae1d6 in __cxxabiv1::__cxa_throw (obj=<optimized out>, tinfo=0x7ffff5e75dc0 <typeinfo for std::out_of_range>, dest=0x7ffff5cc4bc0 <std::out_of_range::~out_of_range()>) at /usr/src/debug/gcc/gcc/libstdc++-v3/libsupc++/eh_throw.cc:98 #8 0x00007ffff5c9b403 in std::__throw_out_of_range_fmt (__fmt=__fmt@entry=0x555555696c28 "vector::_M_range_check: __n (which is %zu) >= this->size() (which is %zu)") at /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/functexcept.cc:101 #9 0x000055555558c77e in std::vector<LineData, std::allocator<LineData> >::_M_range_check (this=<optimized out>, __n=<optimized out>) at /usr/include/c++/14.1.1/bits/stl_vector.h:1160 #10 std::vector<LineData, std::allocator<LineData> >::at (this=<optimized out>, __n=<optimized out>) at /usr/include/c++/14.1.1/bits/stl_vector.h:1182 #11 Diff3Line::getLineData (this=<optimized out>, src=<optimized out>) at /usr/src/debug/kdiff3/kdiff3-1.11.1/src/diff.h:337 #12 0x0000555555624be8 in Diff3Line::getString (this=0x5555561d46b0, src=e_SrcSelector::A) at /usr/src/debug/kdiff3/kdiff3-1.11.1/src/diff.h:342 #13 Diff3LineList::findHistoryRange (this=<optimized out>, historyStart=..., bThreeFiles=false, range=...) at /usr/src/debug/kdiff3/kdiff3-1.11.1/src/diff.cpp:1626 #14 MergeResultWindow::slotMergeHistory (this=this@entry=0x5555557f2bb0) at /usr/src/debug/kdiff3/kdiff3-1.11.1/src/mergeresultwindow.cpp:1166 #15 0x00005555556276b0 in MergeResultWindow::merge (this=<optimized out>, bAutoSolve=true, defaultSelector=<optimized out>, bConflictsOnly=false, bWhiteSpaceOnly=<optimized out>) at /usr/src/debug/kdiff3/kdiff3-1.11.1/src/mergeresultwindow.cpp:379 #16 0x00005555555ded8e in MergeResultWindow::init (this=0x5555557f2bb0, pLineDataA=..., sizeA=..., pLineDataB=std::shared_ptr<std::vector<LineData, std::allocator<LineData> >> (use count 4, weak count 0) = {...}, sizeB=..., pLineDataC=..., sizeC=..., pDiff3LineList=0x555555a45818, pTotalDiffStatus=0x555555a410f0, bAutoSolve=true) at /usr/src/debug/kdiff3/kdiff3-1.11.1/src/mergeresultwindow.cpp:132 #17 KDiff3App::mainInit (this=0x555555a453c0, pTotalDiffStatus=0x555555a410f0, inFlags=...) at /usr/src/debug/kdiff3/kdiff3-1.11.1/src/pdiff.cpp:380 #18 0x00005555555b48be in KDiff3App::doFileCompare (this=0x555555a453c0) at /usr/include/qt6/QtCore/qflags.h:74 #19 KDiff3App::completeInit (this=0x555555a453c0, fn1=..., fn2=..., fn3=...) at /usr/src/debug/kdiff3/kdiff3-1.11.1/src/kdiff3.cpp:493 #20 0x00005555555b7f34 in KDiff3Shell::KDiff3Shell (this=<optimized out>, fn1=..., fn2=..., fn3=..., this=<optimized out>, fn1=..., fn2=..., fn3=...) at /usr/src/debug/kdiff3/kdiff3-1.11.1/src/kdiff3_shell.cpp:39 #21 0x00005555555b81fc in operator() (__closure=0x555555944940) at /usr/src/debug/kdiff3/kdiff3-1.11.1/src/main.cpp:195 #22 QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, main(qint32, char**)::<lambda()> >::call (f=..., arg=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:137 #23 QtPrivate::FunctorCallable<main(qint32, char**)::<lambda()> >::call<QtPrivate::List<>, void> (f=..., arg=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:345 #24 QtPrivate::QCallableObject<main(qint32, char**)::<lambda()>, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=0x555555944930, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:555 #25 0x00007ffff618c0ff in QObject::event (this=0x7fffffffde30, e=0x555555d07ef0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:1452 #26 0x00007ffff70fc55c in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x7fffffffde30, e=0x555555d07ef0) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:3287 #27 0x00007ffff6144e38 in QCoreApplication::notifyInternal2 (receiver=0x7fffffffde30, event=event@entry=0x555555d07ef0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1142 #28 0x00007ffff61451fb in QCoreApplication::sendEvent (receiver=<optimized out>, event=0x555555d07ef0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1583 #29 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x5555556f4ba0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1940 #30 0x00007ffff63a460c in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1797 #31 postEventSourceDispatch (s=0x5555559ddd50) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:244 #32 0x00007ffff52e7a89 in g_main_dispatch (context=0x7fffe8000f00) at ../glib/glib/gmain.c:3344 #33 0x00007ffff53499b7 in g_main_context_dispatch_unlocked (context=0x7fffe8000f00) at ../glib/glib/gmain.c:4152 #34 g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x7fffe8000f00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4217 #35 0x00007ffff52e6f95 in g_main_context_iteration (context=0x7fffe8000f00, may_block=1) at ../glib/glib/gmain.c:4282 #36 0x00007ffff63a28dd in QEventDispatcherGlib::processEvents (this=0x55555597c390, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:394 #37 0x00007ffff614f10e in QEventLoop::processEvents (this=0x7fffffffdd10, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:100 #38 QEventLoop::exec (this=0x7fffffffdd10, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:182 #39 0x00007ffff614945d in QCoreApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/corelib/global/qflags.h:74 #40 0x00007ffff70f83fa in QApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:2555 #41 0x000055555559d1de in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/kdiff3/kdiff3-1.11.1/src/main.cpp:198 EXPECTED RESULT No crash, the diff/merge view works. SOFTWARE/OS VERSIONS kdiff3 --version reports: kdiff3 1.11.1 ADDITIONAL INFORMATION -- You are receiving this mail because: You are watching all bug changes.