[QGIS-Developer] symbolLayerCount() on many layers crashes QGIS 3.38..
Info O.GIS
info at opengis.it
Tue Oct 15 07:23:26 PDT 2024
I attached a debugger to QGIS and I get this error on crash, any ideas on how to proceed?
Exception thrown at 0x00007FFFD0E9BD63 (Qt5Core.dll) in qgis-bin.exe: 0xC0000005: Access violation reading location 0x0000000000000024.
Andrea Ordonselli
O.GIS - opengis.it
Da "Info O.GIS" info at opengis.it
A "qgis-developer" qgis-developer at lists.osgeo.org
Cc
Data Fri, 6 Sep 2024 10:49:10 +0200
Oggetto symbolLayerCount() on many layers crashes QGIS 3.38..
Good morning,
I've done a lot of tests and I can't figure it out.
QGIS 3.36 and earlier do not show this problem, from QGIS 3.38... version the error occurs.
Situation:
I'm running code with qgis2web(plugin), if I use symbol.symbolLayerCount() on a single layer there are no problems and there are no problems even if I add further layers (one at a time). But if I use symbol.symbolLayerCount() at startup on many layers the crash occurs. It almost seems like there is a memory error, but why?
The PC I use is extremely powerful.
How to reproduce the error:
Insert many layers into QGIS 3.38.. , even with the same source, use the categorized style on a field with many values.
Make all the layers visible and start qgis2web, click on Preview (if you have qtwebengine installed) or on Export
Video:
I attach a gif of the behavior. First I use qgis2web with just one layer and add the others one at a time.
Then I reload the plugin and use qgis2web with all layers together and show the error.
Example project:
I attach an example project
Python Stack Trace:
Windows fatal exception: access violation
Current thread 0x00002128 (most recent call first):
File "C:\Users/Utente/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\qgis2web\leafletLayerScripts.py", line 511 in buildPointJSON
slCount = symbol.symbolLayerCount()
File "C:\Users/Utente/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\qgis2web\leafletLayerScripts.py", line 422 in pointLayer
useMultiStyle) = buildPointJSON(symbol, safeLayerName, usedFields,
File "C:\Users/Utente/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\qgis2web\leafletLayerScripts.py", line 388 in getLayer
useMultiStyle) = pointLayer(layer, safeLayerName, interactive,
File "C:\Users/Utente/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\qgis2web\leafletLayerScripts.py", line 132 in writeVectorLayer
useMultiStyle) = getLayer(layer, renderer, safeLayerName, interactive,
File "C:\Users/Utente/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\qgis2web\leafletWriter.py", line 276 in writeLeaflet
useOSMB) = writeVectorLayer(layer, safeLayerName,
File "C:\Users/Utente/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\qgis2web\leafletWriter.py", line 94 in write
self.preview_file = self.writeLeaflet(
File "C:\Users/Utente/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\qgis2web\maindialog.py", line 453 in createPreview
preview_file = writer.write(self.iface, dest_folder=utils.tempFolder()).index_file
File "C:\Users/Utente/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\qgis2web\maindialog.py", line 491 in previewMap
preview_file = self.createPreview()
Thank you all
Andrea Ordonselli
O.GIS - opengis.it
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20241015/5b3b1f8f/attachment.htm>
More information about the QGIS-Developer
mailing list