Bug report #8724
Reprojecting and identifying a wms layer crashes QGIS
Status: | Closed | ||
---|---|---|---|
Priority: | Severe/Regression | ||
Assignee: | Radim Blazek | ||
Category: | Web Services clients/WMS | ||
Affected QGIS version: | master | Regression?: | No |
Operating System: | Easy fix?: | No | |
Pull Request or Patch supplied: | No | Resolution: | |
Crashes QGIS or corrupts data: | Yes | Copied to github as #: | 17440 |
Description
1. load
url=http://www502.regione.toscana.it/wmsraster/com.rt.wms.RTmap/wms?map%3Dwmsambamm/rt_ambamm.idcomuni.rt.poly
EPSG:25832
2. activate OTF reprojection
3. crash
qgis.bin: malloc.c:2369: sysmalloc: Assertion `(old_top (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - _builtin_offsetof (struct malloc_chunk, fd)))) && old_size 0) || ((unsigned long) (old_size) >= (unsigned long)((((_builtin_offsetof (struct malloc_chunk, fd_nextsize))+((2 * (sizeof(size_t))) - 1)) & ~((2 * (sizeof(size_t))) - 1))) && ((old_top)->size & 0x1) && ((unsigned long)old_end & pagemask) == 0)' failed.
Also using the Info tool and clicking around results in frequent crashes (do not know if related).
See also #5896
Associated revisions
give correct layer to QgsHighlight in QgsIdentifyResultsDialog, fixes #8724
Calculate better context (extent,size) if not given in WMS, WCS identify. Fixes #8724
History
#1 Updated by Giovanni Manghi about 11 years ago
- Priority changed from High to Severe/Regression
- Target version set to Future Release - High Priority
- Affected QGIS version changed from 2.0.1 to master
- Crashes QGIS or corrupts data changed from No to Yes
QGIS 2.0.1/master crashes when identifying reprojected WMS layer, see #5896-10
This issues do not affect qgis 1.8, so it is a regression.
#2 Updated by Paolo Cavallini about 11 years ago
The main WMS address is:
http://www502.regione.toscana.it/wmsraster/com.rt.wms.RTmap/wms?map=wmsambamm
#3 Updated by Giovanni Manghi about 11 years ago
I can't confirm the instant crash. But I confirm the crash when identifying the reprojected WMS layer and clicking on the result window when the format of the request is "feature", does not crash if the format of the request is "html" or "text".
I can't replicate with any other kind of file based raster, just wms, please leave feedback.
#4 Updated by Giovanni Manghi about 11 years ago
- Category changed from Projection Support to Web Services clients/WMS
- Subject changed from Reprojecting a raster crashes QGIS to Reprojecting and identifying a wms layer crashes QGIS
#5 Updated by Radim Blazek about 11 years ago
- Assignee set to Radim Blazek
#6 Updated by Giovanni Manghi about 11 years ago
I forgot that with the projects attached in #5896-10
is easy to see also that the identify of reprojected wms layer returns wrong results.
#7 Updated by Radim Blazek about 11 years ago
It should be fixed in 96bd7e7 in master.
#8 Updated by Radim Blazek about 11 years ago
- File wms-identify-clc06-pt.png added
BTW, if I select the green area (see wms-identify-clc06-pt.png, project wms_identify_201_reprojected.qgs) the feature (bounding box in this case) is much larger. Is that correct on QGIS side? I.e. multipolygon is covering bigger area or overlapping polygons on server side?
#9 Updated by Giovanni Manghi about 11 years ago
- File 53.png added
Radim Blazek wrote:
BTW, if I select the green area (see wms-identify-clc06-pt.png, project wms_identify_201_reprojected.qgs) the feature (bounding box in this case) is much larger. Is that correct on QGIS side? I.e. multipolygon is covering bigger area or overlapping polygons on server side?
the correct BB is the one in the attached image, if in the reprojected layer you are seeing a different BB is because qgis is identifying the wrong feature (but it happens also with pixels of layers that on the server are rasters).
#10 Updated by Radim Blazek about 11 years ago
- Status changed from Open to Closed
Fixed in changeset 96bd7e7f2e1b70e2515e628d3c5583d7d73eeb50.
#11 Updated by Radim Blazek about 11 years ago
Giovanni Manghi wrote:
the correct BB is the one in the attached image, if in the reprojected layer you are seeing a different BB is because qgis is identifying the wrong feature (but it happens also with pixels of layers that on the server are rasters).
Now it is OK, in one moment it was giving to me wrong bbox for that area, cannot say why.
#12 Updated by Giovanni Manghi about 11 years ago
Radim Blazek wrote:
Giovanni Manghi wrote:
the correct BB is the one in the attached image, if in the reprojected layer you are seeing a different BB is because qgis is identifying the wrong feature (but it happens also with pixels of layers that on the server are rasters).
Now it is OK, in one moment it was giving to me wrong bbox for that area, cannot say why.
so this #5896 is fixed?
#13 Updated by Radim Blazek about 11 years ago
Giovanni Manghi wrote:
so this #5896 is fixed?
Fixed in master, not in 1.8. The bug is reported for both 2.x and 1.8.
#14 Updated by Giovanni Manghi about 11 years ago
Fixed in master, not in 1.8. The bug is reported for both 2.x and 1.8.
maybe the wrong identify when reprojecting wms layers is fixed but in master I see a regression (on master as well on 2.0.1):
Add this layer (postos de vigia)
crs=EPSG:3763&featureCount=10&format=image/png&layers=Postos%20de%20Vigia&styles=&url=http://mapas.dgterritorio.pt/wms/crif
from this server
http://mapas.dgterritorio.pt/wms/crif
in a new project, in one of the proposed CRSs and no reprojection.
- on qgis 1.8 indentify works
- on qgis 2.0.1/master the identify does not find anything
#15 Updated by Giovanni Manghi about 11 years ago
Fixed in master, not in 1.8. The bug is reported for both 2.x and 1.8.
I have just tested master (commit 4072e39227da578f6bd8f359a5197e6ea70ef874) and does not seems fixed. You can used the layers/projects you can find in #5896-9
or even with (in this case the identify does not work at all, works on 1.8)
http://wms.pcn.minambiente.it/ogc?map=/ms_ogc/WMS_v1.3/raster/DTM_75M.map
#16 Updated by Radim Blazek about 11 years ago
Giovanni Manghi wrote:
I have just tested master (commit 4072e39227da578f6bd8f359a5197e6ea70ef874) and does not seems fixed. You can used the layers/projects you can find in #5896-9
I was testing with wms_identify_201_reprojected.qgs from #5896-10, please confirm if it works.
I can confirm that wms_identify_master.qgs from #5896-9 does not work but that is different issue, not that described in this bug report. Part of the response:
<!-- WARNING: The value 'Pontos de Agua_layer' is not valid in a XML tag context. --> <Pontos de Agua_layer> <!-- WARNING: The value 'Pontos de Agua_feature' is not valid in a XML tag context. --> <Pontos de Agua_feature>
it is using "Pontos de Agua_layer" as XML tag which is not valid. So if you want to support non valid XML (do you?) it should be new feature request, I think.
#17 Updated by Giovanni Manghi about 11 years ago
Radim Blazek wrote:
Giovanni Manghi wrote:
I have just tested master (commit 4072e39227da578f6bd8f359a5197e6ea70ef874) and does not seems fixed. You can used the layers/projects you can find in #5896-9
I was testing with wms_identify_201_reprojected.qgs from #5896-10, please confirm if it works.
no, it does not. See attached images. The images refer to a identify click in that green feature in the middle of the map
I can confirm that wms_identify_master.qgs from #5896-9 does not work but that is different issue, not that described in this bug report. Part of the response:
[...]it is using "Pontos de Agua_layer" as XML tag which is not valid. So if you want to support non valid XML (do you?) it should be new feature request, I think.
but it works in qgis 1.8. So from users point of view it is a regression, but I can understand that maybe it is not from another point of view. What do you think?
#18 Updated by Giovanni Manghi about 11 years ago
it is using "Pontos de Agua_layer" as XML tag which is not valid. So if you want to support non valid XML (do you?) it should be new feature request, I think.
why this is failing to identify (not reprojected) and in 1.8 works? Same reason?
http://wms.pcn.minambiente.it/ogc?map=/ms_ogc/WMS_v1.3/raster/DTM_75M.map
#19 Updated by Radim Blazek about 11 years ago
Giovanni Manghi wrote:
no, it does not. See attached images. The images refer to a identify click in that green feature in the middle of the map
11.png shows exactly the problem I had (and ask if it is server side), then it was working and now I can reproduce it again. Are you sure that the server including data was not touched?
Other polygons, like those red and green above are working ok, right? So it should not be request in wrong CRS, I think.
Do you have access to the vector data? Could you verify if the big area PT-35699 has a hole (island) where is PT-36085. My suspicion is that it does not, and sometimes the server finds first the bigger area on the background.
but it works in qgis 1.8. So from users point of view it is a regression, but I can understand that maybe it is not from another point of view. What do you think?
Solution could be that identify will show the error in results dialog and user will be able to switch to another format (text).
#20 Updated by Radim Blazek about 11 years ago
Giovanni Manghi wrote:
it is using "Pontos de Agua_layer" as XML tag which is not valid. So if you want to support non valid XML (do you?) it should be new feature request, I think.
why this is failing to identify (not reprojected) and in 1.8 works? Same reason?
http://wms.pcn.minambiente.it/ogc?map=/ms_ogc/WMS_v1.3/raster/DTM_75M.map
Probably. The dots in layer name EL.DTM.75 are suspicious, however valid in theory.
The server offers text/plain and application/vnd.ogc.gml, 2.x prefers gml because it is expected to carry more information, unfortunately it is not valid. 1.8 is using text.
We have to show the error and give chance to switch format.
#21 Updated by Giovanni Manghi about 11 years ago
Are you sure that the server including data was not touched?
100% sure
Other polygons, like those red and green above are working ok, right? So it should not be request in wrong CRS, I think.
no it is not working ok. Today (on master) using the identify on this wms layer (reprojected) produces the result in the attached image: now clicking on a feature seems to identify also all the ones around it.
Do you have access to the vector data? Could you verify if the big area PT-35699 has a hole (island) where is PT-36085. My suspicion is that it does not, and sometimes the server finds first the bigger area on the background.
this is the vector
http://www.igeo.pt/gdr/Downloads/ProdutosCLC/CLC06_PT.zip
and yes, there are no overlapped polygons so where PT-36085 is then PT-35699 has a hole.
Solution could be that identify will show the error in results dialog and user will be able to switch to another format (text).
yes, this must be done then, because at this moment if the server does not support feature/gml then there is not way for the user to choose text and the result is that he thinks that the identify does not work or that the server has a problem.
#22 Updated by Giovanni Manghi about 11 years ago
- File 44.png added
#23 Updated by Giovanni Manghi about 11 years ago
We have to show the error and give chance to switch format.
agree
#24 Updated by Radim Blazek about 11 years ago
It should be fixed in de8a5d6.
When WMS is reprojected, the identify tool does not know context (extent,size) in layer original CRS and calls identify() without context. The provider was using full extent but small resolution.
#25 Updated by Radim Blazek about 11 years ago
Giovanni Manghi wrote:
yes, this must be done then, because at this moment if the server does not support feature/gml then there is not way for the user to choose text and the result is that he thinks that the identify does not work or that the server has a problem.
The problem is not if the server does not support GML (in that case it is used a different format) but when the response is not valid GML.
#26 Updated by Radim Blazek about 11 years ago
Fixed also the problem with invalid GML in d5f167f. The error is shown in results dialog and user can switch format.