Bug 489029 - kommit crashes when closing a branch diff with changes
Summary: kommit crashes when closing a branch diff with changes
Status: REPORTED
Alias: None
Product: kommit
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Neon Linux
: NOR crash
Target Milestone: ---
Assignee: Hamed Masafi
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2024-06-23 08:30 UTC by Oded Arbel
Modified: 2024-09-13 23:07 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Oded Arbel 2024-06-23 08:30:28 UTC
Application: kommit (1.6.0)

Qt Version: 6.7.0
Frameworks Version: 6.4.0
Operating System: Linux 6.5.0-41-generic x86_64
Windowing System: Wayland
Distribution: KDE neon Testing Edition
DrKonqi: 6.1.1 [KCrashBackend]

-- Information about the crash:
Reproduction:

1. Launch kommit with a file name - e.g. `kommit src/file.cpp`
2. click "Branches"
3. Select a branch and right click and choose "Diff.."
4. Navigate the tree to a file with changes and select it so the diff shows.
5. Move around the look at the changes.
6. Close the diff viewer.

The crash can be reproduced every time.

-- Backtrace:
Application: Kommit (kommit), signal: Aborted
Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = <optimized out>}
[KCrash Handler]
#6  __pthread_kill_implementation (no_tid=0, signo=6, threadid=136925734488768) at ./nptl/pthread_kill.c:44
#7  __pthread_kill_internal (signo=6, threadid=136925734488768) at ./nptl/pthread_kill.c:78
#8  __GI___pthread_kill (threadid=136925734488768, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#9  0x00007c8887c42476 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#10 0x00007c8887c287f3 in __GI_abort () at ./stdlib/abort.c:79
#11 0x00007c88884fdb6e in qAbort () at ./src/corelib/global/qglobal.cpp:161
#12 0x00007c88884f820a in qt_message_fatal<QString&> (message=..., context=...) at ./src/corelib/global/qlogging.cpp:2025
#13 qt_message(QtMsgType, const QMessageLogContext &, const char *, typedef __va_list_tag __va_list_tag *) (msgType=msgType@entry=QtFatalMsg, context=..., msg=<optimized out>, ap=ap@entry=0x7ffdc89e04e0) at ./src/corelib/global/qlogging.cpp:374
#14 0x00007c88884fe511 in QMessageLogger::fatal (this=<optimized out>, msg=<optimized out>) at ./src/corelib/global/qlogging.cpp:889
#15 0x00007c88884c2b22 in qt_assert_x (where=<optimized out>, what=what@entry=0x7c88898b6040 "Called object is not of the correct type (class destructor may have already run)", file=file@entry=0x7c88898b6000 "/usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h", line=line@entry=129) at ./src/corelib/global/qassert.cpp:77
#16 0x00007c888985f401 in QtPrivate::assertObjectType<DiffWidget>(QObject*) [clone .part.0] [clone .lto_priv.0] (o=<optimized out>) at /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:129
#17 0x00007c888985f6b6 in QtPrivate::assertObjectType<DiffWidget> (o=0x62985c6317c0) at /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:559
#18 QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<int>, void, void (DiffWidget::*)(int)>::call (arg=0x7ffdc89e0720, o=0x62985c6317c0, f=(void (DiffWidget::*)(DiffWidget * const, int)) 0x7c888985e030 <DiffWidget::newCodeEditor_scroll(int)>) at /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:144
#19 QtPrivate::FunctionPointer<void (DiffWidget::*)(int)>::call<QtPrivate::List<int>, void> (arg=0x7ffdc89e0720, o=0x62985c6317c0, f=(void (DiffWidget::*)(DiffWidget * const, int)) 0x7c888985e030 <DiffWidget::newCodeEditor_scroll(int)>) at /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:182
#20 QtPrivate::QCallableObject<void (DiffWidget::*)(int), QtPrivate::List<int>, void>::impl (which=<optimized out>, this_=<optimized out>, r=0x62985c6317c0, a=0x7ffdc89e0720, ret=<optimized out>) at /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:553
#21 0x00007c888846355e in QtPrivate::QSlotObjectBase::call (a=<optimized out>, r=<optimized out>, this=<optimized out>, this=<optimized out>, r=<optimized out>, a=<optimized out>) at ./src/corelib/kernel/qobjectdefs_impl.h:469
#22 doActivate<false> (sender=0x62985c73e020, signal_index=7, argv=0x7ffdc89e0720) at ./src/corelib/kernel/qobject.cpp:4078
#23 0x00007c88895aac32 in QAbstractSlider::valueChanged (this=this@entry=0x62985c73e020, _t1=<optimized out>, _t1@entry=0) at ./obj-x86_64-linux-gnu/src/widgets/Widgets_autogen/include/moc_qabstractslider.cpp:329
#24 0x00007c88895ac552 in QAbstractSlider::setValue (this=0x62985c73e020, value=0) at ./src/widgets/widgets/qabstractslider.cpp:518
#25 0x00007c88895480e5 in QPlainTextEditPrivate::adjustScrollbars (this=0x62985c804760) at ./src/corelib/global/qminmax.h:42
#26 0x00007c888846355e in QtPrivate::QSlotObjectBase::call (a=<optimized out>, r=<optimized out>, this=<optimized out>, this=<optimized out>, r=<optimized out>, a=<optimized out>) at ./src/corelib/kernel/qobjectdefs_impl.h:469
#27 doActivate<false> (sender=0x62985c6879a0, signal_index=12, argv=0x7ffdc89e0980) at ./src/corelib/kernel/qobject.cpp:4078
#28 0x00007c8889417e79 in QWidgetTextControl::documentSizeChanged (this=<optimized out>, _t1=...) at ./obj-x86_64-linux-gnu/src/widgets/Widgets_autogen/include/moc_qwidgettextcontrol_p.cpp:624
#29 0x00007c888846355e in QtPrivate::QSlotObjectBase::call (a=<optimized out>, r=<optimized out>, this=<optimized out>, this=<optimized out>, r=<optimized out>, a=<optimized out>) at ./src/corelib/kernel/qobjectdefs_impl.h:469
#30 doActivate<false> (sender=0x62985c86cbe0, signal_index=6, argv=0x7ffdc89e0a80) at ./src/corelib/kernel/qobject.cpp:4078
#31 0x00007c8888adbeb9 in QAbstractTextDocumentLayout::documentSizeChanged (this=this@entry=0x62985c86cbe0, _t1=...) at ./obj-x86_64-linux-gnu/src/gui/Gui_autogen/include/moc_qabstracttextdocumentlayout.cpp:224
#32 0x00007c8889544d61 in QPlainTextDocumentLayout::documentChanged (this=0x62985c86cbe0, from=<optimized out>, charsRemoved=<optimized out>, charsAdded=<optimized out>) at ./src/widgets/widgets/qplaintextedit.cpp:310
#33 0x00007c8888b4dfcc in QTextDocumentPrivate::finishEdit (this=0x62985c6636e0) at ./src/gui/text/qtextdocument_p.cpp:1192
#34 0x00007c8888b4f0a3 in QTextDocumentPrivate::endEditBlock (this=<optimized out>) at ./src/gui/text/qtextdocument_p.cpp:1174
#35 0x00007c8888b4f33d in QTextDocumentPrivate::insertBlock (this=this@entry=0x62985c6636e0, blockSeparator=..., blockSeparator@entry=..., pos=pos@entry=0, blockFormat=<optimized out>, charFormat=charFormat@entry=0, op=op@entry=QTextUndoCommand::MoveCursor) at ./src/gui/text/qtextdocument_p.cpp:416
#36 0x00007c8888b4f478 in QTextDocumentPrivate::insertBlock (this=this@entry=0x62985c6636e0, pos=pos@entry=0, blockFormat=<optimized out>, charFormat=charFormat@entry=0, op=op@entry=QTextUndoCommand::MoveCursor) at ./src/gui/text/qtextdocument_p.cpp:422
#37 0x00007c8888b4f529 in QTextDocumentPrivate::init (this=this@entry=0x62985c6636e0) at ./src/gui/text/qtextdocument_p.cpp:193
#38 0x00007c8888b4fd18 in QTextDocumentPrivate::clear (this=0x62985c6636e0) at ./src/gui/text/qtextdocument_p.cpp:242
#39 0x00007c8888b37b6a in QTextDocument::clear (this=<optimized out>) at ./src/gui/text/qtextdocument.cpp:371
#40 0x00007c8889410502 in QWidgetTextControlPrivate::setContent (this=this@entry=0x6298597513c0, format=format@entry=Qt::RichText, text=..., document=document@entry=0x0) at ./src/widgets/widgets/qwidgettextcontrol.cpp:486
#41 0x00007c8889410d14 in QWidgetTextControl::clear (this=<optimized out>) at ./src/widgets/widgets/qwidgettextcontrol.cpp:962
#42 0x00007c888985a695 in CodeEditor::clearAll (this=0x62985c73d630) at ./src/libkommitwidgets/widgets/codeeditor.cpp:580
#43 0x00007c88898547cb in CodeEditor::~CodeEditor (this=<optimized out>, this=<optimized out>) at ./src/libkommitwidgets/widgets/codeeditor.cpp:110
#44 0x00007c88898548fd in CodeEditor::~CodeEditor (this=<optimized out>, this=<optimized out>) at ./src/libkommitwidgets/widgets/codeeditor.cpp:111
#45 0x00007c88883f8b1a in QObjectPrivate::deleteChildren (this=this@entry=0x62985c670ed0) at ./src/corelib/kernel/qobject.cpp:2216
#46 0x00007c8889631cd8 in QWidget::~QWidget (this=<optimized out>, this=<optimized out>) at ./src/widgets/kernel/qwidget.cpp:1559
#47 0x00007c888953376d in QSplitter::~QSplitter (this=<optimized out>, this=<optimized out>) at ./src/widgets/widgets/qsplitter.cpp:951
#48 0x00007c88883f8b1a in QObjectPrivate::deleteChildren (this=this@entry=0x629858c4f5f0) at ./src/corelib/kernel/qobject.cpp:2216
#49 0x00007c8889631cd8 in QWidget::~QWidget (this=<optimized out>, this=<optimized out>) at ./src/widgets/kernel/qwidget.cpp:1559
#50 0x00007c888985dd6d in DiffWidget::~DiffWidget (this=<optimized out>, this=<optimized out>) at ./src/libkommitwidgets/widgets/diffwidget.cpp:35
#51 0x00007c88883f8b1a in QObjectPrivate::deleteChildren (this=this@entry=0x62985c632800) at ./src/corelib/kernel/qobject.cpp:2216
#52 0x00007c8889631cd8 in QWidget::~QWidget (this=<optimized out>, this=<optimized out>) at ./src/widgets/kernel/qwidget.cpp:1559
#53 0x00007c8889870e5c in AppMainWindow::~AppMainWindow (__vtt_parm=<optimized out>, this=<optimized out>, this=<optimized out>, __vtt_parm=<optimized out>) at ./src/libkommitwidgets/windows/appmainwindow.h:16
#54 DiffWindow::~DiffWindow (this=<optimized out>, this=<optimized out>) at ./src/libkommitwidgets/windows/diffwindow.h:28
#55 DiffWindow::~DiffWindow (this=<optimized out>, this=<optimized out>) at ./src/libkommitwidgets/windows/diffwindow.h:28
#56 0x00007c88883fa023 in QObject::event (this=0x62985c64bc10, e=0x62985d199e40) at ./src/corelib/kernel/qobject.cpp:1433
#57 0x00007c8888faeee3 in KXmlGuiWindow::event (this=0x62985c64bc10, ev=0x62985d199e40) at ./src/kxmlguiwindow.cpp:221
#58 0x00007c888960992b in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x62985c64bc10, e=0x62985d199e40) at ./src/widgets/kernel/qapplication.cpp:3287
#59 0x00007c88884a1c38 in QCoreApplication::notifyInternal2 (receiver=0x62985c64bc10, event=event@entry=0x62985d199e40) at ./src/corelib/kernel/qcoreapplication.cpp:1134
#60 0x00007c88884a1c7d in QCoreApplication::sendEvent (receiver=<optimized out>, event=event@entry=0x62985d199e40) at ./src/corelib/kernel/qcoreapplication.cpp:1575
#61 0x00007c88884a23e0 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x6298588d12e0) at ./src/corelib/kernel/qcoreapplication.cpp:1932
#62 0x00007c8888278277 in postEventSourceDispatch (s=0x6298589b83f0) at ./src/corelib/kernel/qeventdispatcher_glib.cpp:244
#63 0x00007c8887234d3b in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#64 0x00007c888728a2b8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#65 0x00007c88872323e3 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#66 0x00007c8888276570 in QEventDispatcherGlib::processEvents (this=0x6298588ec0d0, flags=...) at ./src/corelib/kernel/qeventdispatcher_glib.cpp:394
#67 0x00007c88884a3e3b in QEventLoop::exec (this=this@entry=0x7ffdc89e16c0, flags=..., flags@entry=...) at ./src/corelib/global/qflags.h:34
#68 0x00007c88884a5a6c in QCoreApplication::exec () at ./src/corelib/global/qflags.h:74
#69 0x00007c88888e4330 in QGuiApplication::exec () at ./src/gui/kernel/qguiapplication.cpp:1926
#70 0x00007c88896078d9 in QApplication::exec () at ./src/widgets/kernel/qapplication.cpp:2555
#71 0x0000629858221c31 in main (argc=<optimized out>, argv=<optimized out>) at ./src/apps/main.cpp:82
[Inferior 1 (process 538260) detached]

Reported using DrKonqi
Comment 1 bugs_kde_org 2024-09-13 23:07:26 UTC
I have similar problem.