Bug 342742

Summary: Marble crashes if I try to delete a nonexistent placemark when create a KML tour and try to start it.
Product: [Applications] marble Reporter: Sergey Popov <sergobot256>
Component: generalAssignee: marble-bugs
Status: RESOLVED WORKSFORME    
Severity: crash CC: kdenis, nienhueser
Priority: NOR    
Version: 1.9 (KDE 4.14)   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Sergey Popov 2015-01-11 19:44:10 UTC
I added "Remove placemark" but didn't add any placemark. After it I added "Wait" and started the tour. Marble crashed.

Reproducible: Always

Steps to Reproduce:
1. Go to "Tour" panel. (Settings->Panels->Tour)
2. Create a new tour.
3. Add "Remove placemark" item.
4. Add a delay. (tour won't start without it)

Actual Results:  
Marble crashed


Backtrace:
#0  0x00007ffff57acd27 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x00007ffff57ae418 in __GI_abort () at abort.c:89
#2  0x00007ffff7967c22 in qt_message_output (msgType=msgType@entry=QtFatalMsg, 
    buf=0x12ddf68 "ASSERT: \"!\"Didn't find target row.\"\" in file /home/sergobot/marble/sources/src/lib/marble/kdescendantsproxymodel.cpp, line 412") at global/qglobal.cpp:2386
#3  0x00007ffff7967f89 in qt_message(QtMsgType, const char *, typedef __va_list_tag __va_list_tag *) (msgType=msgType@entry=QtFatalMsg, 
    msg=msg@entry=0x7ffff7ad38c0 "ASSERT: \"%s\" in file %s, line %d", ap=ap@entry=0x7fffffffb6a8) at global/qglobal.cpp:2432
#4  0x00007ffff7968794 in qFatal (msg=msg@entry=0x7ffff7ad38c0 "ASSERT: \"%s\" in file %s, line %d") at global/qglobal.cpp:2615
#5  0x00007ffff79687d6 in qt_assert (assertion=assertion@entry=0x7ffff6892645 "!\"Didn't find target row.\"", 
    file=file@entry=0x7ffff68922c8 "/home/sergobot/marble/sources/src/lib/marble/kdescendantsproxymodel.cpp", line=line@entry=412) at global/qglobal.cpp:2060
#6  0x00007ffff66d1c18 in KDescendantsProxyModel::mapToSource (this=<optimized out>, proxyIndex=...) at /home/sergobot/marble/sources/src/lib/marble/kdescendantsproxymodel.cpp:412
#7  0x00007ffff66d1fa1 in KDescendantsProxyModel::data (this=0x7adc98, index=..., role=42) at /home/sergobot/marble/sources/src/lib/marble/kdescendantsproxymodel.cpp:495
#8  0x00007ffff737ff78 in QSortFilterProxyModel::data (this=<optimized out>, index=..., role=42) at itemviews/qsortfilterproxymodel.cpp:1735
#9  0x00007ffff737d17f in QSortFilterProxyModel::lessThan (this=<optimized out>, left=..., right=...) at itemviews/qsortfilterproxymodel.cpp:2420
#10 0x00007ffff737e1a6 in QSortFilterProxyModelPrivate::proxy_intervals_for_source_items_to_add (this=this@entry=0xbfdce0, proxy_to_source=..., source_items=..., 
    source_parent=..., orient=orient@entry=Qt::Vertical) at itemviews/qsortfilterproxymodel.cpp:614
#11 0x00007ffff7382a2f in QSortFilterProxyModelPrivate::insert_source_items (this=this@entry=0xbfdce0, source_to_proxy=..., proxy_to_source=..., source_items=..., 
    source_parent=..., orient=orient@entry=Qt::Vertical, emit_signal=true) at itemviews/qsortfilterproxymodel.cpp:672
#12 0x00007ffff738309e in QSortFilterProxyModelPrivate::source_items_inserted (this=this@entry=0xbfdce0, source_parent=..., start=<optimized out>, end=<optimized out>, 
    orient=orient@entry=Qt::Vertical) at itemviews/qsortfilterproxymodel.cpp:806
