Bug 489792 - kdiff3 crashes when deleting selection at the end of merge result
Summary: kdiff3 crashes when deleting selection at the end of merge result
Status: RESOLVED FIXED
Alias: None
Product: kdiff3
Classification: Applications
Component: application (other bugs)
Version First Reported In: 1.11.2
Platform: Arch Linux Linux
: NOR crash
Target Milestone: ---
Assignee: michael
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-07-05 16:27 UTC by Flupp
Modified: 2024-10-18 21:22 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed/Implemented In: 1.11.5
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Flupp 2024-07-05 16:27:11 UTC
Application: kdiff3 (1.11.2 (64 bit))

Qt Version: 6.7.2
Frameworks Version: 6.3.0
Operating System: Linux 6.9.7-arch1-1 x86_64
Windowing System: Wayland
Distribution: Arch Linux
DrKonqi: 6.1.1 [CoredumpBackend]

-- Information about the crash:
The problem can be reproduced as follows:

Create three conflicting files and attempt to merge them using kdiff3:

    echo a > a && echo b > b && echo c > c && kdiff3 -m a b c

After kdiff3 started, press the following keys:

    return (closing the dialog)
    ctrl + end (jump to end of editing buffer)
    return (insert new line; strangely this does not move the cursor)
    ctrl + end (jump to end of editing buffer)
    x (insert character x)
    shift + left (select to the left)
    delete (crash)

The crash can be reproduced every time.

