Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Raster MTR improvements - part one #3334

Merged
merged 10 commits into from
Aug 2, 2016

Conversation

wonder-sk
Copy link
Member

First part of the work to improve rendering of raster layers. With this PR, it is possible to prematurely cancel rendering of raster layers, making it possible to browse the map faster. Especially useful for rasters coming from remote servers.

Raster pipe works with an optional feedback object that can be used to signal cancellation to data providers without having to poll for a "rendering stopped" variable as like with QgsRenderContext. The feedback object may be later used also the other way round - to signal from raster data provider that some data are available and thus a preview of the raster may be produced).

Requires raster data provider support - so far available for WMS, WMTS, WCS.

The improvement allows immediate cancellation of raster rendering
in progress. Until now, even when map rendering got cancelled
(e.g. by zooming of panning canvas), the GUI got blocked while waiting
for raster layers to finish their rendering (only vector layers have
had support for cancellation). This should allow for much smoother
user experience while browsing maps including rasters.

The cancellation is supported currently by WMS/WMTS and WCS providers.
GDAL provider may also get support thanks to improvements in GDAL 2.

Funded by Land Information New Zealand.
There are still some questions around it and I need to find some data
for thorough testing (many GDAL drivers do not support cancellation)
@nyalldawson
Copy link
Collaborator

Nice to see the doc tests are working correctly! :)

@wonder-sk
Copy link
Member Author

@nyalldawson hmm actually it seems like there is a false report for QgsFeedback class - it is marked as added in 3.0 but PyQgsDocCoverage is still not happy...

@nyalldawson
Copy link
Collaborator

Hmm can you try making the @note immediately below the ingroup and see if that helps?

*/
virtual QgsRasterBlock *block( int bandNo, const QgsRectangle &extent, int width, int height ) = 0;
virtual QgsRasterBlock *block( int bandNo, const QgsRectangle &extent, int width, int height, QgsRasterBlockFeedback* feedback = nullptr ) = 0;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is technically an api break, so should be included in the api break docs.

@nyalldawson nyalldawson added the API Break! Breaks stable API. Proceed with extreme caution!! label Jul 25, 2016
@nirvn
Copy link
Contributor

nirvn commented Jul 25, 2016

This is exciting.

@wonder-sk , @nyalldawson , will this help bringing tiled rendering (which was quickly introduced in the 2.15 dev cycle)?

@wonder-sk
Copy link
Member Author

@nyalldawson Unfortunately the doc coverage test still fails for QgsFeedback...

@nirvn At some point later it should also show raster tiles as they are being downloaded from WMTS - if that was your question...

@nirvn
Copy link
Contributor

nirvn commented Jul 25, 2016

@wonder-sk , no, I meant tiled rendering of raster files. It was pretty cool when it was on qgis 2.15-dev 😄

@m-kuhn
Copy link
Member

m-kuhn commented Aug 1, 2016

👍 nice, a really good thing for a better UX!

One thing I struggle is understanding the scope of the QgsFeedback object.
Is this expected to be used broader than just for raster rendering (e.g. in the task manager)?
If so, is every feedback object always going to be cancallable (assuming so since it's the only thing in there right now)? If the least common denominator for feedbackable things is cancellation should the name maybe be something like QgsJobController or similar?

@wonder-sk
Copy link
Member Author

One thing I struggle is understanding the scope of the QgsFeedback object.
Is this expected to be used broader than just for raster rendering (e.g. in the task manager)?

Yes it is designed in a way that it may be possibly used in other parts of the code.

If so, is every feedback object always going to be cancallable (assuming so since it's the only thing in there right now)?

For now yes, although in future it may make sense to have operations/jobs/tasks that cannot be cancelled, so a more general base class may be useful.

If the least common denominator for feedbackable things is cancellation should the name maybe be something like QgsJobController or similar?

Not sure what would be the best name. It would be worth discussing terminology for asynchronous operations / jobs / tasks in QGIS context. For now I would stick with "feedback" - we still have plenty of time to change later it when necessary...

@wonder-sk wonder-sk merged commit 9db9304 into qgis:master Aug 2, 2016
@wonder-sk wonder-sk deleted the raster-mtr-improvements branch August 2, 2016 06:22
@nyalldawson
Copy link
Collaborator

Awesome! Can't wait for part 2!

@wonder-sk
Copy link
Member Author

... coming to cinemas in 2017 !

@nyalldawson
Copy link
Collaborator

nyalldawson commented Aug 3, 2016

@wonder-sk

I'm seeing crashes today while panning/zooming maps which are mid-render. Backtrace is below, but it looks to me like the
cause is that at qgsmaprendererparalleljob.cpp:95 some of the layer jobs do not have a renderer.

Thread 19 (Thread 0x7fff4178f700 (LWP 10754)):
#0  0x00007ffff5e63103 in QBasicAtomicInt::operator!= (this=0x7fff4178d9b0, value=32767) at /usr/include/qt4/QtCore/qbasicatomic.h:70
No locals.
#1  0x00007ffff6430798 in QList<QList<QList<QgsPointV2> > >::append (this=0x7fff4178da60, t=...) at /usr/include/qt4/QtCore/qlist.h:509
No locals.
#2  0x00007ffff6461cff in QgsPointV2::coordinateSequence (this=0x7fff2400fc00) at /home/nyall/dev/QGIS/src/core/geometry/qgspointv2.cpp:278
        cs = {{p = {static shared_null = {ref = {_q_value = 1}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0x89b700 <QListData::shared_null>}, d = 0x89b700 <QListData::shared_null>}}
#3  0x00007ffff641bcb0 in QgsAbstractGeometryV2::nCoordinates (this=0x7fff2400fc00) at /home/nyall/dev/QGIS/src/core/geometry/qgsabstractgeometryv2.cpp:143
        _container_ = {c = {{p = {static shared_null = {ref = {_q_value = 1}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0x7fff2400f498}, d = 0x7fff2400f498}}, brk = 604031616, i = {i = 0x7fff4178da70}, e = {i = 0x1007fff2400ca80}}
        nCoords = 0
#4  0x00007ffff629d619 in QgsVectorLayerLabelProvider::getPointObstacleGeometry (fet=..., context=..., symbols=...) at /home/nyall/dev/QGIS/src/core/qgsvectorlayerlabelprovider.cpp:329
        isMultiPoint = false
        obstacleGeom = 0x7fff4178dbc4
#5  0x00007ffff62a2770 in QgsVectorLayerRenderer::drawRendererV2 (this=0xa54a080, fit=...) at /home/nyall/dev/QGIS/src/core/qgsvectorlayerrenderer.cpp:349
        obstacleGeometry = {d = 0x0}
        symbols = {{p = {static shared_null = {ref = {_q_value = 1}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0x7fff2400a8c0}, d = 0x7fff2400a8c0}}
        sel = false
        drawMarker = false
        rendered = true
        symbolScope = 0x7fff2400f490
        fet = {_vptr.QgsFeature = 0x7ffff69278f0 <vtable for QgsFeature+16>, d = {d = 0x7fff2400b270}}
        __FUNCTION__ = "drawRendererV2"
#6  0x00007ffff62a1c0e in QgsVectorLayerRenderer::render (this=0xa54a080) at /home/nyall/dev/QGIS/src/core/qgsvectorlayerrenderer.cpp:259
        usingEffect = false
        rendererFilter = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 1}, alloc = 0, size = 0, data = 0x89b6ba <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 505}, alloc = 0, size = 0, data = 0x7ffff5c888fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x89b6a0 <QString::shared_null>, static codecForCStrings = 0x0}
        requestExtent = {xmin = 144.07993460360166, ymin = -38.310873267154292, xmax = 144.66750795775778, ymax = -37.653551996857331}
        featureRequest = {static AllAttributes = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 1}, alloc = 0, size = 0, data = 0x89b6ba <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 505}, alloc = 0, size = 0, data = 0x7ffff5c888fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x2829290, static codecForCStrings = 0x0}, mFilter = QgsFeatureRequest::FilterRect, mFilterRect = {xmin = 144.07993460360166, ymin = -38.310873267154292, xmax = 144.66750795775778, ymax = -37.653551996857331}, mFilterFid = -1, mFilterFids = {q_hash = {{d = 0x7ffff5c887c0 <QHashData::shared_null>, e = 0x7ffff5c887c0 <QHashData::shared_null>}}}, mFilterExpression = 0x0, mExpressionContext = {static EXPR_FIELDS = {static null = <same as static member of an already seen type>, static shared_null = <same as static member of an already seen type>, static shared_empty = <same as static member of an already seen type>, d = 0x27f1e30, static codecForCStrings = 0x0}, static EXPR_FEATURE = {static null = <same as static member of an already seen type>, static shared_null = <same as static member of an already seen type>, static shared_empty = <same as static member of an already seen type>, d = 0x278ac00, static codecForCStrings = 0x0}, static EXPR_ORIGINAL_VALUE = {static null = <same as static member of an already seen type>, static shared_null = <same as static member of an already seen type>, static shared_empty = <same as static member of an already seen type>, d = 0x281d5b0, static codecForCStrings = 0x0}, static EXPR_SYMBOL_COLOR = {static null = <same as static member of an already seen type>, static shared_null = <same as static member of an already seen type>, static shared_empty = <same as static member of an already seen type>, d = 0x27d1fd0, static codecForCStrings = 0x0}, static EXPR_SYMBOL_ANGLE = {static null = <same as static member of an already seen type>, static shared_null = <same as static member of an already seen type>, static shared_empty = <same as static member of an already seen type>, d = 0x27aa900, static codecForCStrings = 0x0}, static EXPR_GEOMETRY_PART_COUNT = {static null = <same as static member of an already seen type>, static shared_null = <same as static member of an already seen type>, static shared_empty = <same as static member of an already seen type>, d = 0x2790440, static codecForCStrings = 0x0}, static EXPR_GEOMETRY_PART_NUM = {static null = <same as static member of an already seen type>, static shared_null = <same as static member of an already seen type>, static shared_empty = <same as static member of an already seen type>, d = 0x27ced20, static codecForCStrings = 0x0}, static EXPR_GEOMETRY_POINT_COUNT = {static null = <same as static member of an already seen type>, static shared_null = <same as static member of an already seen type>, static shared_empty = <same as static member of an already seen type>, d = 0x2827620, static codecForCStrings = 0x0}, static EXPR_GEOMETRY_POINT_NUM = {static null = <same as static member of an already seen type>, static shared_null = <same as static member of an already seen type>, static shared_empty = <same as static member of an already seen type>, d = 0x27ece00, static codecForCStrings = 0x0}, mStack = {{p = {static shared_null = {ref = {_q_value = 1}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0x7fff2400a3e0}, d = 0x7fff2400a3e0}}, mHighlightedVariables = {<QList<QString>> = {{p = {static shared_null = {ref = {_q_value = 1}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0x89b700 <QListData::shared_null>}, d = 0x89b700 <QListData::shared_null>}}, <No data fields>}, mCachedValues = {{d = 0x7ffff5c88840 <QMapData::shared_null>, e = 0x7ffff5c88840 <QMapData::shared_null>}}}, mFlags = {i = 2}, mAttrs = {{p = {static shared_null = {ref = {_q_value = 1}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0x89b700 <QListData::shared_null>}, d = 0x89b700 <QListData::shared_null>}}, mSimplifyMethod = {mMethodType = QgsSimplifyMethod::NoSimplification, mTolerance = 1, mThreshold = 1, mForceLocalOptimization = true}, mLimit = -1, mOrderBy = {<QList<QgsFeatureRequest::OrderByClause>> = {{p = {static shared_null = {ref = {_q_value = 1}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0x89b700 <QListData::shared_null>}, d = 0x89b700 <QListData::shared_null>}}, <No data fields>}}
        featureFilterProvider = 0x0
        __FUNCTION__ = "render"
        fit = {mIter = 0x7fff2400dd70}
#7  0x00007ffff6141477 in QgsMapRendererParallelJob::renderLayerStatic (job=...) at /home/nyall/dev/QGIS/src/core/qgsmaprendererparalleljob.cpp:231
        t = {mds = 53222161}
        __FUNCTION__ = "renderLayerStatic"
#8  0x00007ffff61429d8 in QtConcurrent::FunctionWrapper1<void, LayerRenderJob&>::operator() (this=0xa147a28, u=...) at /usr/include/qt4/QtCore/qtconcurrentfunctionwrappers.h:86
No locals.
#9  0x00007ffff6142717 in QtConcurrent::MapKernel<QList<LayerRenderJob>::iterator, QtConcurrent::FunctionWrapper1<void, LayerRenderJob&> >::runIteration (this=0xa1479f0, it=...) at /usr/include/qt4/QtCore/qtconcurrentmapkernel.h:73
No locals.
#10 0x00007ffff61427b0 in QtConcurrent::MapKernel<QList<LayerRenderJob>::iterator, QtConcurrent::FunctionWrapper1<void, LayerRenderJob&> >::runIterations (this=0xa1479f0, sequenceBeginIterator=..., beginIndex=1, endIndex=2) at /usr/include/qt4/QtCore/qtconcurrentmapkernel.h:82
        i = 1
        it = {i = 0x90a34c0}
#11 0x00007ffff6142c77 in QtConcurrent::IterateKernel<QList<LayerRenderJob>::iterator, void>::forThreadFunction (this=0xa1479f0) at /usr/include/qt4/QtCore/qtconcurrentiteratekernel.h:263
        finalBlockSize = 1
        currentBlockSize = 1
        beginIndex = 1
        endIndex = 2
        resultsAvailable = false
        blockSizeManager = {maxBlockSize = 0, beforeUser = 0, afterUser = 0, controlPartElapsed = {values = {{d = 0x7fff2400c3a0, p = 0x7fff2400c3a0}}, currentMedian = 0, bufferSize = 7, currentIndex = 0, valid = false, dirty = true}, userPartElapsed = {values = {{d = 0x7fff2400be20, p = 0x7fff2400be20}}, currentMedian = 0, bufferSize = 7, currentIndex = 0, valid = false, dirty = true}, m_blockSize = 1}
        resultReporter = {<No data fields>}
#12 0x00007ffff6142942 in QtConcurrent::IterateKernel<QList<LayerRenderJob>::iterator, void>::threadFunction (this=0xa1479f0) at /usr/include/qt4/QtCore/qtconcurrentiteratekernel.h:225
No locals.
#13 0x00007ffff5802d1d in QtConcurrent::ThreadEngineBase::run (this=0xa147a30) at concurrent/qtconcurrentthreadengine.cpp:264
No locals.
#14 0x00007ffff5804e0a in QThreadPoolThread::run (this=0x7fffbc01eae0) at concurrent/qthreadpool.cpp:108
        r = 0xa147a30
        expired = <optimised out>
        locker = {val = 9476824}
#15 0x00007ffff5811e3c in QThreadPrivate::start (arg=0x7fffbc01eae0) at thread/qthread_unix.cpp:352
        __clframe = {__cancel_routine = 0x7ffff5810cd0 <QThreadPrivate::finish(void*)>, __cancel_arg = 0x7fffbc01eae0, __do_it = 1, __cancel_type = <optimised out>}
        thr = 0x7fffbc01eae0
        data = 0x7fffbc142460
        objectName = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 1}, alloc = 0, size = 0, data = 0x89b6ba <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 505}, alloc = 0, size = 0, data = 0x7ffff5c888fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x7fffbc03d320, static codecForCStrings = 0x0}
