Bug report #9973
Multi-Thread-Rendering: Qt Concurrent has caught an exception thrown from a worker thread
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
History
#1 Updated by Jürgen Fischer over 10 years ago
- Resolution set to fixed/implemented
- Status changed from Open to Closed
fixed in aaf4ca38