-- Backtrace:
Application: KDiff3 (kdiff3), signal: Aborted
Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = <optimized out>}
[New LWP 197937]
[New LWP 197951]
[New LWP 197952]
[New LWP 197959]
[New LWP 197941]
[New LWP 197960]
[New LWP 197940]
[New LWP 197938]
[New LWP 197942]
[New LWP 197957]
[New LWP 197939]
[New LWP 197953]
[New LWP 197961]
[New LWP 197958]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
Core was generated by `kdiff3 -m a b c'.
Program terminated with signal SIGABRT, Aborted.
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
44	      return INTERNAL_SYSCALL_ERROR_P (ret) ? INTERNAL_SYSCALL_ERRNO (ret) : 0;
[Current thread is 1 (Thread 0x7359f9519a00 (LWP 197937))]

Cannot QML trace cores :(
[Current thread is 1 (Thread 0x7359f9519a00 (LWP 197937))]

Thread 14 (Thread 0x7359db2006c0 (LWP 197958)):
#0  0x00007359fe8a34e9 in __futex_abstimed_wait_common64 (private=0, futex_word=0x5a1631128d04, expected=0, op=137, abstime=0x7359db1ffa80, cancel=true) at futex-internal.c:57
#1  __futex_abstimed_wait_common (futex_word=futex_word@entry=0x5a1631128d04, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7359db1ffa80, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87
#2  0x00007359fe8a356f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x5a1631128d04, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7359db1ffa80, private=private@entry=0) at futex-internal.c:139
#3  0x00007359fe8a6242 in __pthread_cond_wait_common (cond=0x5a1631128cd8, mutex=<optimized out>, clockid=1, abstime=0x7359db1ffa80) at pthread_cond_wait.c:503
#4  ___pthread_cond_timedwait64 (cond=0x5a1631128cd8, mutex=<optimized out>, abstime=0x7359db1ffa80) at pthread_cond_wait.c:643
#5  0x00007359ff0ce0b8 in QWaitConditionPrivate::wait_relative (this=0x5a1631128cb0, deadline=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qwaitcondition_unix.cpp:92
#6  QWaitConditionPrivate::wait (this=0x5a1631128cb0, deadline=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qwaitcondition_unix.cpp:100
#7  QWaitCondition::wait (this=<optimized out>, mutex=0x5a16309e6ef8, deadline=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qwaitcondition_unix.cpp:180
#8  0x00007359ff0c7db2 in QThreadPoolThread::run (this=0x5a1630f99970) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthreadpool.cpp:116
#9  0x00007359ff0c9747 in operator() (__closure=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:326
#10 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:262
#11 QThreadPrivate::start (arg=0x5a1630f99970) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:285
#12 0x00007359fe8a6ded in start_thread (arg=<optimized out>) at pthread_create.c:447
#13 0x00007359fe92a0dc in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 13 (Thread 0x7359d20006c0 (LWP 197961)):
#0  0x00007359fe8a34e9 in __futex_abstimed_wait_common64 (private=0, futex_word=0x5a163112e814, expected=0, op=137, abstime=0x7359d1fffa80, cancel=true) at futex-internal.c:57
#1  __futex_abstimed_wait_common (futex_word=futex_word@entry=0x5a163112e814, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7359d1fffa80, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87
#2  0x00007359fe8a356f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x5a163112e814, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7359d1fffa80, private=private@entry=0) at futex-internal.c:139
#3  0x00007359fe8a6242 in __pthread_cond_wait_common (cond=0x5a163112e7e8, mutex=<optimized out>, clockid=1, abstime=0x7359d1fffa80) at pthread_cond_wait.c:503
#4  ___pthread_cond_timedwait64 (cond=0x5a163112e7e8, mutex=<optimized out>, abstime=0x7359d1fffa80) at pthread_cond_wait.c:643
#5  0x00007359ff0ce0b8 in QWaitConditionPrivate::wait_relative (this=0x5a163112e7c0, deadline=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qwaitcondition_unix.cpp:92
#6  QWaitConditionPrivate::wait (this=0x5a163112e7c0, deadline=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qwaitcondition_unix.cpp:100
#7  QWaitCondition::wait (this=<optimized out>, mutex=0x5a16309e6ef8, deadline=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qwaitcondition_unix.cpp:180
#8  0x00007359ff0c7db2 in QThreadPoolThread::run (this=0x5a1630fffb60) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthreadpool.cpp:116
#9  0x00007359ff0c9747 in operator() (__closure=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:326
#10 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:262
#11 QThreadPrivate::start (arg=0x5a1630fffb60) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:285
#12 0x00007359fe8a6ded in start_thread (arg=<optimized out>) at pthread_create.c:447
#13 0x00007359fe92a0dc in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 12 (Thread 0x7359dbc006c0 (LWP 197953)):
#0  0x00007359fe8a34e9 in __futex_abstimed_wait_common64 (private=0, futex_word=0x5a16308fa6b4, expected=0, op=137, abstime=0x7359dbbffa80, cancel=true) at futex-internal.c:57
#1  __futex_abstimed_wait_common (futex_word=futex_word@entry=0x5a16308fa6b4, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7359dbbffa80, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87
#2  0x00007359fe8a356f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x5a16308fa6b4, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7359dbbffa80, private=private@entry=0) at futex-internal.c:139
#3  0x00007359fe8a6242 in __pthread_cond_wait_common (cond=0x5a16308fa688, mutex=<optimized out>, clockid=1, abstime=0x7359dbbffa80) at pthread_cond_wait.c:503
#4  ___pthread_cond_timedwait64 (cond=0x5a16308fa688, mutex=<optimized out>, abstime=0x7359dbbffa80) at pthread_cond_wait.c:643
#5  0x00007359ff0ce0b8 in QWaitConditionPrivate::wait_relative (this=0x5a16308fa660, deadline=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qwaitcondition_unix.cpp:92
#6  QWaitConditionPrivate::wait (this=0x5a16308fa660, deadline=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qwaitcondition_unix.cpp:100
#7  QWaitCondition::wait (this=<optimized out>, mutex=0x5a16309e6ef8, deadline=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qwaitcondition_unix.cpp:180
#8  0x00007359ff0c7db2 in QThreadPoolThread::run (this=0x5a1630b3f780) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthreadpool.cpp:116
#9  0x00007359ff0c9747 in operator() (__closure=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:326
#10 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:262
#11 QThreadPrivate::start (arg=0x5a1630b3f780) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:285
#12 0x00007359fe8a6ded in start_thread (arg=<optimized out>) at pthread_create.c:447
#13 0x00007359fe92a0dc in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 11 (Thread 0x7359f30006c0 (LWP 197939)):
#0  0x00007359fe91c39d in __GI___poll (fds=fds@entry=0x7359f2fffb20, nfds=nfds@entry=2, timeout=timeout@entry=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007359fb974257 in poll (__fds=0x7359f2fffb20, __nfds=2, __timeout=-1) at /usr/include/bits/poll2.h:39
#2  QtWaylandClient::EventThread::run (this=0x5a16305a5e90) at /usr/src/debug/qt6-wayland/qtwayland/src/client/qwaylanddisplay.cpp:182
#3  0x00007359ff0c9747 in operator() (__closure=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:326
#4  (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:262
#5  QThreadPrivate::start (arg=0x5a16305a5e90) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:285
#6  0x00007359fe8a6ded in start_thread (arg=<optimized out>) at pthread_create.c:447
#7  0x00007359fe92a0dc in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 10 (Thread 0x7359d92006c0 (LWP 197957)):
#0  0x00007359fe8a34e9 in __futex_abstimed_wait_common64 (private=0, futex_word=0x7359ec002280, expected=0, op=137, abstime=0x7359d91ffa80, cancel=true) at futex-internal.c:57
#1  __futex_abstimed_wait_common (futex_word=futex_word@entry=0x7359ec002280, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7359d91ffa80, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87
#2  0x00007359fe8a356f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x7359ec002280, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7359d91ffa80, private=private@entry=0) at futex-internal.c:139
#3  0x00007359fe8a6242 in __pthread_cond_wait_common (cond=0x7359ec002258, mutex=<optimized out>, clockid=1, abstime=0x7359d91ffa80) at pthread_cond_wait.c:503
#4  ___pthread_cond_timedwait64 (cond=0x7359ec002258, mutex=<optimized out>, abstime=0x7359d91ffa80) at pthread_cond_wait.c:643
#5  0x00007359ff0ce0b8 in QWaitConditionPrivate::wait_relative (this=0x7359ec002230, deadline=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qwaitcondition_unix.cpp:92
#6  QWaitConditionPrivate::wait (this=0x7359ec002230, deadline=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qwaitcondition_unix.cpp:100
#7  QWaitCondition::wait (this=<optimized out>, mutex=0x5a16309e6ef8, deadline=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qwaitcondition_unix.cpp:180
#8  0x00007359ff0c7db2 in QThreadPoolThread::run (this=0x5a16309ceb50) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthreadpool.cpp:116
#9  0x00007359ff0c9747 in operator() (__closure=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:326
#10 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:262
#11 QThreadPrivate::start (arg=0x5a16309ceb50) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:285
#12 0x00007359fe8a6ded in start_thread (arg=<optimized out>) at pthread_create.c:447
#13 0x00007359fe92a0dc in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 9 (Thread 0x7359f12006c0 (LWP 197942)):
#0  0x00007359fe8a34e9 in __futex_abstimed_wait_common64 (private=0, futex_word=0x5a16306ee530, expected=0, op=393, abstime=0x0, cancel=true) at futex-internal.c:57
#1  __futex_abstimed_wait_common (futex_word=futex_word@entry=0x5a16306ee530, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87
#2  0x00007359fe8a356f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x5a16306ee530, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139
#3  0x00007359fe8a5ed9 in __pthread_cond_wait_common (cond=0x5a16306ee508, mutex=<optimized out>, clockid=0, abstime=0x0) at pthread_cond_wait.c:503
#4  ___pthread_cond_wait (cond=0x5a16306ee508, mutex=<optimized out>) at pthread_cond_wait.c:618
#5  0x00007359e9c9d47e in cnd_wait () at ../mesa-24.1.2/src/c11/impl/threads_posix.c:135
#6  0x00007359e9c7b22c in util_queue_thread_func () at ../mesa-24.1.2/src/util/u_queue.c:290
#7  0x00007359e9c9d3ad in impl_thrd_routine () at ../mesa-24.1.2/src/c11/impl/threads_posix.c:67
#8  0x00007359fe8a6ded in start_thread (arg=<optimized out>) at pthread_create.c:447
#9  0x00007359fe92a0dc in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 8 (Thread 0x7359f8e006c0 (LWP 197938)):
#0  0x00007359fe91c39d in __GI___poll (fds=0x5a1630589b50, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007359fe2398fd in g_main_context_poll_unlocked (priority=2147483647, context=0x7359f4000c80, timeout=<optimized out>, fds=0x5a1630589b50, n_fds=2) at ../glib/glib/gmain.c:4521
#2  g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x7359f4000c80, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4212
#3  0x00007359fe1d6f95 in g_main_context_iteration (context=0x7359f4000c80, may_block=1) at ../glib/glib/gmain.c:4282
#4  0x00007359ff1a2cbd in QEventDispatcherGlib::processEvents (this=0x7359f4000b70, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:394
#5  0x00007359fef4f01e in QEventLoop::processEvents (this=0x7359f8dffae0, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:100
#6  QEventLoop::exec (this=0x7359f8dffae0, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:182
#7  0x00007359ff03a410 in QThread::exec (this=this@entry=0x7359fedfeb20 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS__q_manager> >::instance()::holder>) at /usr/src/debug/qt6-base/qtbase/src/corelib/global/qflags.h:74
#8  0x00007359fed75e4e in QDBusConnectionManager::run (this=0x7359fedfeb20 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS__q_manager> >::instance()::holder>) at /usr/src/debug/qt6-base/qtbase/src/dbus/qdbusconnectionmanager.cpp:144
#9  0x00007359ff0c9747 in operator() (__closure=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:326
#10 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:262
#11 QThreadPrivate::start (arg=0x7359fedfeb20 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS__q_manager> >::instance()::holder>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:285
#12 0x00007359fe8a6ded in start_thread (arg=<optimized out>) at pthread_create.c:447
#13 0x00007359fe92a0dc in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 7 (Thread 0x7359f26006c0 (LWP 197940)):
#0  0x00007359fe91c39d in __GI___poll (fds=fds@entry=0x7359f25ffb20, nfds=nfds@entry=2, timeout=timeout@entry=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007359fb974257 in poll (__fds=0x7359f25ffb20, __nfds=2, __timeout=-1) at /usr/include/bits/poll2.h:39
#2  QtWaylandClient::EventThread::run (this=0x5a16305912d0) at /usr/src/debug/qt6-wayland/qtwayland/src/client/qwaylanddisplay.cpp:182
#3  0x00007359ff0c9747 in operator() (__closure=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:326
#4  (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:262
#5  QThreadPrivate::start (arg=0x5a16305912d0) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:285
#6  0x00007359fe8a6ded in start_thread (arg=<optimized out>) at pthread_create.c:447
#7  0x00007359fe92a0dc in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 6 (Thread 0x7359d2a006c0 (LWP 197960)):
#0  0x00007359fe8a34e9 in __futex_abstimed_wait_common64 (private=0, futex_word=0x5a1631129984, expected=0, op=137, abstime=0x7359d29ffa80, cancel=true) at futex-internal.c:57
#1  __futex_abstimed_wait_common (futex_word=futex_word@entry=0x5a1631129984, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7359d29ffa80, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87
#2  0x00007359fe8a356f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x5a1631129984, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7359d29ffa80, private=private@entry=0) at futex-internal.c:139
#3  0x00007359fe8a6242 in __pthread_cond_wait_common (cond=0x5a1631129958, mutex=<optimized out>, clockid=1, abstime=0x7359d29ffa80) at pthread_cond_wait.c:503
#4  ___pthread_cond_timedwait64 (cond=0x5a1631129958, mutex=<optimized out>, abstime=0x7359d29ffa80) at pthread_cond_wait.c:643
#5  0x00007359ff0ce0b8 in QWaitConditionPrivate::wait_relative (this=0x5a1631129930, deadline=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qwaitcondition_unix.cpp:92
#6  QWaitConditionPrivate::wait (this=0x5a1631129930, deadline=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qwaitcondition_unix.cpp:100
#7  QWaitCondition::wait (this=<optimized out>, mutex=0x5a16309e6ef8, deadline=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qwaitcondition_unix.cpp:180
#8  0x00007359ff0c7db2 in QThreadPoolThread::run (this=0x5a16311297f0) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthreadpool.cpp:116
#9  0x00007359ff0c9747 in operator() (__closure=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:326
#10 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:262
#11 QThreadPrivate::start (arg=0x5a16311297f0) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:285
#12 0x00007359fe8a6ded in start_thread (arg=<optimized out>) at pthread_create.c:447
#13 0x00007359fe92a0dc in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 5 (Thread 0x7359f1c006c0 (LWP 197941)):
#0  0x00007359fe8a34e9 in __futex_abstimed_wait_common64 (private=0, futex_word=0x5a16306f8b78, expected=0, op=393, abstime=0x0, cancel=true) at futex-internal.c:57
#1  __futex_abstimed_wait_common (futex_word=futex_word@entry=0x5a16306f8b78, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87
#2  0x00007359fe8a356f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x5a16306f8b78, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139
#3  0x00007359fe8a5ed9 in __pthread_cond_wait_common (cond=0x5a16306f8b50, mutex=<optimized out>, clockid=0, abstime=0x0) at pthread_cond_wait.c:503
#4  ___pthread_cond_wait (cond=0x5a16306f8b50, mutex=<optimized out>) at pthread_cond_wait.c:618
#5  0x00007359e9c9d47e in cnd_wait () at ../mesa-24.1.2/src/c11/impl/threads_posix.c:135
#6  0x00007359e9c7b22c in util_queue_thread_func () at ../mesa-24.1.2/src/util/u_queue.c:290
#7  0x00007359e9c9d3ad in impl_thrd_routine () at ../mesa-24.1.2/src/c11/impl/threads_posix.c:67
#8  0x00007359fe8a6ded in start_thread (arg=<optimized out>) at pthread_create.c:447
#9  0x00007359fe92a0dc in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 4 (Thread 0x7359d3e006c0 (LWP 197959)):
#0  0x00007359fe8a34e9 in __futex_abstimed_wait_common64 (private=0, futex_word=0x5a1631128eb0, expected=0, op=137, abstime=0x7359d3dffa80, cancel=true) at futex-internal.c:57
#1  __futex_abstimed_wait_common (futex_word=futex_word@entry=0x5a1631128eb0, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7359d3dffa80, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87
#2  0x00007359fe8a356f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x5a1631128eb0, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7359d3dffa80, private=private@entry=0) at futex-internal.c:139
#3  0x00007359fe8a6242 in __pthread_cond_wait_common (cond=0x5a1631128e88, mutex=<optimized out>, clockid=1, abstime=0x7359d3dffa80) at pthread_cond_wait.c:503
#4  ___pthread_cond_timedwait64 (cond=0x5a1631128e88, mutex=<optimized out>, abstime=0x7359d3dffa80) at pthread_cond_wait.c:643
#5  0x00007359ff0ce0b8 in QWaitConditionPrivate::wait_relative (this=0x5a1631128e60, deadline=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qwaitcondition_unix.cpp:92
#6  QWaitConditionPrivate::wait (this=0x5a1631128e60, deadline=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qwaitcondition_unix.cpp:100
#7  QWaitCondition::wait (this=<optimized out>, mutex=0x5a16309e6ef8, deadline=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qwaitcondition_unix.cpp:180
#8  0x00007359ff0c7db2 in QThreadPoolThread::run (this=0x5a1631128d20) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthreadpool.cpp:116
#9  0x00007359ff0c9747 in operator() (__closure=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:326
#10 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:262
#11 QThreadPrivate::start (arg=0x5a1631128d20) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:285
#12 0x00007359fe8a6ded in start_thread (arg=<optimized out>) at pthread_create.c:447
#13 0x00007359fe92a0dc in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 3 (Thread 0x7359e90006c0 (LWP 197952)):
#0  0x00007359fe8a34e9 in __futex_abstimed_wait_common64 (private=0, futex_word=0x5a1630900130, expected=0, op=137, abstime=0x7359e8fffa80, cancel=true) at futex-internal.c:57
#1  __futex_abstimed_wait_common (futex_word=futex_word@entry=0x5a1630900130, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7359e8fffa80, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87
#2  0x00007359fe8a356f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x5a1630900130, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7359e8fffa80, private=private@entry=0) at futex-internal.c:139
#3  0x00007359fe8a6242 in __pthread_cond_wait_common (cond=0x5a1630900108, mutex=<optimized out>, clockid=1, abstime=0x7359e8fffa80) at pthread_cond_wait.c:503
#4  ___pthread_cond_timedwait64 (cond=0x5a1630900108, mutex=<optimized out>, abstime=0x7359e8fffa80) at pthread_cond_wait.c:643
#5  0x00007359ff0ce0b8 in QWaitConditionPrivate::wait_relative (this=0x5a16309000e0, deadline=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qwaitcondition_unix.cpp:92
#6  QWaitConditionPrivate::wait (this=0x5a16309000e0, deadline=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qwaitcondition_unix.cpp:100
#7  QWaitCondition::wait (this=<optimized out>, mutex=0x5a16309e6ef8, deadline=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qwaitcondition_unix.cpp:180
#8  0x00007359ff0c7db2 in QThreadPoolThread::run (this=0x5a163092da70) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthreadpool.cpp:116
#9  0x00007359ff0c9747 in operator() (__closure=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:326
#10 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:262
#11 QThreadPrivate::start (arg=0x5a163092da70) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:285
#12 0x00007359fe8a6ded in start_thread (arg=<optimized out>) at pthread_create.c:447
#13 0x00007359fe92a0dc in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 2 (Thread 0x7359e9a006c0 (LWP 197951)):
#0  0x00007359fe8a34e9 in __futex_abstimed_wait_common64 (private=0, futex_word=0x5a16308fff10, expected=0, op=137, abstime=0x7359e99ffa80, cancel=true) at futex-internal.c:57
#1  __futex_abstimed_wait_common (futex_word=futex_word@entry=0x5a16308fff10, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7359e99ffa80, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87
#2  0x00007359fe8a356f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x5a16308fff10, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7359e99ffa80, private=private@entry=0) at futex-internal.c:139
#3  0x00007359fe8a6242 in __pthread_cond_wait_common (cond=0x5a16308ffee8, mutex=<optimized out>, clockid=1, abstime=0x7359e99ffa80) at pthread_cond_wait.c:503
#4  ___pthread_cond_timedwait64 (cond=0x5a16308ffee8, mutex=<optimized out>, abstime=0x7359e99ffa80) at pthread_cond_wait.c:643
#5  0x00007359ff0ce0b8 in QWaitConditionPrivate::wait_relative (this=0x5a16308ffec0, deadline=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qwaitcondition_unix.cpp:92
#6  QWaitConditionPrivate::wait (this=0x5a16308ffec0, deadline=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qwaitcondition_unix.cpp:100
#7  QWaitCondition::wait (this=<optimized out>, mutex=0x5a16309e6ef8, deadline=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qwaitcondition_unix.cpp:180
#8  0x00007359ff0c7db2 in QThreadPoolThread::run (this=0x5a16308b3c10) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthreadpool.cpp:116
#9  0x00007359ff0c9747 in operator() (__closure=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:326
#10 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:262
#11 QThreadPrivate::start (arg=0x5a16308b3c10) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:285
#12 0x00007359fe8a6ded in start_thread (arg=<optimized out>) at pthread_create.c:447
#13 0x00007359fe92a0dc in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 1 (Thread 0x7359f9519a00 (LWP 197937)):
[KCrash Handler]
#5  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#6  0x00007359fe8a8eb3 in __pthread_kill_internal (threadid=<optimized out>, signo=6) at pthread_kill.c:78
#7  0x00007359fe850a30 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#8  0x00007359fe8384c3 in __GI_abort () at abort.c:79
#9  0x00007359fe8383df in __assert_fail_base (fmt=0x7359fe9c3b68 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x5a15f161a0f9 "false", file=file@entry=0x5a15f1629068 "/usr/src/debug/kdiff3/kdiff3-1.11.2/src/mergeresultwindow.cpp", line=line@entry=2457, function=function@entry=0x5a15f163c2d8 "bool MergeResultWindow::deleteSelection2(QString&, SafeInt<int>&, qint32&, std::__cxx11::list<MergeBlock>::iterator&, std::__cxx11::list<MergeEditLine>::iterator&)") at assert.c:94
#10 0x00007359fe848c67 in __assert_fail (assertion=0x5a15f161a0f9 "false", file=0x5a15f1629068 "/usr/src/debug/kdiff3/kdiff3-1.11.2/src/mergeresultwindow.cpp", line=2457, function=0x5a15f163c2d8 "bool MergeResultWindow::deleteSelection2(QString&, SafeInt<int>&, qint32&, std::__cxx11::list<MergeBlock>::iterator&, std::__cxx11::list<MergeEditLine>::iterator&)") at assert.c:103
#11 0x00005a15f15ce4a0 in MergeResultWindow::deleteSelection2 (this=this@entry=0x5a1630d760e0, s=..., x=..., y=@0x7ffc1a8adf74: 2, mbIt=..., melIt=...) at /usr/src/debug/kdiff3/kdiff3-1.11.2/src/mergeresultwindow.cpp:2457
#12 0x00005a15f15cf7d0 in MergeResultWindow::keyPressEvent (this=0x5a1630d760e0, keyEvent=0x7ffc1a8ae640) at /usr/src/debug/kdiff3/kdiff3-1.11.2/src/mergeresultwindow.cpp:2012
#13 0x00007359fff4bd94 in QWidget::event (this=0x5a1630d760e0, event=0x7ffc1a8ae640) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qwidget.cpp:9058
#14 0x00007359ffefc51c in QApplicationPrivate::notify_helper (this=this@entry=0x5a1630578250, receiver=receiver@entry=0x5a1630d760e0, e=e@entry=0x7ffc1a8ae640) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:3287
#15 0x00007359fff01c52 in QApplication::notify (this=<optimized out>, receiver=<optimized out>, e=0x7ffc1a8ae640) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:2706
#16 0x00007359fef44d28 in QCoreApplication::notifyInternal2 (receiver=0x5a1630d760e0, event=0x7ffc1a8ae640) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1142
#17 0x00007359fef44d5a in QCoreApplication::forwardEvent (receiver=<optimized out>, event=<optimized out>, originatingEvent=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1157
#18 0x00007359fff635b6 in QWidgetWindow::handleGestureEvent (this=<optimized out>, e=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qwidgetwindow.cpp:1130
#19 QWidgetWindow::event (this=0x5a1630b87350, event=0x7ffc1a8ae640) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qwidgetwindow.cpp:334
#20 0x00007359ffefc51c in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x5a1630b87350, e=0x7ffc1a8ae640) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:3287
#21 0x00007359fef44d28 in QCoreApplication::notifyInternal2 (receiver=0x5a1630b87350, event=0x7ffc1a8ae640) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1142
#22 0x00007359fef44d7d in QCoreApplication::sendSpontaneousEvent (receiver=<optimized out>, event=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1597
#23 0x00007359ff5785e4 in QGuiApplicationPrivate::processKeyEvent (e=0x5a16308964e0) at /usr/src/debug/qt6-base/qtbase/src/gui/kernel/qguiapplication.cpp:2453
#24 0x00007359ff5e5d64 in QWindowSystemInterface::sendWindowSystemEvents (flags=...) at /usr/src/debug/qt6-base/qtbase/src/gui/kernel/qwindowsysteminterface.cpp:1114
#25 0x00007359ff9f9674 in userEventSourceDispatch (source=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/gui/platform/unix/qeventdispatcher_glib.cpp:38
#26 0x00007359fe1d7a89 in g_main_dispatch (context=0x7359f4000f00) at ../glib/glib/gmain.c:3344
#27 0x00007359fe2399b7 in g_main_context_dispatch_unlocked (context=0x7359f4000f00) at ../glib/glib/gmain.c:4152
#28 g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x7359f4000f00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4217
#29 0x00007359fe1d6f95 in g_main_context_iteration (context=0x7359f4000f00, may_block=1) at ../glib/glib/gmain.c:4282
#30 0x00007359ff1a2cbd in QEventDispatcherGlib::processEvents (this=0x5a1630598600, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:394
#31 0x00007359fef4f01e in QEventLoop::processEvents (this=0x7ffc1a8ae9b0, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:100
#32 QEventLoop::exec (this=0x7ffc1a8ae9b0, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:182
#33 0x00007359fef4934d in QCoreApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/corelib/global/qflags.h:74
#34 0x00007359ffef83ba in QApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:2555
#35 0x00005a15f153d05e in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/kdiff3/kdiff3-1.11.2/src/main.cpp:198

Reported using DrKonqi – (well, not really, DrKonqi showed a submission error: “Failed to submit bug report: Error transferring https://bugs.kde.org/rest/bug?token=***redacted*** - server replied: ” (nothing followed the colon). Therefore I copied the report into the web interface.)
Comment 1 michael 2024-10-18 21:21:05 UTC
Git commit 7a63c4ba770c0a636f7184f24c344bddef2de2f8 by Michael Reeves.
Committed on 18/10/2024 at 21:07.
Pushed by mreeves into branch '1.11'.

Un break delete selection

Lastline in merge block should not be removed when deleting selection.
Delete key  handler is the right place for removing last blank line.
FIXED-IN:1.11.5
(cherry picked from commit f3ba3e015a8e1686f0d821e14445319e734871d5)

M  +1    -1    src/mergeresultwindow.cpp

https://invent.kde.org/sdk/kdiff3/-/commit/7a63c4ba770c0a636f7184f24c344bddef2de2f8
Comment 2 michael 2024-10-18 21:22:20 UTC
Git commit f3ba3e015a8e1686f0d821e14445319e734871d5 by Michael Reeves.
Committed on 18/10/2024 at 21:06.
Pushed by mreeves into branch 'master'.

Un break delete selection

Lastline in merge block should not be removed when deleting selection.
Delete key  handler is the right place for removing last blank line.
FIXED-IN:1.11.5

M  +1    -1    src/mergeresultwindow.cpp

https://invent.kde.org/sdk/kdiff3/-/commit/f3ba3e015a8e1686f0d821e14445319e734871d5