[mapserver-users] MapServer crash with WFS GetFeature request using multiple typenames

Rahkonen Jukka Jukka.Rahkonen at mmmtike.fi
Mon Nov 14 08:51:39 EST 2011


Hi,

Feel free to test with my TinyOWS server at http://188.64.1.61/cgi-bin/tinyows. I would not encourage you to use BBOX filter for finding features.  According to the standard BBOX is a synonyme for Intersects but for example Geoserver is using it in a bit different way. It is comparing if feature bounding boxes are intersecting with reference bounding box if BBOX is used. This suits perfectly for filling a screen with features because feature bounding boxes can be found fast from the spatial index of a database. However, with lines and polygons this search is sometimes finding extra features. Intersects is doing a real comparison of geometries which is accurate but slower.  If you click on a map why don't you use ogc:Contains for finding polygons or ogc;DWithin filter for finding all kind of features with a buffer?

My TinyOWS has a bug with ogc:BBOX so if you test it, use Intersects, Contains, or DWithin instead.

Naturally WFS should behave in a similar way independently of the data source behind the server. 

-Jukka Rahkonen-

> -----Alkuperäinen viesti-----
> Lähettäjä: Dejan Gambin [mailto:dejan.gambin at coin.hr] 
> Lähetetty: 14. marraskuuta 2011 15:33
> Vastaanottaja: Rahkonen Jukka
> Kopio: 'mapserver-users at lists.osgeo.org'
> Aihe: Re: [mapserver-users] MapServer crash with WFS 
> GetFeature request using multiple typenames
> 
> Hello Jukka
> 
> Thanks for the information. I am trying to make a spatial 
> search by clicking on the point on the map. This search 
> should send the requests for every active layer and return 
> the results for some bbox around this point. I have first 
> tried with WMS GetFeatureInfo but also stucked with gml not 
> being recognized by OpenLayers. So I decided to try with WFS. 
> It works OK when data is in PostGIS and also works for one 
> shape file but not for all I need.
> 
> Of course, it can be done by sending multiple requests, one 
> for each active layer, but I thought this should work for 
> several layers too.
> 
> 
> On 14. stu. 2011., at 14:20, Rahkonen Jukka wrote:
> 
> > Hi,
> > 
> > It is not so very common to make GetFeature requests for a 
> list of FeatureTypes, especially with filters. Therefore 
> servers are for sure not well tested with such requests. Do 
> you have some special need for getting just one GML package 
> out or WFS or can you imagine to do one request per feature type?
> > 
> > By the way, are you aware of that if you query typeNames 
> "A" and "B" with maxfeatures=10, the resultset will be cut at 
> the 10th feature. If the server finds 10 or more candidates 
> from typeName "A" you will not get any features at all from 
> typeName "B".
> > 
> > -Jukka Rahkonen-
> > 
> > Dejan Gambin wrote:
> > 
> > 
> >> 
> >> Anyway, seems like this ogrinfo error has nothing to do with 
> >> mapserver crash. So the problem persists :-(
> >> 
> >> dejan
> >> On 14. stu. 2011., at 11:49, Dejan Gambin wrote:
> >> 
> >>> Additional info:
> >>> 
> >>> Everything works OK when data is in postgis. The problem is 
> >> with data coming from shape file on which ogrinfo reports the 
> >> following:
> >>> 
> >>> dgambin at coin:/$ ogrinfo -so 
> >> sportsko_rekreacijska_namjena.shp sportsko_rekreacijska_namjena
> >>> ERROR 4: Unable to open sportsko_rekreacijska_namjena.shp 
> >> or sportsko_rekreacijska_namjena.SHP.
> >>> Had to open data source read-only.
> >>> INFO: Open of `sportsko_rekreacijska_namjena.shp'
> >>>     using driver `ESRI Shapefile' successful.
> >>> 
> >>> Layer name: sportsko_rekreacijska_namjena
> >>> Geometry: Polygon
> >>> Feature Count: 12
> >>> Extent: (5401303.525844, 4978030.196207) - (5407353.143421, 
> >> 4986100.367492)
> >>> Layer SRS WKT:
> >>> (unknown)
> >>> ID: Integer (8.0)
> >>> NAMJENA: String (30.0)
> >>> POVRSINA: Real (16.2)
> >>> OZNAKA: String (100.0)
> >>> 
> >>> 
> >>> 
> >>> On 14. stu. 2011., at 10:35, Dejan Gambin wrote:
> >>> 
> >>>> Hi,
> >>>> 
> >>>> I have a serious issue usng MapServer WFS in making 
> >> GetFeature request using multiple typenames. Here is the 
> >> example post request:
> >>>> 
> >>>> [Mon Nov 14 09:16:06 2011].666863 msWFSParseRequest(): WFS 
> >> post request: <wfs:GetFeature 
> >> xmlns:wfs="http://www.opengis.net/wfs" service="WFS" 
> >> version="1.1.0" maxFeatures="10" 
> >> xsi:schemaLocation="http://www.opengis.net/wfs 
> >> http://schemas.opengis.net/wfs/1.1.0/wfs.xsd" 
> >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><wfs:Que
> >> ry typeName="ms:ppu_sportska" srsName="EPSG:900913" 
> >> xmlns:ms="http://www.openplans.org/topp"><ogc:Filter 
> >> xmlns:ogc="http://www.opengis.net/ogc"><ogc:BBOX><ogc:Property
> >> Name>msGeometry</ogc:PropertyName><gml:Envelope 
> >> xmlns:gml="http://www.opengis.net/gml" 
> >> srsName="EPSG:900913"><gml:lowerCorner>1533843.3519844 
> >> 5619282.0492426</gml:lowerCorner><gml:upperCorner>1533938.8982
> >> 697 
> >> 5619377.595528</gml:upperCorner></gml:Envelope></ogc:BBOX></og
> >> c:Filter></wfs:Query><wfs:Query typeName="ms:ppu_turisticka" 
> >> srsName="EPSG:900913" 
> >> xmlns:ms="http://www.openplans.org/topp"><ogc:Filter 
> >> xmlns:ogc="http://www.opengis.net/ogc"><ogc:BBOX><ogc:Property
> >> Name>msGeometry</ogc:PropertyName><gml:Envelope 
> >> xmlns:gml="http://www.opengis.net/gml" 
> >> srsName="EPSG:900913"><gml:lowerCorner>1533843.3519844 
> >> 5619282.0492426</gml:lowerCorner><gml:upperCorner>1533938.8982
> >> 697 
> >> 5619377.595528</gml:upperCorner></gml:Envelope></ogc:BBOX></og
> >> c:Filter></wfs:Query></wfs:GetFeature>
> >>>> [Mon Nov 14 09:16:06 2011].683317 msQueryByFilter(): 
> >> Search returned no results. No matching record(s) found.
> >>>> 
> >>>> It is using 2 typenames: "ms:ppu_sportska" and 
> >> "ms:ppu_turisticka". Seems like no results were found but 
> >> there are bunch of errors in apache log file, like:
> >>>> 
> >>>> [Mon Nov 14 09:16:06 2011] [error] [client 83.131.213.54] 
> >> *** glibc detected *** /usr/lib/cgi-bin/mapserv61: double 
> >> free or corruption (out): 0x0000000001a83d60 ***, referer: 
> >> http://www.coin.hr/coingis/demo.html
> >>>> [Mon Nov 14 09:16:06 2011] [error] [client 83.131.213.54] 
> >> ======= Backtrace: =========, referer: 
> >> http://www.coin.hr/coingis/demo.html
> >>>> [Mon Nov 14 09:16:06 2011] [error] [client 83.131.213.54] 
> >> /lib/libc.so.6(+0x71ad6)[0x7f58d7c43ad6], referer: 
> >> http://www.coin.hr/coingis/demo.html
> >>>> [Mon Nov 14 09:16:06 2011] [error] [client 83.131.213.54] 
> >> /lib/libc.so.6(cfree+0x6c)[0x7f58d7c4884c], referer: 
> >> http://www.coin.hr/coingis/demo.html
> >>>> [Mon Nov 14 09:16:06 2011] [error] [client 83.131.213.54] 
> >> /usr/lib/cgi-bin/mapserv61[0x4328c6], referer: 
> >> http://www.coin.hr/coingis/demo.html
> >>>> [Mon Nov 14 09:16:06 2011] [error] [client 83.131.213.54] 
> >> /usr/lib/cgi-bin/mapserv61[0x438719], referer: 
> >> http://www.coin.hr/coingis/demo.html
> >>>> [Mon Nov 14 09:16:06 2011] [error] [client 83.131.213.54] 
> >> /usr/lib/cgi-bin/mapserv61[0x455d2d], referer: 
> >> http://www.coin.hr/coingis/demo.html
> >>>> [Mon Nov 14 09:16:06 2011] [error] [client 83.131.213.54] 
> >> /usr/lib/cgi-bin/mapserv61[0x455b8c], referer: 
> >> http://www.coin.hr/coingis/demo.html
> >>>> [Mon Nov 14 09:16:06 2011] [error] [client 83.131.213.54] 
> >> /usr/lib/cgi-bin/mapserv61[0x4df5c4], referer: 
> >> http://www.coin.hr/coingis/demo.html
> >>>> [Mon Nov 14 09:16:06 2011] [error] [client 83.131.213.54] 
> >> /usr/lib/cgi-bin/mapserv61[0x4bf415], referer: 
> >> http://www.coin.hr/coingis/demo.html
> >>>> [Mon Nov 14 09:16:06 2011] [error] [client 83.131.213.54] 
> >> /usr/lib/cgi-bin/mapserv61(msLayerApplyPlainFilterToLayer+0x23
> > )[0x47a99c], referer: http://www.coin.hr/coingis/demo.html
> >>>> [Mon Nov 14 09:16:06 2011] [error] [client 83.131.213.54] 
> >> /usr/lib/cgi-bin/mapserv61[0x4bf362], referer: 
> >> http://www.coin.hr/coingis/demo.html
> >>>> [Mon Nov 14 09:16:06 2011] [error] [client 83.131.213.54] 
> >> /usr/lib/cgi-bin/mapserv61[0x49ffe0], referer: 
> >> http://www.coin.hr/coingis/demo.html
> >>>> [Mon Nov 14 09:16:06 2011] [error] [client 83.131.213.54] 
> >> /usr/lib/cgi-bin/mapserv61[0x4a1c8e], referer: 
> >> http://www.coin.hr/coingis/demo.html
> >>>> [Mon Nov 14 09:16:06 2011] [error] [client 83.131.213.54] 
> >> /usr/lib/cgi-bin/mapserv61[0x495f17], referer: 
> >> http://www.coin.hr/coingis/demo.html
> >>>> [Mon Nov 14 09:16:06 2011] [error] [client 83.131.213.54] 
> >> /usr/lib/cgi-bin/mapserv61[0x4182b7], referer: 
> >> http://www.coin.hr/coingis/demo.html
> >>>> [Mon Nov 14 09:16:06 2011] [error] [client 83.131.213.54] 
> >> /lib/libc.so.6(__libc_start_main+0xfd)[0x7f58d7bf0c4d], 
> >> referer: http://www.coin.hr/coingis/demo.html
> >>>> [Mon Nov 14 09:16:06 2011] [error] [client 83.131.213.54] 
> >> /usr/lib/cgi-bin/mapserv61[0x413609], referer: 
> >> http://www.coin.hr/coingis/demo.html
> >>>> [Mon Nov 14 09:16:06 2011] [error] [client 83.131.213.54] 
> >> ======= Memory map: ========, referer: 
> >> http://www.coin.hr/coingis/demo.html
> >>>> ...bunch of library references
> >>>> [Mon Nov 14 09:16:06 2011] [error] [client 83.131.213.54] 
> >> 7f58db7ca000-7f58db7cb000 r--p 0001d000 ca:01 1855039         
> >>           /lib/ld-2.11.2.so, referer: 
> >> http://www.coin.hr/coingis/demo.html
> >>>> [Mon Nov 14 09:16:06 2011] [error] [client 83.131.213.54] 
> >> 7f58db7cb000-7f58db7cc000 rw-p 0001e000 ca:01 1855039         
> >>           /lib/ld-2.11.2.so, referer: 
> >> http://www.coin.hr/coingis/demo.html
> >>>> [Mon Nov 14 09:16:06 2011] [error] [client 83.131.213.54] 
> >> 7f58db7cc000-7f58db7cd000 rw-p 00000000 00:00 0 , referer: 
> >> http://www.coin.hr/coingis/demo.html
> >>>> [Mon Nov 14 09:16:06 2011] [error] [client 83.131.213.54] 
> >> 7fff70721000-7fff70736000 rw-p 00000000 00:00 0               
> >>           [stack], referer: http://www.coin.hr/coingis/demo.html
> >>>> [Mon Nov 14 09:16:06 2011] [error] [client 83.131.213.54] 
> >> 7fff70777000-7fff70778000 r-xp 00000000 00:00 0               
> >>           [vdso], referer: http://www.coin.hr/coingis/demo.html
> >>>> [Mon Nov 14 09:16:06 2011] [error] [client 83.131.213.54] 
> >> ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0       
> >>           [vsyscall], referer: http://www.coin.hr/coingis/demo.html
> >>>> [Mon Nov 14 09:16:06 2011] [error] [client 83.131.213.54] 
> >> /usr/lib/cgi-bin/mywfs6: line 4:  3294 Aborted                
> >> /usr/lib/cgi-bin/mapserv61, referer: 
> >> http://www.coin.hr/coingis/demo.html
> >>>> [Mon Nov 14 09:16:06 2011] [error] [client 83.131.213.54] 
> >> Premature end of script headers: mywfs6, referer: 
> >> http://www.coin.hr/coingis/demo.html
> >>>> 
> >>>> Sometimes the error was starting with:
> >>>> 
> >>>> [Mon Nov 14 08:25:06 2011] [error] [client 83.131.213.54] 
> >> *** glibc detected *** /usr/lib/cgi-bin/mapserv61: 
> >> munmap_chunk(): invalid pointer: 0x000000000273ca80 ***, 
> >> referer: http://www.coin.hr/coingis/demo.html
> >>>> 
> >>>> NOTE: Making individual requests to those typenames works OK
> >>>> 
> >>>> I would appreciate any help since I am pretty stucked with 
> >> this. Should I report it as a bug?
> >>>> 
> >>>> Thanks very much
> >>>> 
> >>>> regards, dejan
> >>>> 
> >>>> 
> >>>> _______________________________________________
> >>>> mapserver-users mailing list
> >>>> mapserver-users at lists.osgeo.org
> >>>> http://lists.osgeo.org/mailman/listinfo/mapserver-users
> >>> 
> >> 
> >> _______________________________________________
> >> mapserver-users mailing list
> >> mapserver-users at lists.osgeo.org
> >> http://lists.osgeo.org/mailman/listinfo/mapserver-users
> 
> 


More information about the mapserver-users mailing list