Bug report #9973

Multi-Thread-Rendering: Qt Concurrent has caught an exception thrown from a worker thread

Added by Alvaro Huarte over 6 years ago. Updated over 6 years ago.

Status:Closed
Priority:High
Assignee:-
Category:-
Affected QGIS version:master Regression?:No
Operating System: Easy fix?:No
Pull Request or Patch supplied:No Resolution:fixed/implemented
Crashes QGIS or corrupts data:Yes Copied to github as #:18468

Description

If one error (e.g. GEOSException) is throwed within of 'QgsMapRendererCustomPainterJob::doRender()' function, it is uncaught and stops fully the current rendering task.

I get this message:

"Qt Concurrent has caught an exception thrown from a worker thread" 
"This is not supported, exceptions thrown in worker threads must be caught before control returns to Qt Concurrent"

The example of #9861 can be used (it contains invalid geometries).
The project configures an offset to the geometries to draw. Because of them are invalid 'GEOSOffsetCurve' throws one uncaught GEOSException.

I'm implementing ST_MakeValid function in QgsGeometry to solve this issue and then convert to valid the self-crossing geometries, but I can not catch GEOSException exceptions.


Related issues

Related to QGIS Application - Bug report #9861: self crossing lines stop rendering if offset is set Closed 2014-03-24

History

#1 Updated by Jürgen Fischer over 6 years ago

  • Resolution set to fixed/implemented
  • Status changed from Open to Closed

fixed in aaf4ca38

Also available in: Atom PDF