#16 0x00007fffedd1f6fa in start_thread (arg=0x7fff4178f700) at pthread_create.c:333
        __res = <optimised out>
        pd = 0x7fff4178f700
        now = <optimised out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140734291834624, -1143278170869003983, 0, 140736625934655, 140734291835328, 140736348823000, 1143000054205057329, 1143238296636164401}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimised out>
        pagesize_m1 = <optimised out>
        sp = <optimised out>
        freesize = <optimised out>
        __PRETTY_FUNCTION__ = "start_thread"
#17 0x00007ffff4248b5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
No locals.

Thread 18 (Thread 0x7fff41f90700 (LWP 10753)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225
No locals.
#1  0x00007ffff5812384 in QWaitConditionPrivate::wait (time=30000, this=0x7fffbc022850) at thread/qwaitcondition_unix.cpp:84
        tv = {tv_sec = 1470199622, tv_usec = 163723}
        ti = {tv_sec = 1470199652, tv_nsec = 163723000}
        code = <optimised out>
#2  QWaitCondition::wait (this=this@entry=0x7fffbc0deba0, mutex=mutex@entry=0x909ad8, time=30000) at thread/qwaitcondition_unix.cpp:158
No locals.
#3  0x00007ffff5804fe7 in QThreadPoolThread::run (this=0x7fffbc0deb90) at concurrent/qthreadpool.cpp:142
        r = <optimised out>
        expired = false
        locker = {val = 9476825}
#4  0x00007ffff5811e3c in QThreadPrivate::start (arg=0x7fffbc0deb90) at thread/qthread_unix.cpp:352
        __clframe = {__cancel_routine = 0x7ffff5810cd0 <QThreadPrivate::finish(void*)>, __cancel_arg = 0x7fffbc0deb90, __do_it = 1, __cancel_type = <optimised out>}
        thr = 0x7fffbc0deb90
        data = 0x7fffbc1421e0
        objectName = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 1}, alloc = 0, size = 0, data = 0x89b6ba <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 505}, alloc = 0, size = 0, data = 0x7ffff5c888fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x7fffbc073d80, static codecForCStrings = 0x0}
#5  0x00007fffedd1f6fa in start_thread (arg=0x7fff41f90700) at pthread_create.c:333
        __res = <optimised out>
        pd = 0x7fff41f90700
        now = <optimised out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140734300227328, -1143278170869003983, 0, 140736625934655, 140734300228032, 140736348611544, 1143001154253556017, 1143238296636164401}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimised out>
        pagesize_m1 = <optimised out>
        sp = <optimised out>
        freesize = <optimised out>
        __PRETTY_FUNCTION__ = "start_thread"
#6  0x00007ffff4248b5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
No locals.

Thread 17 (Thread 0x7fff42791700 (LWP 10752)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225
No locals.
#1  0x00007ffff5812384 in QWaitConditionPrivate::wait (time=30000, this=0x7fffbc0dc3e0) at thread/qwaitcondition_unix.cpp:84
        tv = {tv_sec = 1470199622, tv_usec = 163732}
        ti = {tv_sec = 1470199652, tv_nsec = 163732000}
        code = <optimised out>
#2  QWaitCondition::wait (this=this@entry=0x7fffbc0dc250, mutex=mutex@entry=0x909ad8, time=30000) at thread/qwaitcondition_unix.cpp:158
No locals.
#3  0x00007ffff5804fe7 in QThreadPoolThread::run (this=0x7fffbc0dc240) at concurrent/qthreadpool.cpp:142
        r = <optimised out>
        expired = false
        locker = {val = 9476825}
#4  0x00007ffff5811e3c in QThreadPrivate::start (arg=0x7fffbc0dc240) at thread/qthread_unix.cpp:352
        __clframe = {__cancel_routine = 0x7ffff5810cd0 <QThreadPrivate::finish(void*)>, __cancel_arg = 0x7fffbc0dc240, __do_it = 1, __cancel_type = <optimised out>}
        thr = 0x7fffbc0dc240
        data = 0x7fffbc141c40
        objectName = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 1}, alloc = 0, size = 0, data = 0x89b6ba <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 505}, alloc = 0, size = 0, data = 0x7ffff5c888fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x7fffbc074870, static codecForCStrings = 0x0}
