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.

Reply via email to