#13 0x00007ffff738333f in QSortFilterProxyModelPrivate::_q_sourceRowsInserted (this=0xbfdce0, source_parent=..., start=<optimized out>, end=<optimized out>)
    at itemviews/qsortfilterproxymodel.cpp:1297
#14 0x00007ffff7a86a7a in QMetaObject::activate (sender=sender@entry=0x7adcb0, m=m@entry=0x7ffff7dd6860 <QAbstractItemModel::staticMetaObject>, 
    local_signal_index=local_signal_index@entry=5, argv=argv@entry=0x7fffffffbe30) at kernel/qobject.cpp:3567
#15 0x00007ffff7ad0404 in QAbstractItemModel::rowsInserted (this=this@entry=0x7adcb0, _t1=..., _t2=1858, _t3=1904) at .moc/release-shared/moc_qabstractitemmodel.cpp:196
#16 0x00007ffff7a6c062 in QAbstractItemModel::endInsertRows (this=0x7adcb0) at kernel/qabstractitemmodel.cpp:2433
#17 0x00007ffff7382ce5 in QSortFilterProxyModelPrivate::insert_source_items (this=this@entry=0x7ac3c0, source_to_proxy=..., proxy_to_source=..., source_items=..., 
    source_parent=..., orient=orient@entry=Qt::Vertical, emit_signal=true) at itemviews/qsortfilterproxymodel.cpp:695
#18 0x00007ffff738309e in QSortFilterProxyModelPrivate::source_items_inserted (this=this@entry=0x7ac3c0, source_parent=..., start=<optimized out>, end=<optimized out>, 
    orient=orient@entry=Qt::Vertical) at itemviews/qsortfilterproxymodel.cpp:806
#19 0x00007ffff738333f in QSortFilterProxyModelPrivate::_q_sourceRowsInserted (this=0x7ac3c0, source_parent=..., start=<optimized out>, end=<optimized out>)
    at itemviews/qsortfilterproxymodel.cpp:1297
#20 0x00007ffff7a86a7a in QMetaObject::activate (sender=sender@entry=0x7adc98, m=m@entry=0x7ffff7dd6860 <QAbstractItemModel::staticMetaObject>, 
    local_signal_index=local_signal_index@entry=5, argv=argv@entry=0x7fffffffc170) at kernel/qobject.cpp:3567
#21 0x00007ffff7ad0404 in QAbstractItemModel::rowsInserted (this=this@entry=0x7adc98, _t1=..., _t2=1913, _t3=1959) at .moc/release-shared/moc_qabstractitemmodel.cpp:196
#22 0x00007ffff7a6c062 in QAbstractItemModel::endInsertRows (this=this@entry=0x7adc98) at kernel/qabstractitemmodel.cpp:2433
#23 0x00007ffff66d4b48 in KDescendantsProxyModelPrivate::processPendingParents (this=this@entry=0x7b80a0)
    at /home/sergobot/marble/sources/src/lib/marble/kdescendantsproxymodel.cpp:162
#24 0x00007ffff66d453e in KDescendantsProxyModelPrivate::processPendingParents (this=this@entry=0x7b80a0)
    at /home/sergobot/marble/sources/src/lib/marble/kdescendantsproxymodel.cpp:178
#25 0x00007ffff66d5ad5 in KDescendantsProxyModelPrivate::scheduleProcessPendingParents (this=this@entry=0x7b80a0)
    at /home/sergobot/marble/sources/src/lib/marble/kdescendantsproxymodel.cpp:115
#26 0x00007ffff66d5ea2 in KDescendantsProxyModelPrivate::sourceRowsInserted (this=0x7b80a0, parent=..., start=<optimized out>, end=23)
    at /home/sergobot/marble/sources/src/lib/marble/kdescendantsproxymodel.cpp:686
#27 0x00007ffff7a86a7a in QMetaObject::activate (sender=sender@entry=0x7adc80, m=m@entry=0x7ffff7dd6860 <QAbstractItemModel::staticMetaObject>, 
    local_signal_index=local_signal_index@entry=5, argv=argv@entry=0x7fffffffc800) at kernel/qobject.cpp:3567