#5  0x00007fffedd1f6fa in start_thread (arg=0x7fff42791700) at pthread_create.c:333
        __res = <optimised out>
        pd = 0x7fff42791700
        now = <optimised out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140734308620032, -1143278170869003983, 0, 140736625934655, 140734308620736, 140736348776248, 1143006648053598513, 1143238296636164401}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimised out>
        pagesize_m1 = <optimised out>
        sp = <optimised out>
        freesize = <optimised out>
        __PRETTY_FUNCTION__ = "start_thread"
#6  0x00007ffff4248b5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
No locals.

Thread 16 (Thread 0x7fff43012700 (LWP 10751)):
#0  0x00007ffff423ce8d in poll () at ../sysdeps/unix/syscall-template.S:84
No locals.
#1  0x00007fffed63339c in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#2  0x00007fffed6334ac in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#3  0x00007ffff59522ce in QEventDispatcherGlib::processEvents (this=0x7fff380008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:452
        d = 0x7fff380008e0
        canWait = true
        savedFlags = {i = 0}
        result = false
#4  0x00007ffff592018f in QEventLoop::processEvents (this=this@entry=0x7fff43011380, flags=...) at kernel/qeventloop.cpp:149
        d = 0x7fff38001d40
#5  0x00007ffff59204f5 in QEventLoop::exec (this=this@entry=0x7fff43011380, flags=...) at kernel/qeventloop.cpp:204
        d = 0x7fff38001d40
        locker = {val = 78686344}
#6  0x00007ffff580f549 in QThread::exec (this=this@entry=0x4d0bad0) at thread/qthread.cpp:538
        d = 0x4b0a800
        locker = {val = 78686344}
        eventLoop = {<QObject> = {_vptr.QObject = 0x7ffff5c86948 <vtable for QEventLoop+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff5a05d60 <qt_meta_stringdata_QObject> "QObject", data = 0x7ffff5a05e00 <qt_meta_data_QObject>, extradata = 0x7ffff5c7f100 <QObject::staticMetaObjectExtraData>}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x7ffff593cce0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}, d_ptr = {d = 0x7fff38001d40}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff5a0ede0 <qt_meta_stringdata_Qt> "Qt", data = 0x7ffff5a12700 <qt_meta_data_Qt>, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x89b680 <QObject::staticMetaObject>, stringdata = 0x7ffff5a189e0 <qt_meta_stringdata_QEventLoop> "QEventLoop", data = 0x7ffff5a18a00 <qt_meta_data_QEventLoop>, extradata = 0x7ffff5c82420 <QEventLoop::staticMetaObjectExtraData>}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x7ffff5986df0 <QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}}
        returnCode = <optimised out>
#7  0x00007ffff5900223 in QInotifyFileSystemWatcherEngine::run (this=0x4d0bad0) at io/qfilesystemwatcher_inotify.cpp:265
        sn = {<QObject> = {_vptr.QObject = 0x7ffff5c86b88 <vtable for QSocketNotifier+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff5a05d60 <qt_meta_stringdata_QObject> "QObject", data = 0x7ffff5a05e00 <qt_meta_data_QObject>, extradata = 0x7ffff5c7f100 <QObject::staticMetaObjectExtraData>}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x7ffff593cce0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}, d_ptr = {d = 0x7fff38001ba0}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff5a0ede0 <qt_meta_stringdata_Qt> "Qt", data = 0x7ffff5a12700 <qt_meta_data_Qt>, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x89b680 <QObject::staticMetaObject>, stringdata = 0x7ffff5a19c20 <qt_meta_stringdata_QSocketNotifier> "QSocketNotifier", data = 0x7ffff5a19c60 <qt_meta_data_QSocketNotifier>, extradata = 0x7ffff5c82470 <QSocketNotifier::staticMetaObjectExtraData>}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x7ffff5987300 <QSocketNotifier::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}, sockfd = 34, sntype = QSocketNotifier::Read, snenabled = true}
#8  0x00007ffff5811e3c in QThreadPrivate::start (arg=0x4d0bad0) at thread/qthread_unix.cpp:352
        __clframe = {__cancel_routine = 0x7ffff5810cd0 <QThreadPrivate::finish(void*)>, __cancel_arg = 0x4d0bad0, __do_it = 1, __cancel_type = <optimised out>}
        thr = 0x4d0bad0
        data = 0x4b2f240
        objectName = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 1}, alloc = 0, size = 0, data = 0x89b6ba <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 505}, alloc = 0, size = 0, data = 0x7ffff5c888fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x89b6a0 <QString::shared_null>, static codecForCStrings = 0x0}
#9  0x00007fffedd1f6fa in start_thread (arg=0x7fff43012700) at pthread_create.c:333
        __res = <optimised out>
        pd = 0x7fff43012700
        now = <optimised out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140734317537024, -1143278170869003983, 0, 140737488341887, 140734317537728, 78686376, 1143004518286690609, 1143238296636164401}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimised out>
        pagesize_m1 = <optimised out>
        sp = <optimised out>
        freesize = <optimised out>
        __PRETTY_FUNCTION__ = "start_thread"
#10 0x00007ffff4248b5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
No locals.

Thread 15 (Thread 0x7fff43813700 (LWP 10750)):
#0  0x00007ffff423ce8d in poll () at ../sysdeps/unix/syscall-template.S:84
No locals.
#1  0x00007fffed63339c in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#2  0x00007fffed6334ac in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#3  0x00007ffff59522ce in QEventDispatcherGlib::processEvents (this=0x7fff340008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:452
        d = 0x7fff340008e0
        canWait = true
        savedFlags = {i = 0}
        result = false
#4  0x00007ffff592018f in QEventLoop::processEvents (this=this@entry=0x7fff43812380, flags=...) at kernel/qeventloop.cpp:149
        d = 0x7fff34001f40
#5  0x00007ffff59204f5 in QEventLoop::exec (this=this@entry=0x7fff43812380, flags=...) at kernel/qeventloop.cpp:204
        d = 0x7fff34001f40
        locker = {val = 80786504}
#6  0x00007ffff580f549 in QThread::exec (this=this@entry=0x4b21850) at thread/qthread.cpp:538
        d = 0x4d0b3c0
        locker = {val = 80786504}
        eventLoop = {<QObject> = {_vptr.QObject = 0x7ffff5c86948 <vtable for QEventLoop+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff5a05d60 <qt_meta_stringdata_QObject> "QObject", data = 0x7ffff5a05e00 <qt_meta_data_QObject>, extradata = 0x7ffff5c7f100 <QObject::staticMetaObjectExtraData>}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x7ffff593cce0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}, d_ptr = {d = 0x7fff34001f40}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff5a0ede0 <qt_meta_stringdata_Qt> "Qt", data = 0x7ffff5a12700 <qt_meta_data_Qt>, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x89b680 <QObject::staticMetaObject>, stringdata = 0x7ffff5a189e0 <qt_meta_stringdata_QEventLoop> "QEventLoop", data = 0x7ffff5a18a00 <qt_meta_data_QEventLoop>, extradata = 0x7ffff5c82420 <QEventLoop::staticMetaObjectExtraData>}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x7ffff5986df0 <QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}}
        returnCode = <optimised out>
#7  0x00007ffff5900223 in QInotifyFileSystemWatcherEngine::run (this=0x4b21850) at io/qfilesystemwatcher_inotify.cpp:265
        sn = {<QObject> = {_vptr.QObject = 0x7ffff5c86b88 <vtable for QSocketNotifier+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff5a05d60 <qt_meta_stringdata_QObject> "QObject", data = 0x7ffff5a05e00 <qt_meta_data_QObject>, extradata = 0x7ffff5c7f100 <QObject::staticMetaObjectExtraData>}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x7ffff593cce0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}, d_ptr = {d = 0x7fff34001da0}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff5a0ede0 <qt_meta_stringdata_Qt> "Qt", data = 0x7ffff5a12700 <qt_meta_data_Qt>, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x89b680 <QObject::staticMetaObject>, stringdata = 0x7ffff5a19c20 <qt_meta_stringdata_QSocketNotifier> "QSocketNotifier", data = 0x7ffff5a19c60 <qt_meta_data_QSocketNotifier>, extradata = 0x7ffff5c82470 <QSocketNotifier::staticMetaObjectExtraData>}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x7ffff5987300 <QSocketNotifier::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}, sockfd = 31, sntype = QSocketNotifier::Read, snenabled = true}
#8  0x00007ffff5811e3c in QThreadPrivate::start (arg=0x4b21850) at thread/qthread_unix.cpp:352
        __clframe = {__cancel_routine = 0x7ffff5810cd0 <QThreadPrivate::finish(void*)>, __cancel_arg = 0x4b21850, __do_it = 1, __cancel_type = <optimised out>}
        thr = 0x4b21850
        data = 0x4cefae0
        objectName = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 1}, alloc = 0, size = 0, data = 0x89b6ba <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 505}, alloc = 0, size = 0, data = 0x7ffff5c888fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x89b6a0 <QString::shared_null>, static codecForCStrings = 0x0}
