Bug report #17513
Updated by Mathieu Pellerin - nIRV about 7 years ago
QGIS master dies on me usually within minutes of adding an AFS layer.
*Steps to reproduce*
# Create a new project
# Add the "burials" layer from the AFS following server (https://services1.arcgis.com/7uJv7I3kgh2y7Pe0/ArcGIS/rest/services/CGP_Vector_Data/FeatureServer) mentioned above
# Zoom in to show only a fraction of all points
# Hit the toolbar refresh button (or f5) a couple of times
# *boom*
*GDB where output*
<pre>
(gdb) where
#0 0x00007ffff39630bb in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1 0x00007ffff3964f5d in __GI_abort () at abort.c:90
#2 0x0000555555560612 in qgisCrash(int) (signal=-1) at /home/webmaster/dev/cpp/QGIS/src/app/main.cpp:336
#3 0x00005555555608ba in myMessageOutput(QtMsgType, char const*) (type=QtFatalMsg, msg=0x7fff147485a8 "ASSERT: \"f.isValid()\" in file /home/webmaster/dev/cpp/QGIS/src/providers/arcgisrest/qgsafsshareddata.cpp, line 111") at /home/webmaster/dev/cpp/QGIS/src/app/main.cpp:389
#4 0x00007ffff433e61a in () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5 0x00007ffff43400ee in QMessageLogger::fatal(char const*, ...) const () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6 0x00007ffff433b357 in () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7 0x00007fff56734237 in QgsAfsSharedData::getFeature(long long, QgsFeature&, bool, QList<int> const&, QgsRectangle const&) (this=0x55555fc25760, id=101, f=..., fetchGeometry=true, filterRect=...)
at /home/webmaster/dev/cpp/QGIS/src/providers/arcgisrest/qgsafsshareddata.cpp:111
#8 0x00007fff5672b623 in QgsAfsFeatureIterator::fetchFeature(QgsFeature&) (this=0x7fff14745520, f=...) at /home/webmaster/dev/cpp/QGIS/src/providers/arcgisrest/qgsafsfeatureiterator.cpp:94
#9 0x00007ffff60e7e44 in QgsAbstractFeatureIterator::nextFeature(QgsFeature&) (this=0x7fff14745520, f=...) at /home/webmaster/dev/cpp/QGIS/src/core/qgsfeatureiterator.cpp:63
#10 0x00007ffff7108db5 in QgsFeatureIterator::nextFeature(QgsFeature&) (this=0x7fff1401be30, f=...) at /home/webmaster/dev/cpp/QGIS/src/core/qgsfeatureiterator.h:370
#11 0x00007ffff63649d6 in QgsVectorLayerFeatureIterator::fetchFeature(QgsFeature&) (this=0x7fff1401bc20, f=...) at /home/webmaster/dev/cpp/QGIS/src/core/qgsvectorlayerfeatureiterator.cpp:330
#12 0x00007ffff60e7e44 in QgsAbstractFeatureIterator::nextFeature(QgsFeature&) (this=0x7fff1401bc20, f=...) at /home/webmaster/dev/cpp/QGIS/src/core/qgsfeatureiterator.cpp:63
#13 0x00007ffff7108db5 in QgsFeatureIterator::nextFeature(QgsFeature&) (this=0x7fff237fcd80, f=...) at /home/webmaster/dev/cpp/QGIS/src/core/qgsfeatureiterator.h:370
#14 0x00007ffff63846f4 in QgsVectorLayerRenderer::drawRenderer(QgsFeatureIterator&) (this=0x555561497a70, fit=...) at /home/webmaster/dev/cpp/QGIS/src/core/qgsvectorlayerrenderer.cpp:264
#15 0x00007ffff638421a in QgsVectorLayerRenderer::render() (this=0x555561497a70) at /home/webmaster/dev/cpp/QGIS/src/core/qgsvectorlayerrenderer.cpp:247
#16 0x00007ffff6183a5f in QgsMapRendererParallelJob::renderLayerStatic(LayerRenderJob&) (job=...) at /home/webmaster/dev/cpp/QGIS/src/core/qgsmaprendererparalleljob.cpp:256
#17 0x00007ffff61851da in QtConcurrent::FunctionWrapper1<void, LayerRenderJob&>::operator()(LayerRenderJob&) (this=0x555561490bf8, u=...)
at /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/qtconcurrentfunctionwrappers.h:83
#18 0x00007ffff6184f13 in QtConcurrent::MapKernel<QList<LayerRenderJob>::iterator, QtConcurrent::FunctionWrapper1<void, LayerRenderJob&> >::runIteration(QList<LayerRenderJob>::iterator, int, void*) (this=0x555561490bc0, it=...) at /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/qtconcurrentmapkernel.h:69
#19 0x00007ffff6184fb2 in QtConcurrent::MapKernel<QList<LayerRenderJob>::iterator, QtConcurrent::FunctionWrapper1<void, LayerRenderJob&> >::runIterations(QList<LayerRenderJob>::iterator, int, int, void*) (this=0x555561490bc0, sequenceBeginIterator=..., beginIndex=2, endIndex=3) at /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/qtconcurrentmapkernel.h:78
#20 0x00007ffff6185482 in QtConcurrent::IterateKernel<QList<LayerRenderJob>::iterator, void>::forThreadFunction() (this=0x555561490bc0)
at /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/qtconcurrentiteratekernel.h:256
#21 0x00007ffff6185144 in QtConcurrent::IterateKernel<QList<LayerRenderJob>::iterator, void>::threadFunction() (this=0x555561490bc0)
at /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/qtconcurrentiteratekernel.h:218
#22 0x00007fffebb78bfd in QtConcurrent::ThreadEngineBase::run() () at /usr/lib/x86_64-linux-gnu/libQt5Concurrent.so.5
#23 0x00007ffff4351581 in () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#24 0x00007ffff435529d in () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#25 0x00007fffeaad37fc in start_thread (arg=0x7fff237fe700) at pthread_create.c:465
#26 0x00007ffff3a40b0f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
</pre>
*Steps to reproduce*
# Create a new project
# Add the "burials" layer from the AFS following server (https://services1.arcgis.com/7uJv7I3kgh2y7Pe0/ArcGIS/rest/services/CGP_Vector_Data/FeatureServer) mentioned above
# Zoom in to show only a fraction of all points
# Hit the toolbar refresh button (or f5) a couple of times
# *boom*
*GDB where output*
<pre>
(gdb) where
#0 0x00007ffff39630bb in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1 0x00007ffff3964f5d in __GI_abort () at abort.c:90
#2 0x0000555555560612 in qgisCrash(int) (signal=-1) at /home/webmaster/dev/cpp/QGIS/src/app/main.cpp:336
#3 0x00005555555608ba in myMessageOutput(QtMsgType, char const*) (type=QtFatalMsg, msg=0x7fff147485a8 "ASSERT: \"f.isValid()\" in file /home/webmaster/dev/cpp/QGIS/src/providers/arcgisrest/qgsafsshareddata.cpp, line 111") at /home/webmaster/dev/cpp/QGIS/src/app/main.cpp:389
#4 0x00007ffff433e61a in () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5 0x00007ffff43400ee in QMessageLogger::fatal(char const*, ...) const () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6 0x00007ffff433b357 in () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7 0x00007fff56734237 in QgsAfsSharedData::getFeature(long long, QgsFeature&, bool, QList<int> const&, QgsRectangle const&) (this=0x55555fc25760, id=101, f=..., fetchGeometry=true, filterRect=...)
at /home/webmaster/dev/cpp/QGIS/src/providers/arcgisrest/qgsafsshareddata.cpp:111
#8 0x00007fff5672b623 in QgsAfsFeatureIterator::fetchFeature(QgsFeature&) (this=0x7fff14745520, f=...) at /home/webmaster/dev/cpp/QGIS/src/providers/arcgisrest/qgsafsfeatureiterator.cpp:94
#9 0x00007ffff60e7e44 in QgsAbstractFeatureIterator::nextFeature(QgsFeature&) (this=0x7fff14745520, f=...) at /home/webmaster/dev/cpp/QGIS/src/core/qgsfeatureiterator.cpp:63
#10 0x00007ffff7108db5 in QgsFeatureIterator::nextFeature(QgsFeature&) (this=0x7fff1401be30, f=...) at /home/webmaster/dev/cpp/QGIS/src/core/qgsfeatureiterator.h:370
#11 0x00007ffff63649d6 in QgsVectorLayerFeatureIterator::fetchFeature(QgsFeature&) (this=0x7fff1401bc20, f=...) at /home/webmaster/dev/cpp/QGIS/src/core/qgsvectorlayerfeatureiterator.cpp:330
#12 0x00007ffff60e7e44 in QgsAbstractFeatureIterator::nextFeature(QgsFeature&) (this=0x7fff1401bc20, f=...) at /home/webmaster/dev/cpp/QGIS/src/core/qgsfeatureiterator.cpp:63
#13 0x00007ffff7108db5 in QgsFeatureIterator::nextFeature(QgsFeature&) (this=0x7fff237fcd80, f=...) at /home/webmaster/dev/cpp/QGIS/src/core/qgsfeatureiterator.h:370
#14 0x00007ffff63846f4 in QgsVectorLayerRenderer::drawRenderer(QgsFeatureIterator&) (this=0x555561497a70, fit=...) at /home/webmaster/dev/cpp/QGIS/src/core/qgsvectorlayerrenderer.cpp:264
#15 0x00007ffff638421a in QgsVectorLayerRenderer::render() (this=0x555561497a70) at /home/webmaster/dev/cpp/QGIS/src/core/qgsvectorlayerrenderer.cpp:247
#16 0x00007ffff6183a5f in QgsMapRendererParallelJob::renderLayerStatic(LayerRenderJob&) (job=...) at /home/webmaster/dev/cpp/QGIS/src/core/qgsmaprendererparalleljob.cpp:256
#17 0x00007ffff61851da in QtConcurrent::FunctionWrapper1<void, LayerRenderJob&>::operator()(LayerRenderJob&) (this=0x555561490bf8, u=...)
at /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/qtconcurrentfunctionwrappers.h:83
#18 0x00007ffff6184f13 in QtConcurrent::MapKernel<QList<LayerRenderJob>::iterator, QtConcurrent::FunctionWrapper1<void, LayerRenderJob&> >::runIteration(QList<LayerRenderJob>::iterator, int, void*) (this=0x555561490bc0, it=...) at /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/qtconcurrentmapkernel.h:69
#19 0x00007ffff6184fb2 in QtConcurrent::MapKernel<QList<LayerRenderJob>::iterator, QtConcurrent::FunctionWrapper1<void, LayerRenderJob&> >::runIterations(QList<LayerRenderJob>::iterator, int, int, void*) (this=0x555561490bc0, sequenceBeginIterator=..., beginIndex=2, endIndex=3) at /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/qtconcurrentmapkernel.h:78
#20 0x00007ffff6185482 in QtConcurrent::IterateKernel<QList<LayerRenderJob>::iterator, void>::forThreadFunction() (this=0x555561490bc0)
at /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/qtconcurrentiteratekernel.h:256
#21 0x00007ffff6185144 in QtConcurrent::IterateKernel<QList<LayerRenderJob>::iterator, void>::threadFunction() (this=0x555561490bc0)
at /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/qtconcurrentiteratekernel.h:218
#22 0x00007fffebb78bfd in QtConcurrent::ThreadEngineBase::run() () at /usr/lib/x86_64-linux-gnu/libQt5Concurrent.so.5
#23 0x00007ffff4351581 in () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#24 0x00007ffff435529d in () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#25 0x00007fffeaad37fc in start_thread (arg=0x7fff237fe700) at pthread_create.c:465
#26 0x00007ffff3a40b0f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
</pre>