Details
-
Bug
-
Resolution: Unresolved
-
P1: Critical
-
None
-
5.12.0, 5.13.0
-
None
Description
The following code triggers a crash as soon the particle moves between the groups (after clicking the button):
iimport QtQuick 2.0 import QtQuick.Window 2.12 import QtQuick.Particles 2.0 import QtQuick.Controls 2.0 Window { visible: true width: 640 height: 480 title: qsTr("Hello World") Rectangle { id: root anchors.fill: parent ParticleSystem { id: particleSystem ParticleGroup { name: "pre-bounce" duration: 5000 to: {"post-bounce": 1} } ParticleGroup { name: "post-bounce" duration: 5000 } Emitter { id: emitter emitRate: 0 lifeSpan: 10000 group: 'pre-bounce' acceleration: AngleDirection { angle: 90 magnitude: 1 } velocity: AngleDirection { angle: -90 angleVariation: 15 magnitude: 1 magnitudeVariation: 0 } } ItemParticle { id: itemParticle groups: ['pre-bounce', 'post-bounce'] delegate: Text {text: "dummy"} } // Component { // id: component // Text { // text: "asdfsdfafsd" // ItemParticle.onDetached: destroy(); // } // } } Button { property int i: 0 onClicked: { // let particle = component.createObject(itemParticle); // particle.text = "overriden" + ++i // itemParticle.take(particle) emitter.burst(1, 200, 200) } text: "spawn" } } }
Backtrace:
Thread 7 (Thread 0x7fffd8e01700 (LWP 23575)): #0 0x00007ffff59573c5 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0 #1 0x00007ffff5f92d83 in QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0xc40800) at thread/qwaitcondition_unix.cpp:146 code = <optimized out> #2 0x00007ffff5f92d83 in QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=<optimized out>, mutex=0x6b8ba0, deadline=...) at thread/qwaitcondition_unix.cpp:225 #3 0x00007ffff5f930a9 in QWaitCondition::wait(QMutex*, unsigned long) (this=this@entry=0x6b8ba8, mutex=mutex@entry=0x6b8ba0, time=time@entry=18446744073709551615) at thread/qwaitcondition_unix.cpp:208 #4 0x00007ffff7ae9c8d in QSGRenderThreadEventQueue::takeEvent(bool) (wait=true, this=0x6b8b98) at scenegraph/qsgthreadedrenderloop.cpp:245 e = 0x0 #5 0x00007ffff7ae9c8d in QSGRenderThread::processEventsAndWaitForMore() (this=this@entry=0x6b8b20) at scenegraph/qsgthreadedrenderloop.cpp:710 e = 0x0 #6 0x00007ffff7aea0c1 in QSGRenderThread::run() (this=0x6b8b20) at scenegraph/qsgthreadedrenderloop.cpp:739 #7 0x00007ffff5f8ba73 in QThreadPrivate::start(void*) (arg=0x6b8b20) at thread/qthread_unix.cpp:360 thr = 0x6b8b20 data = 0x6b3a10 __clframe = {__cancel_routine = 0x7ffff5f8ad10 <QThreadPrivate::finish(void*)>, __cancel_arg = 0x6b8b20, __do_it = 1, __cancel_type = <optimized out>} #8 0x00007ffff59514c0 in start_thread () at /lib64/libpthread.so.0 #9 0x00007ffff5a66553 in clone () at /lib64/libc.so.6 Thread 6 (Thread 0x7fffdbfff700 (LWP 23574)): #0 0x00007ffff5a5bae7 in poll () at /lib64/libc.so.6 #1 0x00007ffff357a1ce in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0 #2 0x00007ffff357a303 in g_main_context_iteration () at /lib64/libglib-2.0.so.0 #3 0x00007ffff61bb18f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fffd0000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:423 d = 0x7fffd0000b40 canWait = true savedFlags = {i = 0} result = <optimized out> #4 0x00007ffff6161902 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffdbffee00, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225 d = 0x7fffd0002e00 locker = {val = 4393936} ref = {d = 0x7fffd0002e00, locker = @0x7fffdbffed90, exceptionCaught = true} #5 0x00007ffff5f8a53c in QThread::exec() (this=this@entry=0x6260e0) at thread/qthread.cpp:531 d = 0x430b60 locker = {val = 4393936} eventLoop = {<QObject> = {_vptr.QObject = 0x7ffff6687108 <vtable for QEventLoop+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff6357be0 <qt_meta_stringdata_QObject>, data = 0x7ffff6357ac0 <qt_meta_data_QObject>, static_metacall = 0x7ffff6197ee0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x7fffd0002e00}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff635ab00 <qt_meta_stringdata_Qt>, data = 0x7ffff6357d00 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x7ffff667f400 <QObject::staticMetaObject>, stringdata = 0x7ffff6352580 <qt_meta_stringdata_QEventLoop>, data = 0x7ffff6352520 <qt_meta_data_QEventLoop>, static_metacall = 0x7ffff6161620 <QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}} returnCode = <optimized out> #6 0x00007ffff758cd85 in QQmlThreadPrivate::run() (this=0x6260e0) at qml/ftw/qqmlthread.cpp:152 #7 0x00007ffff5f8ba73 in QThreadPrivate::start(void*) (arg=0x6260e0) at thread/qthread_unix.cpp:360 thr = 0x6260e0 data = 0x5a7b80 __clframe = {__cancel_routine = 0x7ffff5f8ad10 <QThreadPrivate::finish(void*)>, __cancel_arg = 0x6260e0, __do_it = 1, __cancel_type = <optimized out>} #8 0x00007ffff59514c0 in start_thread () at /lib64/libpthread.so.0 #9 0x00007ffff5a66553 in clone () at /lib64/libc.so.6 Thread 5 (Thread 0x7fffe8a6e700 (LWP 23572)): #0 0x00007ffff5a5bae7 in poll () at /lib64/libc.so.6 #1 0x00007ffff357a1ce in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0 #2 0x00007ffff357a303 in g_main_context_iteration () at /lib64/libglib-2.0.so.0 #3 0x00007ffff61bb18f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fffd4000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:423 d = 0x7fffd4000b40 canWait = true savedFlags = {i = 0} result = <optimized out> #4 0x00007ffff6161902 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffe8a6ddf0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225 d = 0x7fffd4001d70 locker = {val = 6109952} ref = {d = 0x7fffd4001d70, locker = @0x7fffe8a6dd80, exceptionCaught = true} #5 0x00007ffff5f8a53c in QThread::exec() (this=this@entry=0x7fffec0b1d80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread.cpp:531 d = 0x5d3a90 locker = {val = 6109952} eventLoop = {<QObject> = {_vptr.QObject = 0x7ffff6687108 <vtable for QEventLoop+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff6357be0 <qt_meta_stringdata_QObject>, data = 0x7ffff6357ac0 <qt_meta_data_QObject>, static_metacall = 0x7ffff6197ee0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x7fffd4001d70}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff635ab00 <qt_meta_stringdata_Qt>, data = 0x7ffff6357d00 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x7ffff667f400 <QObject::staticMetaObject>, stringdata = 0x7ffff6352580 <qt_meta_stringdata_QEventLoop>, data = 0x7ffff6352520 <qt_meta_data_QEventLoop>, static_metacall = 0x7ffff6161620 <QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}} returnCode = <optimized out> #6 0x00007fffebe3cc15 in QDBusConnectionManager::run() (this=0x7fffec0b1d80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:178 locker = <optimized out> #7 0x00007ffff5f8ba73 in QThreadPrivate::start(void*) (arg=0x7fffec0b1d80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:360 thr = 0x7fffec0b1d80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder> data = 0x6790b0 __clframe = {__cancel_routine = 0x7ffff5f8ad10 <QThreadPrivate::finish(void*)>, __cancel_arg = 0x7fffec0b1d80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>, __do_it = 1, __cancel_type = <optimized out>} #8 0x00007ffff59514c0 in start_thread () at /lib64/libpthread.so.0 #9 0x00007ffff5a66553 in clone () at /lib64/libc.so.6 Thread 4 (Thread 0x7fffe95f8700 (LWP 23571)): #0 0x00007ffff5a5bae7 in poll () at /lib64/libc.so.6 #1 0x00007ffff357a1ce in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0 #2 0x00007ffff357a593 in g_main_loop_run () at /lib64/libglib-2.0.so.0 #3 0x00007fffea73bd9a in gdbus_shared_thread_func () at /lib64/libgio-2.0.so.0 #4 0x00007ffff35a34c2 in g_thread_proxy () at /lib64/libglib-2.0.so.0 #5 0x00007ffff59514c0 in start_thread () at /lib64/libpthread.so.0 #6 0x00007ffff5a66553 in clone () at /lib64/libc.so.6 Thread 3 (Thread 0x7fffe9df9700 (LWP 23570)): #0 0x00007ffff5a5bae7 in poll () at /lib64/libc.so.6 #1 0x00007ffff357a1ce in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0 #2 0x00007ffff357a303 in g_main_context_iteration () at /lib64/libglib-2.0.so.0 #3 0x00007ffff357a351 in glib_worker_main () at /lib64/libglib-2.0.so.0 #4 0x00007ffff35a34c2 in g_thread_proxy () at /lib64/libglib-2.0.so.0 #5 0x00007ffff59514c0 in start_thread () at /lib64/libpthread.so.0 #6 0x00007ffff5a66553 in clone () at /lib64/libc.so.6 Thread 2 (Thread 0x7fffebaa3700 (LWP 23569)): #0 0x00007ffff5a5bae7 in poll () at /lib64/libc.so.6 #1 0x00007ffff324b38a in () at /lib64/libxcb.so.1 #2 0x00007ffff324cffa in xcb_wait_for_event () at /lib64/libxcb.so.1 #3 0x00007fffec230168 in QXcbEventQueue::run() (this=0x4259b0) at qxcbeventqueue.cpp:228 event = <optimized out> tail = 0x7fffec567058 <QXcbEventQueue::qXcbEventNodeFactory(xcb_generic_event_t*)::qXcbNodePool+1656> enqueueEvent = {__tail = <synthetic pointer><error reading variable>, __this = 0x4259b0} #4 0x00007ffff5f8ba73 in QThreadPrivate::start(void*) (arg=0x4259b0) at thread/qthread_unix.cpp:360 thr = 0x4259b0 data = 0x425180 __clframe = {__cancel_routine = 0x7ffff5f8ad10 <QThreadPrivate::finish(void*)>, __cancel_arg = 0x4259b0, __do_it = 1, __cancel_type = <optimized out>} #5 0x00007ffff59514c0 in start_thread () at /lib64/libpthread.so.0 #6 0x00007ffff5a66553 in clone () at /lib64/libc.so.6 Thread 1 (Thread 0x7ffff3234e80 (LWP 23560)): #0 0x00007ffff7b21114 in QQuickItem::setOpacity(double) (this=this@entry=0x9306b0, newOpacity=newOpacity@entry=0) at items/qquickitem.cpp:5843 #1 0x00007fffda7599cc in QQuickItemParticle::processDeletables() (this=this@entry=0x5be000) at qquickitemparticle.cpp:171 idx = <optimized out> item = 0x9306b0 _container_ = {c = {<QListSpecialMethods<QQuickItem*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, <No data fields>}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x930960}, d = 0x930960}}, i = {i = 0x930970}, e = {i = 0x930978}, control = 1} #2 0x00007fffda7599f6 in QQuickItemParticle::tick(int) (this=0x5be000, time=<optimized out>) at qquickitemparticle.cpp:189 #3 0x00007ffff75a9ac8 in QAbstractAnimationJob::setCurrentTime(int) (this=0x6b8880, msecs=<optimized out>) at animations/qabstractanimationjob.cpp:488 prevWasDeleted = 0x0 wasDeleted = false dura = <optimized out> totalDura = -1 oldLoop = 0 #4 0x00007ffff75a9c5c in QQmlAnimationTimer::updateAnimationsTime(long long) (this=0x6e0720, delta=17) at animations/qabstractanimationjob.cpp:111 animation = <optimized out> elapsed = <optimized out> delta = 17 this = 0x6e0720 #5 0x00007ffff5f6fcf2 in QUnifiedTimer::updateAnimationTimers(long long) (this=0xb33ce0, currentTick=<optimized out>) at animation/qabstractanimation.cpp:323 animation = 0x6e0720 totalElapsed = <optimized out> delta = 17 currentTick = <optimized out> this = 0xb33ce0 #6 0x00007ffff5f7083c in QAnimationDriver::advanceAnimation(long long) (this=<optimized out>, timeStep=-1) at animation/qabstractanimation.cpp:823 instance = 0xb33ce0 #7 0x00007ffff7ac13b2 in QSGAnimationDriver::advance() (this=0x6ed5a0) at scenegraph/qsgcontext.cpp:218 delta = <optimized out> #8 0x00007ffff7ae7db6 in QSGThreadedRenderLoop::polishAndSync(QSGThreadedRenderLoop::Window*, bool) (this=this@entry=0x5f8100, w=<optimized out>, inExpose=inExpose@entry=false) at scenegraph/qsgthreadedrenderloop.cpp:1223 window = 0x620d00 timer = {t1 = -9223372036854775808, t2 = -9223372036854775808} polishTime = 0 waitTime = 0 syncTime = 0 #9 0x00007ffff7ae7f9a in QSGThreadedRenderLoop::handleUpdateRequest(QQuickWindow*) (this=0x5f8100, window=0x620d00) at scenegraph/qsgthreadedrenderloop.cpp:1036 #10 0x00007ffff7b43181 in QQuickWindow::event(QEvent*) (this=0x620d00, e=0x7fffffffdf90) at items/qquickwindow.cpp:1664 #11 0x00007ffff6162ea8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x620d00, event=0x7fffffffdf90) at kernel/qcoreapplication.cpp:1065 selfRequired = true result = false cbdata = {0x620d00, 0x7fffffffdf90, 0x7fffffffdf3f} d = <optimized out> threadData = 0x4206f0 scopeLevelCounter = {threadData = 0x4206f0} #12 0x00007ffff616305e in QCoreApplication::sendEvent(QObject*, QEvent*) (receiver=receiver@entry=0x620d00, event=event@entry=0x7fffffffdf90) at kernel/qcoreapplication.cpp:1460 #13 0x00007ffff67dbc26 in QPlatformWindow::deliverUpdateRequest() (this=<optimized out>) at kernel/qplatformwindow.cpp:787 w = 0x620d00 wp = <optimized out> request = {_vptr.QEvent = 0x7ffff6687350 <vtable for QEvent+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff6353460 <qt_meta_stringdata_QEvent>, data = 0x7ffff6352ea0 <qt_meta_data_QEvent>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}, d = 0x0, t = 77, posted = 0, spont = 0, m_accept = 1, reserved = 10} #14 0x00007ffff67dbc26 in QPlatformWindow::windowEvent(QEvent*) (this=0xb4db90, event=<optimized out>) at kernel/qplatformwindow.cpp:478 #15 0x00007ffff67e58b6 in QGuiApplication::notify(QObject*, QEvent*) (this=0x7fffffffe350, object=0x620d00, event=0x7fffffffe090) at kernel/qguiapplication.cpp:1796 #16 0x00007ffff6162ea8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x620d00, event=0x7fffffffe090) at kernel/qcoreapplication.cpp:1065 selfRequired = true result = false cbdata = {0x620d00, 0x7fffffffe090, 0x7fffffffe00f} d = <optimized out> threadData = 0x4206f0 scopeLevelCounter = {threadData = 0x4206f0} #17 0x00007ffff616305e in QCoreApplication::sendEvent(QObject*, QEvent*) (receiver=<optimized out>, event=event@entry=0x7fffffffe090) at kernel/qcoreapplication.cpp:1460 #18 0x00007ffff61ba649 in QTimerInfoList::activateTimers() (this=0x614d30) at kernel/qtimerinfo_unix.cpp:643 e = {<QEvent> = {_vptr.QEvent = 0x7ffff6687370 <vtable for QTimerEvent+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff6353460 <qt_meta_stringdata_QEvent>, data = 0x7ffff6352ea0 <qt_meta_data_QEvent>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}, d = 0x0, t = 1, posted = 0, spont = 0, m_accept = 1, reserved = 10}, id = 1} currentTimerInfo = 0x0 n_act = 1 maxCount = <optimized out> currentTime = {tv_sec = 10572, tv_nsec = 55941255} #19 0x00007ffff61bae59 in timerSourceDispatch (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:183 timerSource = <optimized out> timerSource = <optimized out> #20 0x00007ffff61bae59 in idleTimerSourceDispatch(GSource*, GSourceFunc, gpointer) (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:230 timerSource = <optimized out> #21 0x00007ffff3579ecd in g_main_context_dispatch () at /lib64/libglib-2.0.so.0 #22 0x00007ffff357a260 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0 #23 0x00007ffff357a303 in g_main_context_iteration () at /lib64/libglib-2.0.so.0 #24 0x00007ffff61bb18f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x611530, flags=...) at kernel/qeventdispatcher_glib.cpp:423 d = 0x5dda70 canWait = true savedFlags = {i = 0} result = <optimized out> #25 0x00007ffff6161902 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffffffe2c0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225 d = 0xcb0260 locker = {val = 4327424} ref = {d = 0xcb0260, locker = @0x7fffffffe250, exceptionCaught = true} #26 0x00007ffff616a260 in QCoreApplication::exec() () at kernel/qcoreapplication.cpp:1373 threadData = 0x4206f0 eventLoop = {<QObject> = {_vptr.QObject = 0x7ffff6687108 <vtable for QEventLoop+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff6357be0 <qt_meta_stringdata_QObject>, data = 0x7ffff6357ac0 <qt_meta_data_QObject>, static_metacall = 0x7ffff6197ee0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0xcb0260}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff635ab00 <qt_meta_stringdata_Qt>, data = 0x7ffff6357d00 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x7ffff667f400 <QObject::staticMetaObject>, stringdata = 0x7ffff6352580 <qt_meta_stringdata_QEventLoop>, data = 0x7ffff6352520 <qt_meta_data_QEventLoop>, static_metacall = 0x7ffff6161620 <QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}} returnCode = <optimized out> #27 0x0000000000402463 in main(int, char**) (argc=1, argv=0x7fffffffe488) at /home/ablu/qt-tests/particles/simple-test/main.cpp:19 app = {<QCoreApplication> = {<QObject> = {_vptr.QObject = 0x7ffff6ec49d0 <vtable for QGuiApplication+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff6357be0 <qt_meta_stringdata_QObject>, data = 0x7ffff6357ac0 <qt_meta_data_QObject>, static_metacall = 0x7ffff6197ee0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x4205c0}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff635ab00 <qt_meta_stringdata_Qt>, data = 0x7ffff6357d00 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x7ffff667f400 <QObject::staticMetaObject>, stringdata = 0x7ffff6352bc0 <qt_meta_stringdata_QCoreApplication>, data = 0x7ffff6352aa0 <qt_meta_data_QCoreApplication>, static_metacall = 0x7ffff6164980 <QCoreApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, static self = 0x7fffffffe350}, static staticMetaObject = {d = {superdata = 0x7ffff66872a0 <QCoreApplication::staticMetaObject>, stringdata = 0x7ffff6bc17e0 <qt_meta_stringdata_QGuiApplication>, data = 0x7ffff6bc1560 <qt_meta_data_QGuiApplication>, static_metacall = 0x7ffff67e4740 <QGuiApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}} engine = {<QQmlEngine> = {<QJSEngine> = {<QObject> = {_vptr.QObject = 0x7ffff791dec8 <vtable for QQmlApplicationEngine+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff6357be0 <qt_meta_stringdata_QObject>, data = 0x7ffff6357ac0 <qt_meta_data_QObject>, static_metacall = 0x7ffff6197ee0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x5ec400}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff635ab00 <qt_meta_stringdata_Qt>, data = 0x7ffff6357d00 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x7ffff667f400 <QObject::staticMetaObject>, stringdata = 0x7ffff762fb60 <qt_meta_stringdata_QJSEngine>, data = 0x7ffff762fb20 <qt_meta_data_QJSEngine>, static_metacall = 0x7ffff73c8ac0 <QJSEngine::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, m_v4Engine = 0x63d800}, static staticMetaObject = {d = {superdata = 0x7ffff7914940 <QJSEngine::staticMetaObject>, stringdata = 0x7ffff7641000 <qt_meta_stringdata_QQmlEngine>, data = 0x7ffff7640f40 <qt_meta_data_QQmlEngine>, static_metacall = 0x7ffff74e8d20 <QQmlEngine::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x7ffff791c0c0 <QQmlEngine::staticMetaObject>, stringdata = 0x7ffff7646880 <qt_meta_stringdata_QQmlApplicationEngine>, data = 0x7ffff7646780 <qt_meta_data_QQmlApplicationEngine>, static_metacall = 0x7ffff7569080 <QQmlApplicationEngine::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}} url = {d = 0x6dd030}
Analysis:
This seems to happen because lifetime of the QQuickParticleData is set to 0. This triggers a pre-mature deletion of the item in QQuickItemParticle::processDeletables().