#9  0x00007fffedd1f6fa in start_thread (arg=0x7fff43813700) at pthread_create.c:333
        __res = <optimised out>
        pd = 0x7fff43813700
        now = <optimised out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140734325929728, -1143278170869003983, 0, 140737488341887, 140734325930432, 80786536, 1143005618335189297, 1143238296636164401}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimised out>
        pagesize_m1 = <optimised out>
        sp = <optimised out>
        freesize = <optimised out>
        __PRETTY_FUNCTION__ = "start_thread"
#10 0x00007ffff4248b5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
No locals.

Thread 14 (Thread 0x7fff44014700 (LWP 10749)):
#0  0x00007ffff423ce8d in poll () at ../sysdeps/unix/syscall-template.S:84
No locals.
#1  0x00007fffed63339c in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#2  0x00007fffed6334ac in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#3  0x00007ffff59522ce in QEventDispatcherGlib::processEvents (this=0x7fff3c0008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:452
        d = 0x7fff3c0008e0
        canWait = true
        savedFlags = {i = 0}
        result = false
#4  0x00007ffff592018f in QEventLoop::processEvents (this=this@entry=0x7fff44013380, flags=...) at kernel/qeventloop.cpp:149
        d = 0x7fff3c001740
#5  0x00007ffff59204f5 in QEventLoop::exec (this=this@entry=0x7fff44013380, flags=...) at kernel/qeventloop.cpp:204
        d = 0x7fff3c001740
        locker = {val = 80845320}
#6  0x00007ffff580f549 in QThread::exec (this=this@entry=0x4d161f0) at thread/qthread.cpp:538
        d = 0x4d19980
        locker = {val = 80845320}
        eventLoop = {<QObject> = {_vptr.QObject = 0x7ffff5c86948 <vtable for QEventLoop+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff5a05d60 <qt_meta_stringdata_QObject> "QObject", data = 0x7ffff5a05e00 <qt_meta_data_QObject>, extradata = 0x7ffff5c7f100 <QObject::staticMetaObjectExtraData>}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x7ffff593cce0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}, d_ptr = {d = 0x7fff3c001740}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff5a0ede0 <qt_meta_stringdata_Qt> "Qt", data = 0x7ffff5a12700 <qt_meta_data_Qt>, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x89b680 <QObject::staticMetaObject>, stringdata = 0x7ffff5a189e0 <qt_meta_stringdata_QEventLoop> "QEventLoop", data = 0x7ffff5a18a00 <qt_meta_data_QEventLoop>, extradata = 0x7ffff5c82420 <QEventLoop::staticMetaObjectExtraData>}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x7ffff5986df0 <QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}}
        returnCode = <optimised out>
#7  0x00007ffff5900223 in QInotifyFileSystemWatcherEngine::run (this=0x4d161f0) at io/qfilesystemwatcher_inotify.cpp:265
        sn = {<QObject> = {_vptr.QObject = 0x7ffff5c86b88 <vtable for QSocketNotifier+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff5a05d60 <qt_meta_stringdata_QObject> "QObject", data = 0x7ffff5a05e00 <qt_meta_data_QObject>, extradata = 0x7ffff5c7f100 <QObject::staticMetaObjectExtraData>}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x7ffff593cce0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}, d_ptr = {d = 0x7fff3c001550}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff5a0ede0 <qt_meta_stringdata_Qt> "Qt", data = 0x7ffff5a12700 <qt_meta_data_Qt>, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x89b680 <QObject::staticMetaObject>, stringdata = 0x7ffff5a19c20 <qt_meta_stringdata_QSocketNotifier> "QSocketNotifier", data = 0x7ffff5a19c60 <qt_meta_data_QSocketNotifier>, extradata = 0x7ffff5c82470 <QSocketNotifier::staticMetaObjectExtraData>}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x7ffff5987300 <QSocketNotifier::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}, sockfd = 29, sntype = QSocketNotifier::Read, snenabled = true}
#8  0x00007ffff5811e3c in QThreadPrivate::start (arg=0x4d161f0) at thread/qthread_unix.cpp:352
        __clframe = {__cancel_routine = 0x7ffff5810cd0 <QThreadPrivate::finish(void*)>, __cancel_arg = 0x4d161f0, __do_it = 1, __cancel_type = <optimised out>}
        thr = 0x4d161f0
        data = 0x4cfe6c0
        objectName = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 1}, alloc = 0, size = 0, data = 0x89b6ba <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 505}, alloc = 0, size = 0, data = 0x7ffff5c888fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x89b6a0 <QString::shared_null>, static codecForCStrings = 0x0}
#9  0x00007fffedd1f6fa in start_thread (arg=0x7fff44014700) at pthread_create.c:333
        __res = <optimised out>
        pd = 0x7fff44014700
        now = <optimised out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140734334322432, -1143278170869003983, 0, 140737488341887, 140734334323136, 80845352, 1143011116430199089, 1143238296636164401}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimised out>
        pagesize_m1 = <optimised out>
        sp = <optimised out>
        freesize = <optimised out>
        __PRETTY_FUNCTION__ = "start_thread"
#10 0x00007ffff4248b5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
No locals.

Thread 13 (Thread 0x7fffcc989700 (LWP 10745)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225
No locals.
#1  0x00007ffff5812384 in QWaitConditionPrivate::wait (time=30000, this=0x495ae00) at thread/qwaitcondition_unix.cpp:84
        tv = {tv_sec = 1470199622, tv_usec = 163709}
        ti = {tv_sec = 1470199652, tv_nsec = 163709000}
        code = <optimised out>
#2  QWaitCondition::wait (this=this@entry=0x4960780, mutex=mutex@entry=0x909ad8, time=30000) at thread/qwaitcondition_unix.cpp:158
No locals.
#3  0x00007ffff5804fe7 in QThreadPoolThread::run (this=0x4960770) at concurrent/qthreadpool.cpp:142
        r = <optimised out>
        expired = false
        locker = {val = 9476825}
#4  0x00007ffff5811e3c in QThreadPrivate::start (arg=0x4960770) at thread/qthread_unix.cpp:352
        __clframe = {__cancel_routine = 0x7ffff5810cd0 <QThreadPrivate::finish(void*)>, __cancel_arg = 0x4960770, __do_it = 1, __cancel_type = <optimised out>}
        thr = 0x4960770
        data = 0x142ea60
        objectName = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 1}, alloc = 0, size = 0, data = 0x89b6ba <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 505}, alloc = 0, size = 0, data = 0x7ffff5c888fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x4684d70, static codecForCStrings = 0x0}
#5  0x00007fffedd1f6fa in start_thread (arg=0x7fffcc989700) at pthread_create.c:333
        __res = <optimised out>
        pd = 0x7fffcc989700
        now = <optimised out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736625940224, -1143278170869003983, 0, 140737488342127, 8388608, 11042032, 1143311491947366705, 1143238296636164401}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimised out>
        pagesize_m1 = <optimised out>
        sp = <optimised out>
        freesize = <optimised out>
        __PRETTY_FUNCTION__ = "start_thread"
#6  0x00007ffff4248b5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
No locals.

Thread 12 (Thread 0x7fff63ffd700 (LWP 10714)):
#0  0x00007ffff423ce8d in poll () at ../sysdeps/unix/syscall-template.S:84
No locals.
#1  0x00007fffed63339c in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#2  0x00007fffed6334ac in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#3  0x00007ffff59522ce in QEventDispatcherGlib::processEvents (this=0x7fff5c0008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:452
        d = 0x7fff5c0008e0
        canWait = true
        savedFlags = {i = 0}
        result = false
#4  0x00007ffff592018f in QEventLoop::processEvents (this=this@entry=0x7fff63ffc3d0, flags=...) at kernel/qeventloop.cpp:149
        d = 0x7fff5c001ba0
#5  0x00007ffff59204f5 in QEventLoop::exec (this=this@entry=0x7fff63ffc3d0, flags=...) at kernel/qeventloop.cpp:204
        d = 0x7fff5c001ba0
        locker = {val = 14532088}
#6  0x00007ffff580f549 in QThread::exec (this=<optimised out>) at thread/qthread.cpp:538
        d = 0xddbd70
        locker = {val = 14532088}
        eventLoop = {<QObject> = {_vptr.QObject = 0x7ffff5c86948 <vtable for QEventLoop+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff5a05d60 <qt_meta_stringdata_QObject> "QObject", data = 0x7ffff5a05e00 <qt_meta_data_QObject>, extradata = 0x7ffff5c7f100 <QObject::staticMetaObjectExtraData>}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x7ffff593cce0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}, d_ptr = {d = 0x7fff5c001ba0}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff5a0ede0 <qt_meta_stringdata_Qt> "Qt", data = 0x7ffff5a12700 <qt_meta_data_Qt>, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x89b680 <QObject::staticMetaObject>, stringdata = 0x7ffff5a189e0 <qt_meta_stringdata_QEventLoop> "QEventLoop", data = 0x7ffff5a18a00 <qt_meta_data_QEventLoop>, extradata = 0x7ffff5c82420 <QEventLoop::staticMetaObjectExtraData>}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x7ffff5986df0 <QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}}
        returnCode = <optimised out>
#7  0x00007ffff5811e3c in QThreadPrivate::start (arg=0x148d290) at thread/qthread_unix.cpp:352
        __clframe = {__cancel_routine = 0x7ffff5810cd0 <QThreadPrivate::finish(void*)>, __cancel_arg = 0x148d290, __do_it = 1, __cancel_type = <optimised out>}
        thr = 0x148d290
        data = 0xdedd20
        objectName = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 1}, alloc = 0, size = 0, data = 0x89b6ba <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 505}, alloc = 0, size = 0, data = 0x7ffff5c888fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x89b6a0 <QString::shared_null>, static codecForCStrings = 0x0}
