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

            Bug ID: 493921
           Summary: Assert in ~SvgItem
    Classification: Frameworks and Libraries
           Product: frameworks-ksvg
           Version: 6.6.0
          Platform: Other
                OS: Linux
            Status: REPORTED
          Severity: crash
          Priority: NOR
         Component: General
          Assignee: plasma-b...@kde.org
          Reporter: notm...@gmail.com
  Target Milestone: ---

Plasma often crashes after selecting desktop icons on an assert on the ~SvgItem
destructor, due to connections still getting triggered during the destructor.

Backtrace:

#0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=140737230536896)
at ./nptl/pthread_kill.c:44
#1  __pthread_kill_internal (signo=6, threadid=140737230536896) at
./nptl/pthread_kill.c:78
#2  __GI___pthread_kill (threadid=140737230536896, signo=signo@entry=6) at
./nptl/pthread_kill.c:89
#3  0x00007ffff3842476 in __GI_raise (sig=sig@entry=6) at
../sysdeps/posix/raise.c:26
#4  0x00007ffff38287f3 in __GI_abort () at ./stdlib/abort.c:79
#5  0x00007ffff44fdbca in qAbort() () at ./src/corelib/global/qglobal.cpp:161
#6  0x00007ffff44f875a in qt_message_fatal<QString&> (message=...,
context=<optimized out>)
    at ./src/corelib/global/qlogging.cpp:2025
#7  qt_message(QtMsgType, const QMessageLogContext &, const char *, typedef
__va_list_tag __va_list_tag *)
    (msgType=msgType@entry=QtFatalMsg, context=<optimized out>, msg=<optimized
out>, ap=ap@entry=0x7fffffffc890)
    at ./src/corelib/global/qlogging.cpp:374
#8  0x00007ffff44fe56d in QMessageLogger::fatal(char const*, ...) const
    (this=<optimized out>, msg=<optimized out>) at
./src/corelib/global/qlogging.cpp:889
#9  0x00007ffff44c2ce2 in qt_assert_x(char const*, char const*, char const*,
int)
    (where=<optimized out>, what=<optimized out>, file=<optimized out>,
line=<optimized out>)
    at ./src/corelib/global/qassert.cpp:77
#10 0x00007fff9e44f782 in QtPrivate::assertObjectType<KSvg::SvgItem>(QObject*)
(o=0x555559a487a0)
    at /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:129
#11 0x00007fff9e44f669 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>,
QtPrivate::List<>, void, void (KSvg::SvgItem::*)()>::call(void
(KSvg::SvgItem::*)(), KSvg::SvgItem*, void**)

     (f=(void (KSvg::SvgItem::*)(class KSvg::SvgItem * const)) 0x7fff9e44c2a4
<KSvg::SvgItem::updateNeeded()>, o=0x555559a487a0, arg=0x7fffffffcb28) at
/usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:144
#12 0x00007fff9e44f620 in QtPrivate::FunctionPointer<void
(KSvg::SvgItem::*)()>::call<QtPrivate::List<>, void>(void (KSvg::SvgItem::*)(),
KSvg::SvgItem*, void**)
    (f=(void (KSvg::SvgItem::*)(class KSvg::SvgItem * const)) 0x7fff9e44c2a4
<KSvg::SvgItem::updateNeeded()>, o=0x555559a487a0, arg=0x7fffffffcb28) at
/usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:182
#13 0x00007fff9e44f51b in QtPrivate::QCallableObject<void (KSvg::SvgItem::*)(),
QtPrivate::List<>, void>::impl(int,--Type <RET> for more, q to quit, c to
continue without paging--
 QtPrivate::QSlotObjectBase*, QObject*, void**, bool*)
    (which=1, this_=0x555556d61150, r=0x555559a487a0, a=0x7fffffffcb28,
ret=0x0)
    at /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:553
#14 0x00007ffff446381b in QtPrivate::QSlotObjectBase::call(QObject*, void**)
    (a=0x7fffffffcb28, r=0x555559a487a0, this=<optimized out>, this=<optimized
out>, r=<optimized out>, a=<optimized out>) at
./src/corelib/kernel/qobjectdefs_impl.h:469
#15 doActivate<false>(QObject*, int, void**) (sender=0x7fffe40175e0,
signal_index=3, argv=0x7fffffffcb28)
    at ./src/corelib/kernel/qobject.cpp:4086
#16 0x00007ffff6a61751 in KSvg::Svg::repaintNeeded() (this=0x7fffe40175e0)
    at
/home/diau/kf6/build/ksvg/src/ksvg/KF6Svg_autogen/include/moc_svg.cpp:620
#17 0x00007ffff6a6070e in KSvg::Svg::clearColorOverrides()
(this=0x7fffe40175e0)
    at /home/diau/kf6/src/ksvg/src/ksvg/svg.cpp:1153