#28 0x00007ffff7ad0404 in QAbstractItemModel::rowsInserted (this=this@entry=0x7adc80, _t1=..., _t2=23, _t3=23) at .moc/release-shared/moc_qabstractitemmodel.cpp:196
#29 0x00007ffff7a6c062 in QAbstractItemModel::endInsertRows (this=this@entry=0x7adc80) at kernel/qabstractitemmodel.cpp:2433
#30 0x00007ffff66cd224 in Marble::GeoDataTreeModel::addFeature (this=this@entry=0x7adc80, parent=0x7d0da8, feature=0x7d0da8, row=23)
    at /home/sergobot/marble/sources/src/lib/marble/GeoDataTreeModel.cpp:807
#31 0x00007ffff66cdadf in Marble::GeoDataTreeModel::qt_static_metacall (_o=0x7adc80, _c=<optimized out>, _id=3, _a=0x7fffffffca60)
    at /home/sergobot/marble/build/src/lib/marble/GeoDataTreeModel.moc:89
#32 0x00007ffff7a86a7a in QMetaObject::activate (sender=0xedf970, m=m@entry=0x7ffff6c11680 <Marble::TourPlayback::staticMetaObject>, local_signal_index=local_signal_index@entry=5, 
    argv=argv@entry=0x7fffffffca60) at kernel/qobject.cpp:3567
#33 0x00007ffff669ea9f in Marble::TourPlayback::added (this=<optimized out>, _t1=0x7d0da8, _t2=0x7d0da8, _t3=-1) at /home/sergobot/marble/build/src/lib/marble/TourPlayback.moc:163
#34 0x00007ffff7a86a7a in QMetaObject::activate (sender=0x12745e0, m=m@entry=0x7ffff6c120c0 <Marble::AnimatedUpdateTrack::staticMetaObject>, 
    local_signal_index=local_signal_index@entry=3, argv=argv@entry=0x7fffffffcbb0) at kernel/qobject.cpp:3567
#35 0x00007ffff66a66ef in Marble::AnimatedUpdateTrack::added (this=<optimized out>, _t1=0x7d0da8, _t2=0x7d0da8, _t3=-1)
    at /home/sergobot/marble/build/src/lib/marble/AnimatedUpdateTrack.moc:134
#36 0x00007ffff7a86a7a in QMetaObject::activate (sender=sender@entry=0x12ab400, m=m@entry=0x7ffff6c119a0 <Marble::PlaybackItem::staticMetaObject>, 
    local_signal_index=local_signal_index@entry=7, argv=argv@entry=0x7fffffffcd00) at kernel/qobject.cpp:3567
#37 0x00007ffff66a14df in Marble::PlaybackItem::added (this=this@entry=0x12ab400, _t1=_t1@entry=0x7d0da8, _t2=_t2@entry=0x7d0da8, _t3=_t3@entry=-1)
    at /home/sergobot/marble/build/src/lib/marble/PlaybackItem.moc:166
#38 0x00007ffff66a22c1 in Marble::PlaybackAnimatedUpdateItem::stop (this=0x12ab400) at /home/sergobot/marble/sources/src/lib/marble/PlaybackAnimatedUpdateItem.cpp:194
#39 0x00007ffff66a651a in Marble::AnimatedUpdateTrack::stop (this=0x12745e0) at /home/sergobot/marble/sources/src/lib/marble/AnimatedUpdateTrack.cpp:100
#40 0x00007ffff669ecb0 in Marble::TourPlayback::stopTour (this=0xedf970) at /home/sergobot/marble/sources/src/lib/marble/TourPlayback.cpp:97
#41 0x00007ffff7a86a7a in QMetaObject::activate (sender=0xedfa80, m=<optimized out>, local_signal_index=<optimized out>, argv=0x0) at kernel/qobject.cpp:3567
#42 0x00007ffff7a86a7a in QMetaObject::activate (sender=sender@entry=0x126e160, m=m@entry=0x7ffff6c119a0 <Marble::PlaybackItem::staticMetaObject>, 
    local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at kernel/qobject.cpp:3567