#8  0x00007fffedd1f6fa in start_thread (arg=0x7fff63ffd700) at pthread_create.c:333
        __res = <optimised out>
        pd = 0x7fff63ffd700
        now = <optimised out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140734871099136, -1143278170869003983, 0, 140737488340495, 140734871099840, 14532120, 1142935121815734577, 1143238296636164401}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimised out>
        pagesize_m1 = <optimised out>
        sp = <optimised out>
        freesize = <optimised out>
        __PRETTY_FUNCTION__ = "start_thread"
#9  0x00007ffff4248b5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
No locals.

Thread 11 (Thread 0x7fffb1291700 (LWP 10712)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
No locals.
#1  0x00007ffff2eb46c1 in ?? () from /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4
No symbol table info available.
#2  0x00007ffff31c4876 in ?? () from /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4
No symbol table info available.
#3  0x00007fffedd1f6fa in start_thread (arg=0x7fffb1291700) at pthread_create.c:333
        __res = <optimised out>
        pd = 0x7fffb1291700
        now = <optimised out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736165648128, -1143278170869003983, 0, 140737488337999, 140736165648832, 1, 1143106016416958769, 1143238296636164401}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimised out>
        pagesize_m1 = <optimised out>
        sp = <optimised out>
        freesize = <optimised out>
        __PRETTY_FUNCTION__ = "start_thread"
#4  0x00007ffff4248b5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
No locals.

Thread 10 (Thread 0x7fffb2283700 (LWP 10711)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
No locals.
#1  0x00007ffff31922dd in ?? () from /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4
No symbol table info available.
#2  0x00007ffff3192339 in ?? () from /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4
No symbol table info available.
#3  0x00007fffedd1f6fa in start_thread (arg=0x7fffb2283700) at pthread_create.c:333
        __res = <optimised out>
        pd = 0x7fffb2283700
        now = <optimised out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736182368000, -1143278170869003983, 0, 140737488306383, 140736182368704, 21553704, 1143112623150401841, 1143238296636164401}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimised out>
        pagesize_m1 = <optimised out>
        sp = <optimised out>
        freesize = <optimised out>
        __PRETTY_FUNCTION__ = "start_thread"
#4  0x00007ffff4248b5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
No locals.

Thread 9 (Thread 0x7fffb2a84700 (LWP 10710)):
#0  0x00007ffff423ce8d in poll () at ../sysdeps/unix/syscall-template.S:84
No locals.
#1  0x00007fffed63339c in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#2  0x00007fffed6334ac in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#3  0x00007ffff59522ce in QEventDispatcherGlib::processEvents (this=0x7fffa40008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:452
        d = 0x7fffa40008e0
        canWait = true
        savedFlags = {i = 0}
        result = false
#4  0x00007ffff592018f in QEventLoop::processEvents (this=this@entry=0x7fffb2a83380, flags=...) at kernel/qeventloop.cpp:149
        d = 0x7fffa4002a40
#5  0x00007ffff59204f5 in QEventLoop::exec (this=this@entry=0x7fffb2a83380, flags=...) at kernel/qeventloop.cpp:204
        d = 0x7fffa4002a40
        locker = {val = 15519768}
#6  0x00007ffff580f549 in QThread::exec (this=this@entry=0x12c2a30) at thread/qthread.cpp:538
        d = 0xeccf90
        locker = {val = 15519768}
        eventLoop = {<QObject> = {_vptr.QObject = 0x7ffff5c86948 <vtable for QEventLoop+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff5a05d60 <qt_meta_stringdata_QObject> "QObject", data = 0x7ffff5a05e00 <qt_meta_data_QObject>, extradata = 0x7ffff5c7f100 <QObject::staticMetaObjectExtraData>}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x7ffff593cce0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}, d_ptr = {d = 0x7fffa4002a40}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff5a0ede0 <qt_meta_stringdata_Qt> "Qt", data = 0x7ffff5a12700 <qt_meta_data_Qt>, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x89b680 <QObject::staticMetaObject>, stringdata = 0x7ffff5a189e0 <qt_meta_stringdata_QEventLoop> "QEventLoop", data = 0x7ffff5a18a00 <qt_meta_data_QEventLoop>, extradata = 0x7ffff5c82420 <QEventLoop::staticMetaObjectExtraData>}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x7ffff5986df0 <QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}}
        returnCode = <optimised out>
#7  0x00007ffff5900223 in QInotifyFileSystemWatcherEngine::run (this=0x12c2a30) at io/qfilesystemwatcher_inotify.cpp:265
        sn = {<QObject> = {_vptr.QObject = 0x7ffff5c86b88 <vtable for QSocketNotifier+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff5a05d60 <qt_meta_stringdata_QObject> "QObject", data = 0x7ffff5a05e00 <qt_meta_data_QObject>, extradata = 0x7ffff5c7f100 <QObject::staticMetaObjectExtraData>}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x7ffff593cce0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}, d_ptr = {d = 0x7fffa40028a0}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff5a0ede0 <qt_meta_stringdata_Qt> "Qt", data = 0x7ffff5a12700 <qt_meta_data_Qt>, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x89b680 <QObject::staticMetaObject>, stringdata = 0x7ffff5a19c20 <qt_meta_stringdata_QSocketNotifier> "QSocketNotifier", data = 0x7ffff5a19c60 <qt_meta_data_QSocketNotifier>, extradata = 0x7ffff5c82470 <QSocketNotifier::staticMetaObjectExtraData>}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x7ffff5987300 <QSocketNotifier::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}, sockfd = 23, sntype = QSocketNotifier::Read, snenabled = true}
#8  0x00007ffff5811e3c in QThreadPrivate::start (arg=0x12c2a30) at thread/qthread_unix.cpp:352
        __clframe = {__cancel_routine = 0x7ffff5810cd0 <QThreadPrivate::finish(void*)>, __cancel_arg = 0x12c2a30, __do_it = 1, __cancel_type = <optimised out>}
        thr = 0x12c2a30
        data = 0xde0b30
        objectName = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 1}, alloc = 0, size = 0, data = 0x89b6ba <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 505}, alloc = 0, size = 0, data = 0x7ffff5c888fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x89b6a0 <QString::shared_null>, static codecForCStrings = 0x0}
#9  0x00007fffedd1f6fa in start_thread (arg=0x7fffb2a84700) at pthread_create.c:333
        __res = <optimised out>
        pd = 0x7fffb2a84700
        now = <optimised out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736190760704, -1143278170869003983, 0, 140737488341519, 140736190761408, 15519800, 1143113723198900529, 1143238296636164401}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimised out>
        pagesize_m1 = <optimised out>
        sp = <optimised out>
        freesize = <optimised out>
        __PRETTY_FUNCTION__ = "start_thread"
#10 0x00007ffff4248b5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
No locals.

Thread 8 (Thread 0x7fffb3ac5700 (LWP 10707)):
#0  0x00007ffff423ed13 in select () at ../sysdeps/unix/syscall-template.S:84
No locals.
#1  0x00007ffff58fc62f in QProcessManager::run (this=0x7ffff5c89520 <processManager()::processManager>) at io/qprocess_unix.cpp:270
        readset = {fds_bits = {32, 0 <repeats 15 times>}}
        nselect = <optimised out>
        c = 0 '\000'
#2  0x00007ffff5811e3c in QThreadPrivate::start (arg=0x7ffff5c89520 <processManager()::processManager>) at thread/qthread_unix.cpp:352
        __clframe = {__cancel_routine = 0x7ffff5810cd0 <QThreadPrivate::finish(void*)>, __cancel_arg = 0x7ffff5c89520 <processManager()::processManager>, __do_it = 1, __cancel_type = <optimised out>}
        thr = 0x7ffff5c89520 <processManager()::processManager>
        data = 0x8f0e20
        objectName = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 1}, alloc = 0, size = 0, data = 0x89b6ba <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 505}, alloc = 0, size = 0, data = 0x7ffff5c888fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x89b6a0 <QString::shared_null>, static codecForCStrings = 0x0}
#3  0x00007fffedd1f6fa in start_thread (arg=0x7fffb3ac5700) at pthread_create.c:333
        __res = <optimised out>
        pd = 0x7fffb3ac5700
        now = <optimised out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736207804160, -1143278170869003983, 0, 140737488340127, 140736207804864, 9476248, 1143111486057810225, 1143238296636164401}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimised out>
        pagesize_m1 = <optimised out>
        sp = <optimised out>
        freesize = <optimised out>
        __PRETTY_FUNCTION__ = "start_thread"
#4  0x00007ffff4248b5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
No locals.

Thread 7 (Thread 0x7fffcd18a700 (LWP 10706)):
#0  0x00007ffff423ce8d in poll () at ../sysdeps/unix/syscall-template.S:84
No locals.
#1  0x00007fffed63339c in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#2  0x00007fffed6334ac in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#3  0x00007ffff59522ae in QEventDispatcherGlib::processEvents (this=0x7fffb80013e0, flags=...) at kernel/qeventdispatcher_glib.cpp:450
        d = 0x7fffb8001130
        canWait = true
        savedFlags = {i = 0}
        result = <optimised out>
#4  0x00007ffff592018f in QEventLoop::processEvents (this=this@entry=0x7fffb8003c80, flags=...) at kernel/qeventloop.cpp:149
        d = 0x7fffb8003ca0