#18 0x00007fff9e44b0f4 in operator()() const (__closure=0x555558b4d560)
    at /home/diau/kf6/src/ksvg/src/declarativeimports/svgitem.cpp:60
#19 0x00007fff9e44d575 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>,
QtPrivate::List<>, void, KSvg::SvgItem::componentComplete()::<lambda()>
>::call(struct {...} &, void **) (f=..., arg=0x7fffffffcda8)
    at /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:137
#20 0x00007fff9e44d50f in
QtPrivate::FunctorCallable<KSvg::SvgItem::componentComplete()::<lambda()>
>::call<QtPrivate::List<>, void>(struct {...} &, void *, void **) (f=...,
arg=0x7fffffffcda8)
    at /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:345
#21 0x00007fff9e44d432 in
QtPrivate::QCallableObject<KSvg::SvgItem::componentComplete()::<lambda()>,
QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *,
void **, bool *)
    (which=1, this_=0x555558b4d550, r=0x555559a487a0, a=0x7fffffffcda8,
ret=0x0)
    at /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:555
#22 0x00007ffff446381b in QtPrivate::QSlotObjectBase::call(QObject*, void**)
    (a=0x7fffffffcda8, r=0x555559a487a0, this=<optimized out>, this=<optimized
out>, r=<optimized out>, a=<optimized out>) at
./src/corelib/kernel/qobjectdefs_impl.h:469
--Type <RET> for more, q to quit, c to continue without paging--
#23 doActivate<false>(QObject*, int, void**) (sender=0x5555589c45b0,
signal_index=3, argv=0x7fffffffcda8) at ./src/corelib/kernel/qobject.cpp:4086
#24 0x00007fffec02d793 in Kirigami::Platform::PlatformTheme::colorsChanged()
(this=0x5555589c45b0)
    at
/home/diau/kf6/build/kirigami/src/platform/KirigamiPlatform_autogen/include/moc_platformtheme.cpp:531
#25 0x00007fffec02b74f in
Kirigami::Platform::PlatformTheme::emitSignalsForChanges(int)
(this=0x5555589c45b0, changes=63) at
/home/diau/kf6/src/kirigami/src/platform/platformtheme.cpp:888
#26 0x00007fffec02c3c5 in
Kirigami::Platform::PlatformThemeChangeTracker::~PlatformThemeChangeTracker()
(this=0x7fffffffcee0, __in_chrg=<optimized out>)
    at /home/diau/kf6/src/kirigami/src/platform/platformtheme.cpp:1066
#27 0x00007fffec02baf9 in Kirigami::Platform::PlatformTheme::event(QEvent*)
(this=0x5555589c45b0, event=0x7fffffffd020) at
/home/diau/kf6/src/kirigami/src/platform/platformtheme.cpp:950
#28 0x00007fff9e23a301 in PlasmaTheme::event(QEvent*) (this=0x5555589c45b0,
event=0x7fffffffd020)
    at
/home/diau/kf6/src/libplasma/src/declarativeimports/kirigamiplasmastyle/plasmatheme.cpp:148
#29 0x00007ffff680a1ab in QApplicationPrivate::notify_helper(QObject*, QEvent*)
(this=<optimized out>, receiver=0x5555589c45b0, e=0x7fffffffd020)
    at ./src/widgets/kernel/qapplication.cpp:3287
#30 0x00007ffff44a1dd8 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
(receiver=0x5555589c45b0, event=0x7fffffffd020) at
./src/corelib/kernel/qcoreapplication.cpp:1142
#31 0x00007fffec02bff9 in Kirigami::Platform::PlatformTheme::update()
(this=0x5555589c45b0) at
/home/diau/kf6/src/kirigami/src/platform/platformtheme.cpp:1007
#32 0x00007fffec03b5b4 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>,
QtPrivate::List<>, void, void
(Kirigami::Platform::PlatformTheme::*)()>::call(void
(Kirigami::Platform::PlatformTheme::*)(), Kirigami::Platform::PlatformTheme*,
void**)
    (f=(void (Kirigami::Platform::PlatformTheme::*)(class
Kirigami::Platform::PlatformTheme * const)) 0x7fffec02bb16
<Kirigami::Platform::PlatformTheme::update()>, o=0x5555589c45b0,
arg=0x7fffffffd250) at
/usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:145
#33 0x00007fffec03a0ee in QtPrivate::FunctionPointer<void
(Kirigami::Platform::PlatformTheme::*)()>::call<QtPrivate::List<>, void>(void
(Kirigami::Platform::PlatformTheme::*)(), Kirigami::Platform::PlatformTheme*,
void**)
    (f=(void (Kirigami::Platform::PlatformTheme::*)(class
Kirigami::Platform::PlatformTheme * const)) 0x7fffec02bb16
<Kirigami::Platform::PlatformTheme::update()>, o=0x5555589c45b0,
arg=0x7fffffffd250) at
/usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:182
#34 0x00007fffec03838b in QtPrivate::QCallableObject<void
(Kirigami::Platform::PlatformTheme::*)(), QtPrivate::List<>, void>::impl(int,
QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1,
this_=0x5555596b29f0, r=0x5555589c45b0, a=0x7fffffffd250, ret=0x0) at
/usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:553
#35 0x00007ffff446381b in QtPrivate::QSlotObjectBase::call(QObject*, void**)
    (a=0x7fffffffd250, r=0x5555589c45b0, this=<optimized out>, this=<optimized
out>, r=<optimized out>, a=<optimized out>) at
./src/corelib/kernel/qobjectdefs_impl.h:469
#36 doActivate<false>(QObject*, int, void**) (sender=0x555559a487a0,
signal_index=15, argv=0x7fffffffd250) at ./src/corelib/kernel/qobject.cpp:4086
#37 0x00007ffff5bfa906 in QQuickItem::windowChanged(QQuickWindow*)
(this=<optimized out>, _t1=<optimized out>)
    at