#43 0x00007ffff66a12d0 in Marble::PlaybackItem::finished (this=this@entry=0x126e160) at /home/sergobot/marble/build/src/lib/marble/PlaybackItem.moc:119
#44 0x00007ffff66a3dc6 in Marble::PlaybackWaitItem::playNext (this=0x126e160) at /home/sergobot/marble/sources/src/lib/marble/PlaybackWaitItem.cpp:63
#45 0x00007ffff7a86a7a in QMetaObject::activate (sender=sender@entry=0x1273750, m=m@entry=0x7ffff7dd4540 <QSingleShotTimer::staticMetaObject>, 
    local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at kernel/qobject.cpp:3567
#46 0x00007ffff7a8f82a in timeout (this=0x1273750) at .moc/release-shared/qtimer.moc:96
#47 QSingleShotTimer::timerEvent (this=0x1273750) at kernel/qtimer.cpp:317
#48 0x00007ffff7a8ae0b in QObject::event (this=0x1273750, e=<optimized out>) at kernel/qobject.cpp:1253
#49 0x00007ffff6dff11c in QApplicationPrivate::notify_helper (this=this@entry=0x6c0170, receiver=receiver@entry=0x1273750, e=e@entry=0x7fffffffd410) at kernel/qapplication.cpp:4570
#50 0x00007ffff6e05870 in QApplication::notify (this=0x7fffffffdb80, receiver=0x1273750, e=0x7fffffffd410) at kernel/qapplication.cpp:4356
#51 0x00007ffff7a7286d in QCoreApplication::notifyInternal (this=0x7fffffffdb80, receiver=0x1273750, event=event@entry=0x7fffffffd410) at kernel/qcoreapplication.cpp:953
#52 0x00007ffff7aa24eb in sendEvent (event=0x7fffffffd410, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#53 QTimerInfoList::activateTimers (this=0x6b9d80) at kernel/qeventdispatcher_unix.cpp:621
#54 0x00007ffff7a9f749 in timerSourceDispatch (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:193
#55 idleTimerSourceDispatch (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:240
#56 0x00007ffff4e75c5d in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#57 0x00007ffff4e75f48 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#58 0x00007ffff4e75ffc in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#59 0x00007ffff7aa0031 in QEventDispatcherGlib::processEvents (this=0x6bc3c0, flags=...) at kernel/qeventdispatcher_glib.cpp:434
#60 0x00007ffff6ea24e6 in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#61 0x00007ffff7a714f1 in QEventLoop::processEvents (this=this@entry=0x7fffffffd690, flags=...) at kernel/qeventloop.cpp:149
#62 0x00007ffff7a71805 in QEventLoop::exec (this=this@entry=0x7fffffffd690, flags=...) at kernel/qeventloop.cpp:204
#63 0x00007ffff7a76f67 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1225
#64 0x0000000000425949 in main (argc=2, argv=0x7fffffffdd38) at /home/sergobot/marble/sources/src/apps/marble-qt/qtmain.cpp:258
Comment 1 Sergey Popov 2015-01-11 19:47:38 UTC
Oops. Forgot to add 5th step to reproduce the bug. 
5. Start the tour.
Comment 2 Dennis Nienhüser 2015-02-08 11:05:12 UTC
Does this still happen with latest master? I cannot reproduce it directly.
Comment 3 Denis Kurz 2018-01-31 16:05:19 UTC
You might want to consider if this was caused by a Qt bug that was resolved fixed in 5.8, as described in Bug 361895, Comment 1.
Comment 4 Justin Zobel 2020-12-17 05:33:33 UTC
Thank you for the crash report.

As it has been a while since this was reported, can you please test and confirm if this issue is still occurring or if this bug report can be marked as resolved.

I have set the bug status to "needsinfo" pending your response, please change back to "reported" or "resolved/worksforme" when you respond, thank you.
Comment 5 Bug Janitor Service 2021-01-01 04:35:02 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 6 Bug Janitor Service 2021-01-16 04:34:19 UTC
This bug has been in NEEDSINFO status with no change for at least
30 days. The bug is now closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

Thank you for helping us make KDE software even better for everyone!