#5  0x00007ffff59204f5 in QEventLoop::exec (this=0x7fffb8003c80, flags=...) at kernel/qeventloop.cpp:204
        d = 0x7fffb8003ca0
        locker = {val = 14307896}
#6  0x00007fffee4b6c1f in QCA::SyncThread::run() () from /usr/lib/x86_64-linux-gnu/libqca.so.2
No symbol table info available.
#7  0x00007ffff5811e3c in QThreadPrivate::start (arg=0xe2f2c0) at thread/qthread_unix.cpp:352
        __clframe = {__cancel_routine = 0x7ffff5810cd0 <QThreadPrivate::finish(void*)>, __cancel_arg = 0xe2f2c0, __do_it = 1, __cancel_type = <optimised out>}
        thr = 0xe2f2c0
        data = 0xe30600
        objectName = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 1}, alloc = 0, size = 0, data = 0x89b6ba <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 505}, alloc = 0, size = 0, data = 0x7ffff5c888fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x89b6a0 <QString::shared_null>, static codecForCStrings = 0x0}
#8  0x00007fffedd1f6fa in start_thread (arg=0x7fffcd18a700) at pthread_create.c:333
        __res = <optimised out>
        pd = 0x7fffcd18a700
        now = <optimised out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736634332928, -1143278170869003983, 0, 140737488341023, 8388608, 11041136, 1143308193949354289, 1143238296636164401}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimised out>
        pagesize_m1 = <optimised out>
        sp = <optimised out>
        freesize = <optimised out>
        __PRETTY_FUNCTION__ = "start_thread"
#9  0x00007ffff4248b5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
No locals.

Thread 4 (Thread 0x7fffceda2700 (LWP 10698)):
#0  0x00007ffff423ce8d in poll () at ../sysdeps/unix/syscall-template.S:84
No locals.
#1  0x00007fffed63339c in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#2  0x00007fffed633722 in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#3  0x00007fffd51ba916 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
No symbol table info available.
#4  0x00007fffed659bc5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#5  0x00007fffedd1f6fa in start_thread (arg=0x7fffceda2700) at pthread_create.c:333
        __res = <optimised out>
        pd = 0x7fffceda2700
        now = <optimised out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736663791360, -1143278170869003983, 0, 140736680571071, 140736663792064, 140736548895056, 1143315327890032945, 1143238296636164401}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimised out>
        pagesize_m1 = <optimised out>
        sp = <optimised out>
        freesize = <optimised out>
        __PRETTY_FUNCTION__ = "start_thread"
#6  0x00007ffff4248b5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
No locals.

Thread 3 (Thread 0x7fffcf5a3700 (LWP 10697)):
#0  0x00007ffff423ce8d in poll () at ../sysdeps/unix/syscall-template.S:84
No locals.
#1  0x00007fffed63339c in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#2  0x00007fffed6334ac in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#3  0x00007fffed6334e9 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#4  0x00007fffed659bc5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#5  0x00007fffedd1f6fa in start_thread (arg=0x7fffcf5a3700) at pthread_create.c:333
        __res = <optimised out>
        pd = 0x7fffcf5a3700
        now = <optimised out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736672184064, -1143278170869003983, 0, 140736680570719, 140736672184768, 0, 1143312029892020529, 1143238296636164401}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimised out>
        pagesize_m1 = <optimised out>
        sp = <optimised out>
        freesize = <optimised out>
        __PRETTY_FUNCTION__ = "start_thread"
#6  0x00007ffff4248b5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
No locals.

Thread 2 (Thread 0x7fffcfda4700 (LWP 10696)):
#0  0x00007ffff423ce8d in poll () at ../sysdeps/unix/syscall-template.S:84
No locals.
#1  0x00007fffed63339c in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#2  0x00007fffed6334ac in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#3  0x00007fffcfdac28d in ?? () from /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so
No symbol table info available.
#4  0x00007fffed659bc5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#5  0x00007fffedd1f6fa in start_thread (arg=0x7fffcfda4700) at pthread_create.c:333
        __res = <optimised out>
        pd = 0x7fffcfda4700
        now = <optimised out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736680576768, -1143278170869003983, 0, 140737488338511, 140736680577472, 10446992, 1143313129940519217, 1143238296636164401}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimised out>
        pagesize_m1 = <optimised out>
        sp = <optimised out>
        freesize = <optimised out>
        __PRETTY_FUNCTION__ = "start_thread"
#6  0x00007ffff4248b5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
No locals.

Thread 1 (Thread 0x7ffff7f89200 (LWP 10689)):
#0  0x00007ffff61409af in QgsMapRendererParallelJob::cancel (this=0xaaf3100) at /home/nyall/dev/QGIS/src/core/qgsmaprendererparalleljob.cpp:95
        it = {i = 0x90a34b8}
        __FUNCTION__ = "cancel"
#1  0x00007ffff6e6bdac in QgsMapCanvas::stopRendering (this=0x10c76d0) at /home/nyall/dev/QGIS/src/gui/qgsmapcanvas.cpp:702
        __FUNCTION__ = "stopRendering"
#2  0x00007ffff6e6ab01 in QgsMapCanvas::refreshMap (this=0x10c76d0) at /home/nyall/dev/QGIS/src/gui/qgsmapcanvas.cpp:575
        __FUNCTION__ = "refreshMap"
        expressionContext = {static EXPR_FIELDS = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 1}, alloc = 0, size = 0, data = 0x89b6ba <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 505}, alloc = 0, size = 0, data = 0x7ffff5c888fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x27f1e30, static codecForCStrings = 0x0}, static EXPR_FEATURE = {static null = <same as static member of an already seen type>, static shared_null = <same as static member of an already seen type>, static shared_empty = <same as static member of an already seen type>, d = 0x278ac00, static codecForCStrings = 0x0}, static EXPR_ORIGINAL_VALUE = {static null = <same as static member of an already seen type>, static shared_null = <same as static member of an already seen type>, static shared_empty = <same as static member of an already seen type>, d = 0x281d5b0, static codecForCStrings = 0x0}, static EXPR_SYMBOL_COLOR = {static null = <same as static member of an already seen type>, static shared_null = <same as static member of an already seen type>, static shared_empty = <same as static member of an already seen type>, d = 0x27d1fd0, static codecForCStrings = 0x0}, static EXPR_SYMBOL_ANGLE = {static null = <same as static member of an already seen type>, static shared_null = <same as static member of an already seen type>, static shared_empty = <same as static member of an already seen type>, d = 0x27aa900, static codecForCStrings = 0x0}, static EXPR_GEOMETRY_PART_COUNT = {static null = <same as static member of an already seen type>, static shared_null = <same as static member of an already seen type>, static shared_empty = <same as static member of an already seen type>, d = 0x2790440, static codecForCStrings = 0x0}, static EXPR_GEOMETRY_PART_NUM = {static null = <same as static member of an already seen type>, static shared_null = <same as static member of an already seen type>, static shared_empty = <same as static member of an already seen type>, d = 0x27ced20, static codecForCStrings = 0x0}, static EXPR_GEOMETRY_POINT_COUNT = {static null = <same as static member of an already seen type>, static shared_null = <same as static member of an already seen type>, static shared_empty = <same as static member of an already seen type>, d = 0x2827620, static codecForCStrings = 0x0}, static EXPR_GEOMETRY_POINT_NUM = {static null = <same as static member of an already seen type>, static shared_null = <same as static member of an already seen type>, static shared_empty = <same as static member of an already seen type>, d = 0x27ece00, static codecForCStrings = 0x0}, mStack = {{p = {static shared_null = {ref = {_q_value = 1}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0x144dcc0}, d = 0x144dcc0}}, mHighlightedVariables = {<QList<QString>> = {{p = {static shared_null = {ref = {_q_value = 1}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0x7fffffffd090}, d = 0x7fffffffd090}}, <No data fields>}, mCachedValues = {{d = 0x7fffffffd080, e = 0x7fffffffd080}}}
        layersForGeometryCache = {<QList<QString>> = {{p = {static shared_null = {ref = {_q_value = 1}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0x0}, d = 0x0}}, <No data fields>}
#3  0x00007ffff6f4727b in QgsMapCanvas::qt_static_metacall (_o=0x10c76d0, _c=QMetaObject::InvokeMetaMethod, _id=44, _a=0x7fffffffd1d0) at src/gui/moc_qgsmapcanvas.cxx:176
        _t = 0x10c76d0
#4  0x00007ffff5936010 in QMetaObject::activate (sender=sender@entry=0xa92e580, m=m@entry=0x7ffff5c84a80 <QSingleShotTimer::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at kernel/qobject.cpp:3567
        receiverInSameThread = true
        previousSender = 0x0
        callFunction = 0x7ffff6f46c56 <QgsMapCanvas::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>
        receiver = 0x10c76d0
        currentSender = {sender = 0xa92e580, signal = 4, ref = 1}
        method_relative = 44
        c = 0x6aa2fc0
        last = 0x6aa2fc0
        signalOffset = <optimised out>
        methodOffset = <optimised out>
        signal_index = <optimised out>
        signal_absolute_index = <optimised out>
        empty_argv = {0x0}
        currentThreadId = 140737353650688
        locker = {val = 14414736}
        connectionLists = <optimised out>
        list = 0x4b84af0
#5  0x00007ffff594087a in QSingleShotTimer::timeout (this=0xa92e580) at .moc/release-shared/qtimer.moc:96
No locals.
#6  QSingleShotTimer::timerEvent (this=0xa92e580) at kernel/qtimer.cpp:317
No locals.
#7  0x00007ffff593bc83 in QObject::event (this=0xa92e580, e=<optimised out>) at kernel/qobject.cpp:1253
No locals.
#8  0x00007ffff4c67fdc in QApplicationPrivate::notify_helper (this=this@entry=0x909bd0, receiver=receiver@entry=0xa92e580, e=e@entry=0x7fffffffd5b0) at kernel/qapplication.cpp:4570
        consumed = <optimised out>
#9  0x00007ffff4c6ef16 in QApplication::notify (this=0x7fffffffe1d0, receiver=0xa92e580, e=0x7fffffffd5b0) at kernel/qapplication.cpp:4356
        w = 0xa92e580
        extra = <optimised out>
        isProxyWidget = <optimised out>
        d = <optimised out>
        res = false
#10 0x00007ffff5ffe86b in QgsApplication::notify (this=0x7fffffffe1d0, receiver=0xa92e580, event=0x7fffffffd5b0) at /home/nyall/dev/QGIS/src/core/qgsapplication.cpp:283
        done = true
        __FUNCTION__ = "notify"
#11 0x00007ffff592190d in QCoreApplication::notifyInternal (this=0x7fffffffe1d0, receiver=0xa92e580, event=event@entry=0x7fffffffd5b0) at kernel/qcoreapplication.cpp:955
        result = false
        cbdata = {0xa92e580, 0x7fffffffd5b0, 0x7fffffffd53f}
        d = <optimised out>
        threadData = 0x8e4d90
        returnValue = <optimised out>
#12 0x00007ffff5954780 in QCoreApplication::sendEvent (event=0x7fffffffd5b0, receiver=<optimised out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
No locals.
#13 QTimerInfoList::activateTimers (this=0x909660) at kernel/qeventdispatcher_unix.cpp:621
        e = {<QEvent> = {_vptr.QEvent = 0x7ffff5c84730 <vtable for QTimerEvent+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff5a18be0 <qt_meta_stringdata_QEvent> "QEvent", data = 0x7ffff5a195e0 <qt_meta_data_QEvent>, extradata = 0x0}}, d = 0x0, t = 1, posted = 0, spont = 0, m_accept = 1, reserved = 0}, id = 1962934368}
        currentTimerInfo = 0x0
        n_act = 1
        maxCount = <optimised out>
        currentTime = {tv_sec = 97843, tv_usec = 780312}
