https://bugs.kde.org/show_bug.cgi?id=489029

            Bug ID: 489029
           Summary: kommit crashes when closing a branch diff with changes
    Classification: Applications
           Product: kommit
           Version: unspecified
          Platform: Neon
                OS: Linux
            Status: REPORTED
          Keywords: drkonqi
          Severity: crash
          Priority: NOR
         Component: general
          Assignee: hamed.mas...@gmail.com
          Reporter: o...@geek.co.il
                CC: mon...@kde.org
  Target Milestone: ---

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

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to