./obj-x86_64-linux-gnu/src/quick/Quick_autogen/include/moc_qquickitem.cpp:1407
#38 0x00007ffff5bece8d in QQuickItemPrivate::derefWindow()
(this=this@entry=0x55555c0be4a0) at ./src/quick/items/qquickitem.cpp:3118
#39 0x00007ffff5bee3b6 in QQuickItem::setParentItem(QQuickItem*)
(this=0x555559a487a0, parentItem=<optimized out>) at
./src/quick/items/qquickitem.cpp:2762
#40 0x00007ffff5bee861 in QQuickItem::~QQuickItem() (this=0x555559a487a0,
this=<optimized out>) at ./src/quick/items/qquickitem.cpp:2380
#41 0x00007fff9e44ae95 in KSvg::SvgItem::~SvgItem() (this=0x555559a487a0,
__in_chrg=<optimized out>) at
/home/diau/kf6/src/ksvg/src/declarativeimports/svgitem.cpp:40
#42 0x00007fff9e44a72d in
QQmlPrivate::QQmlElement<KSvg::SvgItem>::~QQmlElement() (this=0x555559a487a0,
__in_chrg=<optimized out>)
    at /usr/include/x86_64-linux-gnu/qt6/QtQml/qqmlprivate.h:100
#43 0x00007fff9e44a756 in
QQmlPrivate::QQmlElement<KSvg::SvgItem>::~QQmlElement() (this=0x555559a487a0,
__in_chrg=<optimized out>)
    at /usr/include/x86_64-linux-gnu/qt6/QtQml/qqmlprivate.h:100
#44 0x00007ffff43fa283 in QObject::event(QEvent*) (this=0x555559a487a0,
e=0x55555808ae40) at ./src/corelib/kernel/qobject.cpp:1437
#45 0x00007ffff680a1ab in QApplicationPrivate::notify_helper(QObject*, QEvent*)
(this=<optimized out>, receiver=0x555559a487a0, e=0x55555808ae40)
    at ./src/widgets/kernel/qapplication.cpp:3287
#46 0x00007ffff44a1dd8 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
(receiver=0x555559a487a0, event=event@entry=0x55555808ae40)
    at ./src/corelib/kernel/qcoreapplication.cpp:1142
#47 0x00007ffff44a1e1d in QCoreApplication::sendEvent(QObject*, QEvent*)
(receiver=<optimized out>, event=event@entry=0x55555808ae40) at
./src/corelib/kernel/qcoreapplication.cpp:1583
#48 0x00007ffff44a2590 in QCoreApplicationPrivate::sendPostedEvents(QObject*,
int, QThreadData*) (receiver=0x0, event_type=0, data=0x5555557764b0)
    at ./src/corelib/kernel/qcoreapplication.cpp:1940
#49 0x00007ffff42641a7 in postEventSourceDispatch(GSource*, GSourceFunc,
gpointer) (s=0x55555586ea60) at
./src/corelib/kernel/qeventdispatcher_glib.cpp:244
#50 0x00007ffff2d13d3b in g_main_context_dispatch () at
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#51 0x00007ffff2d692b8 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#52 0x00007ffff2d113e3 in g_main_context_iteration () at
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#53 0x00007ffff4262700 in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(this=0x55555577a740, flags=...) at
./src/corelib/kernel/qeventdispatcher_glib.cpp:394
#54 0x00007ffff44a3feb in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)
(this=this@entry=0x7fffffffd7e0, flags=..., flags@entry=...) at
./src/corelib/global/qflags.h:34
#55 0x00007ffff44a5c2c in QCoreApplication::exec() () at
./src/corelib/global/qflags.h:74
#56 0x00005555555ac785 in main(int, char**) (argc=1, argv=0x7fffffffdc18) at
/home/diau/kf6/src/plasma-workspace/shell/main.cpp:188

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

Reply via email to