#14 0x00007ffff5951929 in timerSourceDispatch (source=<optimised out>) at kernel/qeventdispatcher_glib.cpp:193
        timerSource = <optimised out>
#15 idleTimerSourceDispatch (source=<optimised out>) at kernel/qeventdispatcher_glib.cpp:240
        timerSource = <optimised out>
#16 0x00007fffed6331a7 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#17 0x00007fffed633400 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#18 0x00007fffed6334ac in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#19 0x00007ffff59522ae in QEventDispatcherGlib::processEvents (this=0x8ed4f0, flags=...) at kernel/qeventdispatcher_glib.cpp:450
        d = 0x8ed790
        canWait = true
        savedFlags = {i = 0}
        result = <optimised out>
#20 0x00007ffff4d15616 in QGuiEventDispatcherGlib::processEvents (this=<optimised out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
        d = 0x8ed790
        saved_flags = {i = 0}
        returnValue = <optimised out>
#21 0x00007ffff592018f in QEventLoop::processEvents (this=this@entry=0x7fffffffd830, flags=...) at kernel/qeventloop.cpp:149
        d = 0xdaba10
#22 0x00007ffff59204f5 in QEventLoop::exec (this=this@entry=0x7fffffffd830, flags=...) at kernel/qeventloop.cpp:204
        d = 0xdaba10
        locker = {val = 9326296}
#23 0x00007ffff59264b9 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1227
        threadData = 0x8e4d90
        eventLoop = {<QObject> = {_vptr.QObject = 0x7ffff5c86948 <vtable for QEventLoop+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff5a05d60 <qt_meta_stringdata_QObject> "QObject", data = 0x7ffff5a05e00 <qt_meta_data_QObject>, extradata = 0x7ffff5c7f100 <QObject::staticMetaObjectExtraData>}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x7ffff593cce0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}, d_ptr = {d = 0xdaba10}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff5a0ede0 <qt_meta_stringdata_Qt> "Qt", data = 0x7ffff5a12700 <qt_meta_data_Qt>, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x89b680 <QObject::staticMetaObject>, stringdata = 0x7ffff5a189e0 <qt_meta_stringdata_QEventLoop> "QEventLoop", data = 0x7ffff5a18a00 <qt_meta_data_QEventLoop>, extradata = 0x7ffff5c82420 <QEventLoop::staticMetaObjectExtraData>}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x7ffff5986df0 <QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}}
        returnCode = <optimised out>
