Bug 453076 - Kate crashes on closed
Summary: Kate crashes on closed
Status: RESOLVED FIXED
Alias: None
Product: kate
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: openSUSE Linux
: NOR crash
Target Milestone: ---
Assignee: KWrite Developers
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2022-04-27 03:47 UTC by Fushan Wen
Modified: 2022-05-01 18:28 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Fushan Wen 2022-04-27 03:47:44 UTC
Application: kate (22.07.70)

Qt Version: 5.15.2
Frameworks Version: 5.94.0
Operating System: Linux 5.17.3-1-default x86_64
Windowing System: X11
Distribution: "openSUSE Tumbleweed"
DrKonqi: 5.24.80 [KCrashBackend]

-- Information about the crash:
Kate often crashes on closed, the backtrace shows KTextEditorPrivate was destructed twice.

The crash can be reproduced sometimes.

-- Backtrace:
Application: Kate (kate), signal: Segmentation fault
Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = <optimized out>}
[KCrash Handler]
#6  std::__atomic_base<QObjectPrivate::SignalVector*>::load (__m=std::memory_order_relaxed, this=0x561f2c303d84) at /usr/include/c++/11/bits/atomic_base.h:836
#7  std::atomic<QObjectPrivate::SignalVector*>::load (__m=std::memory_order_relaxed, this=0x561f2c303d84) at /usr/include/c++/11/atomic:570
#8  QAtomicOps<QObjectPrivate::SignalVector*>::loadRelaxed<QObjectPrivate::SignalVector*> (_q_value=...) at ../../include/QtCore/../../src/corelib/thread/qatomic_cxx11.h:239
#9  QBasicAtomicPointer<QObjectPrivate::SignalVector>::loadRelaxed (this=0x561f2c303d84) at ../../include/QtCore/../../src/corelib/thread/qbasicatomic.h:248
#10 QObjectPrivate::maybeSignalConnected (this=this@entry=0x561a4cdec6e0, signalIndex=signalIndex@entry=4) at kernel/qobject.cpp:482
#11 0x00007f87d98c7fef in doActivate<false> (sender=0x7ffe47516a90, signal_index=4, argv=0x7ffe475163f0) at kernel/qobject.cpp:3788
#12 0x0000561a4c69710e in ?? ()
#13 0x00007f87d98c8453 in QtPrivate::QSlotObjectBase::call (a=0x7ffe47516530, r=0x7ffe475169e0, this=0x561a4e1c0120) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#14 doActivate<false> (sender=0x561a4cfba890, signal_index=0, argv=0x7ffe47516530) at kernel/qobject.cpp:3886
#15 0x00007f87d98c17af in QMetaObject::activate (sender=sender@entry=0x561a4cfba890, m=m@entry=0x7f87d9b5e820, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffe47516530) at kernel/qobject.cpp:3946
#16 0x00007f87d98c185f in QObject::destroyed (this=this@entry=0x561a4cfba890, _t1=<optimized out>, _t1@entry=0x561a4cfba890) at .moc/moc_qobject.cpp:219
#17 0x00007f87d98c67dd in QObject::~QObject (this=<optimized out>, __in_chrg=<optimized out>) at kernel/qobject.cpp:992
#18 0x00007f87db823c22 in KTextEditor::DocumentPrivate::~DocumentPrivate (this=<optimized out>, this=<optimized out>) at /usr/src/debug/ktexteditor-5.94.0git.20220422T091707~b06e6b0f-ku.7.1.x86_64/src/document/katedocument.cpp:346
#19 0x00007f87db823f19 in KTextEditor::DocumentPrivate::~DocumentPrivate (this=<optimized out>, this=<optimized out>) at /usr/src/debug/ktexteditor-5.94.0git.20220422T091707~b06e6b0f-ku.7.1.x86_64/src/document/katedocument.cpp:346
#20 0x00007f87d98bb99e in QObjectPrivate::deleteChildren (this=0x561a4cd49670) at kernel/qobject.cpp:2104
#21 0x00007f87d98c6664 in QObject::~QObject (this=<optimized out>, __in_chrg=<optimized out>) at kernel/qobject.cpp:1082
#22 0x0000561a4c69daa7 in ?? ()
#23 0x0000561a4c6772fd in ?? ()
#24 0x00007f87d919b630 in __libc_start_call_main (main=main@entry=0x561a4c675470, argc=argc@entry=3, argv=argv@entry=0x7ffe47516db8) at ../sysdeps/nptl/libc_start_call_main.h:58
#25 0x00007f87d919b6f0 in __libc_start_main_impl (main=0x561a4c675470, argc=3, argv=0x7ffe47516db8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffe47516da8) at ../csu/libc-start.c:392
#26 0x0000561a4c679725 in ?? ()
[Inferior 1 (process 25360) detached]

Reported using DrKonqi
Comment 1 Christoph Cullmann 2022-05-01 18:28:18 UTC
Git commit 6fe4aecde5f62828e5bb3e1164052495574701dd by Christoph Cullmann.
Committed on 01/05/2022 at 18:28.
Pushed by cullmann into branch 'master'.

ensure app adaptor survives long enough

the document deletion signals will otherwise
access already destructed objects

M  +1    -1    apps/lib/kateapp.cpp
M  +5    -4    apps/lib/kateapp.h

https://invent.kde.org/utilities/kate/commit/6fe4aecde5f62828e5bb3e1164052495574701dd