kde-misc/kdiff3-1.10.5 crashes after solving conflicts
I've run git mergetool after a range cherry-pick, solved conflicts and saved which triggered a crash. It's not the first time this kind of crashes happen to me with kdiff3, even on x86_64.
niko@talos2 ~/devel/mikro-orm $ git mergetool
Merging:
packages/core/src/entity/Collection.ts
Normal merge conflict for 'packages/core/src/entity/Collection.ts':
{local}: modified file
{remote}: modified file
/usr/libexec/git-core/mergetools/kdiff3: line 11: 1130169 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 packages/core/src/entity/Collection.ts failed
talos2 ~ # coredumpctl gdb 1130169
PID: 1130169 (kdiff3)
UID: 1000 (niko)
GID: 1000 (niko)
Signal: 11 (SEGV)
Timestamp: Wed 2023-08-23 17:14:46 CEST (43s ago)
Command Line: /usr/bin/kdiff3 --auto --L1 $'packages/core/src/entity/Collection.ts (Base)' --L2 $'packages/core/src/entity/Collection.ts (Local)' --L3 $'packages/core/src/entity/Collection.ts (Remote)' -o packages/core/src/entity/Collection.ts ./packages/core/src/entity/Collection_BASE_1130091.ts ./packages/core/src/entity/Collection_LOCAL_1130091.ts ./packages/core/src/entity/Collection_REMOTE_1130091.ts
Executable: /usr/bin/kdiff3
Control Group: /user.slice/user-1000.slice/user@1000.service/session.slice/vte-spawn-8a27af19-0484-49a4-ac04-5b6144be93dd.scope
Unit: user@1000.service
User Unit: vte-spawn-8a27af19-0484-49a4-ac04-5b6144be93dd.scope
Slice: user-1000.slice
Owner UID: 1000 (niko)
Boot ID: b3814c7017e34a8f92ebf9e289f8138d
Machine ID: b3e834569b8ff461391f5ac061feb773
Hostname: talos2
Storage: /var/lib/systemd/coredump/core.kdiff3.1000.b3814c7017e34a8f92ebf9e289f8138d.1130169.1692803686000000.zst (present)
Size on Disk: 3.7M
Message: Process 1130169 (kdiff3) of user 1000 dumped core.
GNU gdb (Gentoo 13.2 vanilla) 13.2
Copyright (C) 2023 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "powerpc64le-unknown-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://bugs.gentoo.org/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/bin/kdiff3...
[New LWP 1130169]
[New LWP 1130172]
[New LWP 1130173]
[New LWP 1130174]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib64/libthread_db.so.1".
Core was generated by `/usr/bin/kdiff3 --auto --L1 packages/core/src/entity/Collection.ts (Base) --L2 '.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00003fffae4dc790 in QWidget::isActiveWindow() const () from /usr/lib64/libQt5Widgets.so.5
[Current thread is 1 (Thread 0x3fffaf5348a0 (LWP 1130169))]
(gdb) backtrace
#0 0x00003fffae4dc790 in QWidget::isActiveWindow() const () at /usr/lib64/libQt5Widgets.so.5
#1 0x00003fffae7849a4 in QDialog::setVisible(bool) () at /usr/lib64/libQt5Widgets.so.5
#2 0x00003fffae4dcddc in QWidget::hide() () at /usr/lib64/libQt5Widgets.so.5
#3 0x00003fffae781174 in QDialog::~QDialog() () at /usr/lib64/libQt5Widgets.so.5
#4 0x0000000137c3ffe8 in ProgressDialog::~ProgressDialog() (this=0x138a0fcd0, __in_chrg=<optimized out>) at /var/tmp/portage/kde-misc/kdiff3-1.10.5/work/kdiff3-1.10.5_build/src/kdiff3_autogen/EWIEGA46WW/../../../../kdiff3-1.10.5/src/progress.h:30
#5 0x0000000137c5c728 in std::_Destroy<ProgressDialog>(ProgressDialog*) (__pointer=<optimized out>) at /usr/lib/gcc/powerpc64le-unknown-linux-gnu/12/include/g++-v12/bits/stl_construct.h:151
#6 std::allocator_traits<std::allocator<void> >::destroy<ProgressDialog>(std::allocator<void>&, ProgressDialog*) (__p=<optimized out>) at /usr/lib/gcc/powerpc64le-unknown-linux-gnu/12/include/g++-v12/bits/alloc_traits.h:648
#7 std::_Sp_counted_ptr_inplace<ProgressDialog, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_M_dispose() (this=<error reading variable: value has been optimized out>) at /usr/lib/gcc/powerpc64le-unknown-linux-gnu/12/include/g++-v12/bits/shared_ptr_base.h:613
#8 0x0000000137d2b664 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() (this=0x138a0fcc0) at /usr/lib/gcc/powerpc64le-unknown-linux-gnu/12/include/g++-v12/bits/shared_ptr_base.h:346
#9 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() (this=<optimized out>, __in_chrg=<optimized out>) at /usr/lib/gcc/powerpc64le-unknown-linux-gnu/12/include/g++-v12/bits/shared_ptr_base.h:1071
#10 std::__shared_ptr<ProgressDialog, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() (this=<optimized out>, __in_chrg=<optimized out>) at /usr/lib/gcc/powerpc64le-unknown-linux-gnu/12/include/g++-v12/bits/shared_ptr_base.h:1524
#11 std::shared_ptr<ProgressDialog>::~shared_ptr() (this=<optimized out>, __in_chrg=<optimized out>) at /usr/lib/gcc/powerpc64le-unknown-linux-gnu/12/include/g++-v12/bits/shared_ptr.h:175
#12 0x00003fffacde805c in () at /usr/lib64/libc.so.6
#13 0x00003fffacde8208 in exit () at /usr/lib64/libc.so.6
#14 0x00003fffacdc4b38 in () at /usr/lib64/libc.so.6
#15 0x00003fffacdc4d6c in __libc_start_main () at /usr/lib64/libc.so.6
#16 0x0000000000000000 in ()
(gdb) info threads
Id Target Id Frame
* 1 Thread 0x3fffaf5348a0 (LWP 1130169) 0x00003fffae4dc790 in QWidget::isActiveWindow() const () from /usr/lib64/libQt5Widgets.so.5
2 Thread 0x3fffa49bef60 (LWP 1130172) 0x00003fffacee9ca0 in syscall () from /usr/lib64/libc.so.6
3 Thread 0x3fff9fffef60 (LWP 1130173) 0x00003fffacee0484 in poll () from /usr/lib64/libc.so.6
4 Thread 0x3fff9f7fdf60 (LWP 1130174) 0x00003fffacee0484 in poll () from /usr/lib64/libc.so.6