[mapserver-users] Problem with Python MapScript queryByRect
Just van den Broecke
justb4 at gmail.com
Sat Jun 27 06:08:06 PDT 2020
I got somewhat further: it appears I get a SEGFAULT when calling any
MapScript query() method. This is also what FastCGI receives (signal 11).
For example, bash-ing into the Docker Container and execute MapScript
Python:
$ python
Python 2.7.16 (default, Oct 10 2019, 22:02:15)
[GCC 8.3.0] on linux2
>>> import mapscript
>>> map = mapscript.mapObj('/app1/config/mapserver/app1.map')
>>> layer = map.getLayerByName('nlpubs')
>>> layer.name
'nlpubs'
>>> len(layer.metadata)
0
>>> res = layer.queryByAttributes(map, 'Name', 'Lef',
mapscript.MS_MULTIPLE)
Segmentation fault
But getting number of Features is ok:
>>> layer.getNumFeatures()
GNM: GNMRegisterAllInternal
GNM: RegisterGNMFile
GNM: RegisterGNMdatabase
GDAL: GDALOpen(/app1/data/pubs, this=0x557ace611b90) succeeds as ESRI
Shapefile.
Shape: DBF Codepage = LDID/87 for /app1/data/pubs/osm-nl-pub.shp
Shape: Treating as encoding 'ISO-8859-1'.
GDAL: GDALClose(/app1/data/pubs, this=0x557ace611b90)
2864
The LAYER def is
LAYER
NAME nlpubs
STATUS default
TYPE POINT
PROJECTION
"init=epsg:4326"
END
METADATA
"wfs_title" "NL Pubs from OSM POIs"
"wfs_version" "1.1.0"
"wfs_extent" "4 50 6 54"
"wfs_bbox_extended" "true"
"wfs_enable_request" "*"
"wfs_srs" "epsg:4326 epsg:3857 epsg:900913"
"wfs_include_items" "all"
"gml_include_items" "all"
"gml_geometries" "geom"
"wms_title" "NL Pubs from OSM POIs"
"wms_srs" "epsg:4326 epsg:3857 epsg:900913"
"wms_extent" "4 50 6 54"
"wms_feature_info_mime_type" "text/xml"
"mapglow_feat_density" "0.002"
END
CONNECTIONTYPE OGR
CONNECTION "/app1/data/pubs"
DATA "osm-nl-pub"
TEMPLATE "/app1/config/mapserver/template.html"
CLASS
NAME "osm-nl-pub"
STYLE
COLOR 0 102 204
SYMBOL "circle"
SIZE 10
END
END
END
Data is a shapefile, but GeoJSON also fails. Also strange that
layer.metadata is empty. Like said when I delegate any incoming OWS req
to map.OWSDispatch() I get proper results for all WMS requests, in
particular GetMap with styled output.
The base Dockerfile used is at:
https://github.com/PDOK/mapserver-docker/blob/master/Dockerfile from
which I derived my Dockerfile:
https://github.com/justb4/mapglow/blob/master/Dockerfile
Maybe there is some mismatch in lib versions?
Again thanks. Best,
Just van den Broecke
On 26-06-20 17:55, Just van den Broecke wrote:
> Hi,
>
> I am reviving a Python 2 MapServer MapScript app that used to work 7
> years ago (and still is in old deployment) but stuck in some MapScript
> calls that fail but also throw no Exceptions.
>
> Purpose of the app "MapGlow" [1] is to generate a WMS-heatmap triggered
> by specific STYLE parameters. When no heatmap STYLE is requested
> requests are delegated to map_file.OWSDispatch() etc. The latter works
> fine so the overall setup/stack/mapfile is working. Using MS 7.6.0 in
> Docker (compose) with Lighttp, FastCGI, WSGI, flup.
>
> It is only when layerObj.queryByRect() is called, a HTTP 500 is
> returned after a FastCGI hard error, no means to catch an Exception. The
> passed MapFile and Rect objects seem ok. Also I noticed that
> layerObj.metadata had 0 items. I can see that I have proper SWIG objects
> like
> <mapscript.layerObj; proxy of <Swig Object of type 'layerObj *' at
> 0x7fded06b1de0> >
> If only I could get a hint, a MapFile setting, maybe some log output or
> debug flag I can set? The WIP is on GH, I can point at the failing line
> [2] but the code is
> quite involved (mind, my first Python 7-9 years ago):
>
> [1] https://github.com/justb4/mapglow
> [2]
> https://github.com/justb4/mapglow/blob/master/app1/wms/mapglow_ms.py#L249
>
> Thanks for any help,
>
> Just van den Broecke
> The Netherlands
> _______________________________________________
> mapserver-users mailing list
> mapserver-users at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/mapserver-users
More information about the MapServer-users
mailing list