#24 0x000000000040a191 in main (argc=1, argv=0x7fffffffe4b8) at /home/nyall/dev/QGIS/src/app/main.cpp:1266
        style = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 1}, alloc = 0, size = 0, data = 0x89b6ba <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 505}, alloc = 0, size = 0, data = 0x7ffff5c888fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0xb29380, static codecForCStrings = 0x0}
        mySplashPath = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 1}, alloc = 0, size = 0, data = 0x89b6ba <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 505}, alloc = 0, size = 0, data = 0x7ffff5c888fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0xbcb730, static codecForCStrings = 0x0}
        qgis = 0xd89340
        retval = 0
        customizationsettings = 0xadf400
        systemEnvVars = {{d = 0xae3f00, e = 0xae3f00}}
        myUserLocale = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 1}, alloc = 0, size = 0, data = 0x89b6ba <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 505}, alloc = 0, size = 0, data = 0x7ffff5c888fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0xacfbe0, static codecForCStrings = 0x0}
        myPixmap = {<QPaintDevice> = {_vptr.QPaintDevice = 0x7ffff5761cf0 <vtable for QPixmap+16>, painters = 0}, data = {d = 0xae1ab0}}
        myLocaleOverrideFlag = false
        qgistor = {<QObject> = {_vptr.QObject = 0x7ffff5c86d08 <vtable for QTranslator+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff5a05d60 <qt_meta_stringdata_QObject> "QObject", data = 0x7ffff5a05e00 <qt_meta_data_QObject>, extradata = 0x7ffff5c7f100 <QObject::staticMetaObjectExtraData>}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x7ffff593cce0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}, d_ptr = {d = 0xbdf780}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff5a0ede0 <qt_meta_stringdata_Qt> "Qt", data = 0x7ffff5a12700 <qt_meta_data_Qt>, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x89b680 <QObject::staticMetaObject>, stringdata = 0x7ffff5a19ea0 <qt_meta_stringdata_QTranslator> "QTranslator", data = 0x7ffff5a19ec0 <qt_meta_data_QTranslator>, extradata = 0x7ffff5c82490 <QTranslator::staticMetaObjectExtraData>}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x7ffff5987600 <QTranslator::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}}
        w = 600
        mypSplash = 0xc5af80
        mySettings = {<QObject> = {_vptr.QObject = 0x7ffff5c85de8 <vtable for QSettings+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff5a05d60 <qt_meta_stringdata_QObject> "QObject", data = 0x7ffff5a05e00 <qt_meta_data_QObject>, extradata = 0x7ffff5c7f100 <QObject::staticMetaObjectExtraData>}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x7ffff593cce0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}, d_ptr = {d = 0xae2350}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff5a0ede0 <qt_meta_stringdata_Qt> "Qt", data = 0x7ffff5a12700 <qt_meta_data_Qt>, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x89b680 <QObject::staticMetaObject>, stringdata = 0x7ffff5a17ba0 <qt_meta_stringdata_QSettings> "QSettings", data = 0x7ffff5a17bc0 <qt_meta_data_QSettings>, extradata = 0x7ffff5c82370 <QSettings::staticMetaObjectExtraData>}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x7ffff59858f0 <QSettings::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}}
        useCustomVars = false
        i18nPath = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 1}, alloc = 0, size = 0, data = 0x89b6ba <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 505}, alloc = 0, size = 0, data = 0x7ffff5c888fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0xbcc3b0, static codecForCStrings = 0x0}
        qttor = {<QObject> = {_vptr.QObject = 0x7ffff5c86d08 <vtable for QTranslator+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff5a05d60 <qt_meta_stringdata_QObject> "QObject", data = 0x7ffff5a05e00 <qt_meta_data_QObject>, extradata = 0x7ffff5c7f100 <QObject::staticMetaObjectExtraData>}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x7ffff593cce0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}, d_ptr = {d = 0xb984f0}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff5a0ede0 <qt_meta_stringdata_Qt> "Qt", data = 0x7ffff5a12700 <qt_meta_data_Qt>, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x89b680 <QObject::staticMetaObject>, stringdata = 0x7ffff5a19ea0 <qt_meta_stringdata_QTranslator> "QTranslator", data = 0x7ffff5a19ec0 <qt_meta_data_QTranslator>, extradata = 0x7ffff5c82490 <QTranslator::staticMetaObjectExtraData>}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x7ffff5987600 <QTranslator::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}}
        h = 300
        __FUNCTION__ = "main"
        mySnapshotFileName = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 1}, alloc = 0, size = 0, data = 0x89b6ba <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 505}, alloc = 0, size = 0, data = 0x7ffff5c888fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x7ffff5c888e0 <QString::shared_empty>, static codecForCStrings = 0x0}
        mySnapshotWidth = 800
        mySnapshotHeight = 600
        myHideSplash = false
        mySkipVersionCheck = false
        myRestoreDefaultWindowState = false
        myRestorePlugins = true
        myCustomization = true
        dxfOutputFile = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 1}, alloc = 0, size = 0, data = 0x89b6ba <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 505}, alloc = 0, size = 0, data = 0x7ffff5c888fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x89b6a0 <QString::shared_null>, static codecForCStrings = 0x0}
        dxfSymbologyMode = QgsDxfExport::SymbolLayerSymbology
        dxfScaleDenom = 50000
        dxfEncoding = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 1}, alloc = 0, size = 0, data = 0x89b6ba <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 505}, alloc = 0, size = 0, data = 0x7ffff5c888fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x8dec60, static codecForCStrings = 0x0}
        dxfPreset = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 1}, alloc = 0, size = 0, data = 0x89b6ba <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 505}, alloc = 0, size = 0, data = 0x7ffff5c888fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x89b6a0 <QString::shared_null>, static codecForCStrings = 0x0}
        dxfExtent = {xmin = 0, ymin = 0, xmax = 0, ymax = 0}
        myInitialExtent = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 1}, alloc = 0, size = 0, data = 0x89b6ba <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 505}, alloc = 0, size = 0, data = 0x7ffff5c888fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x8edba0, static codecForCStrings = 0x0}
        myTranslationCode = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 1}, alloc = 0, size = 0, data = 0x89b6ba <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 505}, alloc = 0, size = 0, data = 0x7ffff5c888fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0xae26b0, static codecForCStrings = 0x0}
        configpath = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 1}, alloc = 0, size = 0, data = 0x89b6ba <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 505}, alloc = 0, size = 0, data = 0x7ffff5c888fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x89b6a0 <QString::shared_null>, static codecForCStrings = 0x0}
        optionpath = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 1}, alloc = 0, size = 0, data = 0x89b6ba <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 505}, alloc = 0, size = 0, data = 0x7ffff5c888fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x89b6a0 <QString::shared_null>, static codecForCStrings = 0x0}
        authdbdirectory = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 1}, alloc = 0, size = 0, data = 0x89b6ba <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 505}, alloc = 0, size = 0, data = 0x7ffff5c888fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x89b6a0 <QString::shared_null>, static codecForCStrings = 0x0}
        pythonfile = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 1}, alloc = 0, size = 0, data = 0x89b6ba <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 505}, alloc = 0, size = 0, data = 0x7ffff5c888fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x89b6a0 <QString::shared_null>, static codecForCStrings = 0x0}
        customizationfile = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 1}, alloc = 0, size = 0, data = 0x89b6ba <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 505}, alloc = 0, size = 0, data = 0x7ffff5c888fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x89b6a0 <QString::shared_null>, static codecForCStrings = 0x0}
        args = {<QList<QString>> = {{p = {static shared_null = {ref = {_q_value = 1}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0x909a20}, d = 0x909a20}}, <No data fields>}
        myUseGuiFlag = true
        myApp = {<QApplication> = {<QCoreApplication> = {<QObject> = {_vptr.QObject = 0x7ffff692d3b0 <vtable for QgsApplication+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff5a05d60 <qt_meta_stringdata_QObject> "QObject", data = 0x7ffff5a05e00 <qt_meta_data_QObject>, extradata = 0x7ffff5c7f100 <QObject::staticMetaObjectExtraData>}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x7ffff593cce0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}, d_ptr = {d = 0x909bd0}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff5a0ede0 <qt_meta_stringdata_Qt> "Qt", data = 0x7ffff5a12700 <qt_meta_data_Qt>, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x89b680 <QObject::staticMetaObject>, stringdata = 0x7ffff5a18a80 <qt_meta_stringdata_QCoreApplication> "QCoreApplication", data = 0x7ffff5a18b20 <qt_meta_data_QCoreApplication>, extradata = 0x7ffff5c82430 <QCoreApplication::staticMetaObjectExtraData>}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x7ffff5986f40 <QCoreApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}, static self = 0x0}, static staticMetaObject = {d = {superdata = 0x7ffff5c86a80 <QCoreApplication::staticMetaObject>, stringdata = 0x7ffff5319c80 <qt_meta_stringdata_QApplication> "QApplication", data = 0x7ffff5319ec0 <qt_meta_data_QApplication>, extradata = 0x7ffff574e940 <QApplication::staticMetaObjectExtraData>}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x7ffff4c6cbe0 <QApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}}, static staticMetaObject = {d = {superdata = 0x7ffff575ef80 <QApplication::staticMetaObject>, stringdata = 0x7ffff658dca0 <qt_meta_stringdata_QgsApplication> "QgsApplication", data = 0x7ffff658dc20 <qt_meta_data_QgsApplication>, extradata = 0x7ffff691ff70 <QgsApplication::staticMetaObjectExtraData>}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x7ffff64e06c0 <QgsApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}, static QGIS_ORGANIZATION_NAME = 0x7ffff6511e2c "QGIS", static QGIS_ORGANIZATION_DOMAIN = 0x7ffff6511e31 "qgis.org", static QGIS_APPLICATION_NAME = 0x7ffff6511e3a "QGIS2", static mFileOpenEventReceiver29900 = 0xd89340, static mFileOpenEventList29900 = {<QList<QString>> = {{p = {static shared_null = {ref = {_q_value = 1}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0x89b700 <QListData::shared_null>}, d = 0x89b700 <QListData::shared_null>}}, <No data fields>}, static mUIThemeName29900 = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 1}, alloc = 0, size = 0, data = 0x89b6ba <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 505}, alloc = 0, size = 0, data = 0x7ffff5c888fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x89b6a0 <QString::shared_null>, static codecForCStrings = 0x0}, static mPrefixPath29900 = {static null = <same as static member of an already seen type>, static shared_null = <same as static member of an already seen type>, static shared_empty = <same as static member of an already seen type>, d = 0x89b6a0 <QString::shared_null>, static codecForCStrings = 0x0}, static mPluginPath29900 = {static null = <same as static member of an already seen type>, static shared_null = <same as static member of an already seen type>, static shared_empty = <same as static member of an already seen type>, d = 0xade9a0, static codecForCStrings = 0x0}, static mPkgDataPath29900 = {static null = <same as static member of an already seen type>, static shared_null = <same as static member of an already seen type>, static shared_empty = <same as static member of an already seen type>, d = 0x9d7660, static codecForCStrings = 0x0}, static mLibraryPath29900 = {static null = <same as static member of an already seen type>, static shared_null = <same as static member of an already seen type>, static shared_empty = <same as static member of an already seen type>, d = 0xadec40, static codecForCStrings = 0x0}, static mLibexecPath29900 = {static null = <same as static member of an already seen type>, static shared_null = <same as static member of an already seen type>, static shared_empty = <same as static member of an already seen type>, d = 0xae0720, static codecForCStrings = 0x0}, static mThemeName29900 = {static null = <same as static member of an already seen type>, static shared_null = <same as static member of an already seen type>, static shared_empty = <same as static member of an already seen type>, d = 0x138f700, static codecForCStrings = 0x0}, static mDefaultSvgPaths29900 = {<QList<QString>> = {{p = {static shared_null = {ref = {_q_value = 1}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0x280e600}, d = 0x280e600}}, <No data fields>}, static mSystemEnvVars29900 = {{d = 0x0, e = 0x0}}, static mConfigPath29900 = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 1}, alloc = 0, size = 0, data = 0x89b6ba <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 505}, alloc = 0, size = 0, data = 0x7ffff5c888fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0xadeb20, static codecForCStrings = 0x0}, static mRunningFromBuildDir29900 = true, static mBuildSourcePath29900 = {static null = <same as static member of an already seen type>, static shared_null = <same as static member of an already seen type>, static shared_empty = <same as static member of an already seen type>, d = 0x9d7660, static codecForCStrings = 0x0}, static mBuildOutputPath29900 = {static null = <same as static member of an already seen type>, static shared_null = <same as static member of an already seen type>, static shared_empty = <same as static member of an already seen type>, d = 0xae00a0, static codecForCStrings = 0x0}, static mGdalSkipList29900 = {<QList<QString>> = {{p = {static shared_null = {ref = {_q_value = 1}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0x89b700 <QListData::shared_null>}, d = 0x89b700 <QListData::shared_null>}}, <No data fields>}, static mMaxThreads29900 = -1, static mAuthDbDirPath29900 = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 1}, alloc = 0, size = 0, data = 0x89b6ba <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 505}, alloc = 0, size = 0, data = 0x7ffff5c888fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0xadeb20, static codecForCStrings = 0x0}, static sUserName = {static null = <same as static member of an already seen type>, static shared_null = <same as static member of an already seen type>, static shared_empty = <same as static member of an already seen type>, d = 0x13b44a0, static codecForCStrings = 0x0}, static sUserFullName = {static null = <same as static member of an already seen type>, static shared_null = <same as static member of an already seen type>, static shared_empty = <same as static member of an already seen type>, d = 0x494f3f0, static codecForCStrings = 0x0}, static sPlatformName = {static null = <same as static member of an already seen type>, static shared_null = <same as static member of an already seen type>, static shared_empty = <same as static member of an already seen type>, d = 0x2881b20, static codecForCStrings = 0x0}, mIconCache = {{d = 0x11c3ed0, e = 0x11c3ed0}}}

@wonder-sk
Copy link
Member Author

The crash should be fixed in 23909a1

@nyalldawson
Copy link
Collaborator

@wonder-sk thanks!

Do you think it makes sense to remove QgsInterruptionChecker now, and replace QgsVectorLayerRendererInterruptionChecker with a QgsFeedback subclass? Seems look a lot of overlap there now.

@wonder-sk
Copy link
Member Author

Yeah very good point @nyalldawson

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
API Break! Breaks stable API. Proceed with extreme caution!!
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants