On 7/14/2015 4:09 PM, Lime, Steve D (MNIT) wrote:
I think the map->query.maxfeatures is pretty much settable only
through WFS. If you're using the template driver output format you
can limit the number of features that way. You'd use the limit
property of the feature tag.

That said, it seems to me that you'd want to use TOLERANCE 0 with
whatever units you like. That means just grabbing the value of the
pixel the "click" falls in so you'd only ever get one value back.

Steve,

Thanks! From my limited test cases, setting TOLERANCE 0 seems to give me the old behavior. I updated #5129 to reflect this and this should save me a bunch of time tweaking scripts and mapfiles.

Thanks again,
  -Steve W

Steve

-----Original Message----- From:
[email protected]
[mailto:[email protected]] On Behalf Of Stephen
Woodbridge Sent: Tuesday, July 14, 2015 2:49 PM To: thomas bonfort
Cc: MapserverList OSGEO Subject: Re: [mapserver-users] Very strange
problem doing a query and hanging on MS 6.4.1

Ans not related to apache, I can still reproduce this at the
commandline, although it is harder to find a case that fails now that
I have set TOLERANCE and TOLERANCEUNITS.

Is there a way to limit the number of features like MAXFEATURES for
drawing, only for queries?

I see in the code map->query.maxfeatures but I'm not finding a way
to set that via CGI or mapfile?

-Steve

On 7/14/2015 11:20 AM, Stephen Woodbridge wrote:
OK, not totally solved! Things are better by explicitly setting
TOLERANCE and TOLERANCEUNITS but I am still getting random hanging
of processes doing queries.

I'm wondering if this is related to apache 2.4 and the way it is
setting up cgi-bin processes. What is the best practice for
configuring apache 2.4 (things changed in apache 2.4 from 2.2) cgi
for use with mapserver?

I'm running Ubuntu 14.04 LTS and have these packages installed:

apache2:amd64/trusty-security 2.4.7-1ubuntu4.4 uptodate
apache2-bin:amd64/trusty-security 2.4.7-1ubuntu4.4 uptodate
apache2-data:all/trusty-security 2.4.7-1ubuntu4.4 uptodate
apache2-mpm-prefork:amd64/trusty-security 2.4.7-1ubuntu4.4
uptodate apache2-utils:amd64/trusty-security 2.4.7-1ubuntu4.4
uptodate libapache2-mod-geoip:amd64/trusty 1.2.8-2 uptodate
libapache2-mod-mapcache:amd64/trusty 1.2.1-2 uptodate
libapache2-mod-php5:amd64/trusty-security 5.5.9+dfsg-1ubuntu4.11
uptodate libapache2-mod-python:amd64/trusty 3.3.1-11ubuntu2
uptodate

cgi-mapserver:amd64/trusty 6.4.1-2 uptodate
libmapserver1:amd64/trusty 6.4.1-2 uptodate
mapserver-bin:amd64/trusty 6.4.1-2 uptodate

ls /etc/apache2/mods-enabled/ access_compat.load  autoindex.load
geoip.load        php5.conf alias.load          cgi.load
mapcache.conf     php5.load auth_basic.load     deflate.conf
mapcache.load     python.load authn_core.load     deflate.load
mime.conf         setenvif.conf authn_file.load     dir.conf
mime.load         setenvif.load authz_core.load     dir.load
mpm_prefork.conf  status.conf authz_host.load     env.load
mpm_prefork.load  status.load authz_user.load     filter.load
negotiation.conf autoindex.conf      geoip.conf
negotiation.load


On 7/13/2015 11:48 AM, Stephen Woodbridge wrote:
SOLVED: see below ...

According to the docs, the defaults are:

TOLERANCE 3 TOLERANCEUNITS pixels

and with:

QUERY_STRING='map=/maps/wms/bathymetry.map&mode=query&layers=model_query&mapxy=-100.98125+41.58125'





How is zoom calculated?

LAYER NAME "model_query" STATUS on TYPE raster

TILEINDEX "NOAA_Coastal_Relief_Model/index.shp" TILEITEM
"LOCATION" CLASS TEMPLATE "/maps/wms/pixel.value.html" END END

Did this behavior change from 6.2.1 to 6.4.1? because it is not
noted in the MIGRATION-GUIDE if it did. On 6.2.1 I get the
following result:

Content-Type: text/html <HTML <HEAD><TITLE>MapServer
Message</TITLE></HEAD <!-- MapServer version 6.2.1 OUTPUT=GIF
OUTPUT=PNG OUTPUT=JPEG SUPPORTS=PROJ SUPPORTS=GD SUPPORTS=AGG
SUPPORTS=FREETYPE SUPPORTS=CAIRO SUPPORTS=SVG_SYMBOLS
SUPPORTS=ICONV SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER
SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT
SUPPORTS=WCS_SERVER SUPPORTS=SOS_SERVER SUPPORTS=FASTCGI
SUPPORTS=THREADS SUPPORTS=GEOS INPUT=JPEG INPUT=POSTGIS
INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE --> <BODY BGCOLOR="#FFFFFF"
msQueryByPoint(): Search returned no results. No matching
record(s) found. </BODY></HTML>

which returns very quickly.

I rsynced the data and the mapfile for Ubuntu 12.04 to 14.04 and
installed the mapserver package. Everything else appears to be
working without a problem except this issue.

SOLVED:

I explicitly added:

TOLERANCE 1 TOLERANCEUNITS pixels

to my LAYER definition and now it works.

d# /usr/lib/cgi-bin/mapserv
QUERY_STRING='map=/maps/wms/bathymetry.map&mode=query&layers=model_query&mapxy=-100.98125+41.58125'




Content-Type: text/html

<HTML> <HEAD><TITLE>MapServer Message</TITLE></HEAD> <!--
MapServer version 6.4.1 OUTPUT=GIF OUTPUT=PNG OUTPUT=JPEG
OUTPUT=KML SUPPORTS=PROJ SUPPORTS=GD SUPPORTS=AGG
SUPPORTS=FREETYPE SUPPORTS=CAIRO SUPPORTS=SVG_SYMBOLS
SUPPORTS=RSVG SUPPORTS=ICONV SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER
SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT
SUPPORTS=WCS_SERVER SUPPORTS=SOS_SERVER SUPPORTS=FASTCGI
SUPPORTS=THREADS SUPPORTS=GEOS INPUT=JPEG INPUT=POSTGIS INPUT=OGR
INPUT=GDAL INPUT=SHAPEFILE --> <BODY BGCOLOR="#FFFFFF">
msQueryByPoint(): Search returned no results. No matching
record(s) found. </BODY></HTML>

So it looks like maybe the defaults are not getting initialized.

Opened: https://github.com/mapserver/mapserver/issues/5120

Thanks, -Steve

On 7/13/2015 11:05 AM, thomas bonfort wrote:
Or that could just be the number of pixels under the query
point if you are zoomed out far or with a large tolerance...

On 13 July 2015 at 17:01, Stephen Woodbridge
<[email protected]> wrote:
Thomas,

More information:

/u/software/mapserver-rel-6-4-2/maptemplate.c:4366

4366        for(j=0; j<lp->resultcache->numresults; j++) {
(gdb) p lp->resultcache->numresults $7 = 2884991

this is clearly a bad value my guess is that it is not
getting initialized to zero and assumes it will get set when
some number of results are found, but if no results are found
it is not getting set to zero. (Just a hypothesis)

-Steve W


On 7/13/2015 10:41 AM, Stephen Woodbridge wrote:

Thomas,

Here is the initial backtrace afte starting it and and ^C
while it is printing -99999 lines:

#0  processLine (mapserv=0x609050, instr=0x7fffffffcc60
"[value_0]\n", stream=0x688460, mode=9) at
/u/software/mapserver-rel-6-4-2/maptemplate.c:3697 #1
0x00007ffff7a2e9cc in msReturnPage (mapserv=0x609050,
html=0x6612e0 "/maps/wms/pixel.value.html", mode=9,
papszBuffer=0x0) at
/u/software/mapserver-rel-6-4-2/maptemplate.c:4159 #2
0x00007ffff7a2f7ed in msReturnNestedTemplateQuery
(mapserv=0x609050, pszMimeType=0x60c8f0 "text/html",
papszBuffer=0x0) at
/u/software/mapserver-rel-6-4-2/maptemplate.c:4385 #3
0x00007ffff7a1f586 in msReturnTemplateQuery
(mapserv=0x609050, queryFormat=0x60c8f0 "text/html",
papszBuffer=0x0) at
/u/software/mapserver-rel-6-4-2/maptemplate.c:315 #4
0x00007ffff79f1230 in msCGIDispatchQueryRequest
(mapserv=0x609050) at
/u/software/mapserver-rel-6-4-2/mapservutil.c:1476 #5
0x00007ffff79f2205 in msCGIDispatchRequest
(mapserv=0x609050) at
/u/software/mapserver-rel-6-4-2/mapservutil.c:1784 #6
0x000000000040115b in main (argc=2, argv=0x7fffffffdf98) at
/u/software/mapserver-rel-6-4-2/mapserv.c:259

I'll poke around a little more in gdb and see if I can
figure out anything more.

Thanks, -Steve


On 7/13/2015 4:12 AM, thomas bonfort wrote:

Steve, please include a backtrace from gdb where you
believe the infinite loop is happening.

-- thomas

On 13 July 2015 at 01:22, Stephen Woodbridge
<[email protected]> wrote:

I added gdalinfo on an actual raster file below. It
turns out the -99999 is the NoData Value. I would be
happy to just get this value back (once), but I think
something is broken and putting mapserver into an
infinite loop.

-Steve W


On 7/12/2015 7:14 PM, Stephen Woodbridge wrote:


Hi all,

I have run into a very strange problem doing a
mapserver query. I'm upgrading a system that was
running fine. The details are below. I also tried to
put the template inside a CLASS ... END block that
didn't help.

Can anyone else reproduce something like this? Got
any ideas on how to work around it?

Thanks, -Steve W

Old system: Ubuntu 12.04 LTS

MapServer version 6.2.1 OUTPUT=GIF OUTPUT=PNG
OUTPUT=JPEG SUPPORTS=PROJ SUPPORTS=GD SUPPORTS=AGG
SUPPORTS=FREETYPE SUPPORTS=CAIRO SUPPORTS=SVG_SYMBOLS
SUPPORTS=ICONV SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER
SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER
SUPPORTS=WFS_CLIENT SUPPORTS=WCS_SERVER
SUPPORTS=SOS_SERVER SUPPORTS=FASTCGI SUPPORTS=THREADS
SUPPORTS=GEOS INPUT=JPEG INPUT=POSTGIS INPUT=OGR
INPUT=GDAL INPUT=SHAPEFILE

New system: Ubuntu 14.04 LTS

MapServer version 6.4.1 OUTPUT=GIF OUTPUT=PNG
OUTPUT=JPEG OUTPUT=KML SUPPORTS=PROJ SUPPORTS=GD
SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=CAIRO
SUPPORTS=SVG_SYMBOLS SUPPORTS=RSVG SUPPORTS=ICONV
SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER
SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER
SUPPORTS=WFS_CLIENT SUPPORTS=WCS_SERVER
SUPPORTS=SOS_SERVER SUPPORTS=FASTCGI SUPPORTS=THREADS
SUPPORTS=GEOS INPUT=JPEG INPUT=POSTGIS INPUT=OGR
INPUT=GDAL INPUT=SHAPEFILE

The query layer looks like this:

LAYER NAME "model_query" STATUS on TYPE raster

TILEINDEX "NOAA_Coastal_Relief_Model/index.shp"
TILEITEM "LOCATION" TEMPLATE
"/maps/wms/pixel.value.html" END


cat "/maps/wms/pixel.value.html" <!-- MapServer
Template --> [value_0]


dbf_dump -info
wms/data/Bathy/NOAA_Coastal_Relief_Model/index.dbf
Filename:
wms/data/Bathy/NOAA_Coastal_Relief_Model/index.dbf
Version:        0x03 (ver. 3) Num of records: 61
Header length:  65 Record length:  256 Last change:
1995/7/26 Num fields:     1 Field info: Num     Name
Type    Len     Decimal 1.      LOCATION        C
255     0


dbf_dump
wms/data/Bathy/NOAA_Coastal_Relief_Model/index.dbf |
head NOAA_Coastal_Relief_Model/BSM-1035.tif
NOAA_Coastal_Relief_Model/BSM-1156.tif
NOAA_Coastal_Relief_Model/BSM-1193.tif
NOAA_Coastal_Relief_Model/BSM-1239.tif
NOAA_Coastal_Relief_Model/BSM-1261.tif
NOAA_Coastal_Relief_Model/BSM-1326.tif
NOAA_Coastal_Relief_Model/BSM-1343.tif
NOAA_Coastal_Relief_Model/BSM-1536.tif
NOAA_Coastal_Relief_Model/BSM-1557.tif
NOAA_Coastal_Relief_Model/BSM-1801.tif

ogrinfo -so
wms/data/Bathy/NOAA_Coastal_Relief_Model/index.shp
index INFO: Open of
`wms/data/Bathy/NOAA_Coastal_Relief_Model/index.shp'
using driver `ESRI Shapefile' successful.

Layer name: index Geometry: Polygon Feature Count:
61 Extent: (-130.000417, 16.999583) - (-65.999599,
49.000401) Layer SRS WKT: (unknown) location: String
(255.0)


When I issue a query like:

/usr/lib/cgi-bin/mapserv


QUERY_STRING='map=/maps/wms/bathymetry.map&mode=query&layers=model_query&mapxy=-100.98125+41.58125'







The old server responded with:
Content-Type: text/html

<HTML> <HEAD><TITLE>MapServer Message</TITLE></HEAD>
<!-- MapServer version 6.2.1 OUTPUT=GIF OUTPUT=PNG
OUTPUT=JPEG SUPPORTS=PROJ SUPPORTS=GD SUPPORTS=AGG
SUPPORTS=FREETYPE SUPPORTS=CAIRO SUPPORTS=SVG_SYMBOLS
SUPPORTS=ICONV SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER
SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER
SUPPORTS=WFS_CLIENT SUPPORTS=WCS_SERVER
SUPPORTS=SOS_SERVER SUPPORTS=FASTCGI SUPPORTS=THREADS
SUPPORTS=GEOS INPUT=JPEG INPUT=POSTGIS INPUT=OGR
INPUT=GDAL INPUT=SHAPEFILE --> <BODY
BGCOLOR="#FFFFFF"> msQueryByPoint(): Search returned
no results. No matching record(s) found.
</BODY></HTML>You have new mail in /var/mail/root


I get an infinite number of lines like the following
on the new server:

# /usr/lib/cgi-bin/mapserv


QUERY_STRING='map=/maps/wms/bathymetry.map&mode=query&layers=model_query&mapxy=-100.98125+41.58125'





| head
Content-Type: text/html

-99999 -99999 -99999 -99999 -99999 -99999 -99999
-99999 ^C



# gdalinfo
wms/data/Bathy/NOAA_Coastal_Relief_Model/BSM-1156.tif
Driver: GTiff/GeoTIFF Files:
wms/data/Bathy/NOAA_Coastal_Relief_Model/BSM-1156.tif
Size is 4801, 4801 Coordinate System is: GEOGCS["WGS
84", DATUM["WGS_1984", SPHEROID["WGS
84",6378137,298.257223563, AUTHORITY["EPSG","7030"]],
AUTHORITY["EPSG","6326"]], PRIMEM["Greenwich",0],
UNIT["degree",0.0174532925199433],
AUTHORITY["EPSG","4326"]] Origin =
(-102.000833330000006,41.000817329999997) Pixel Size =
(0.000833330000000,-0.000833330000000) Metadata:
AREA_OR_POINT=Point Image Structure Metadata:
INTERLEAVE=BAND Corner Coordinates: Upper Left
(-102.0008333,  41.0008173) (102d 0' 3.00"W, 41d 0'
2.94"N) Lower Left  (-102.0008333,  37.0000000) (102d
0' 3.00"W, 37d 0' 0.00"N) Upper Right ( -98.0000160,
41.0008173) ( 98d 0' 0.06"W, 41d 0' 2.94"N) Lower Right
( -98.0000160,  37.0000000) ( 98d 0' 0.06"W, 37d 0'
0.00"N) Center      (-100.0004247,  39.0004087) (100d
0' 1.53"W, 39d 0' 1.47"N) Band 1 Block=256x256
Type=Float32, ColorInterp=Gray NoData Value=-99999
Overviews: 2401x2401, 1201x1201, 601x601, 301x301,
151x151, 76x76, 38x38




You have to ^C to kill it, even when using head. This
seems like a serious bug as it runs for about 10 mins
taking 100% CPU. If you call it via
file_get_contents() in php is hangs the request and
freezea my OL app until it is killed or kills php
reading all the data.
_______________________________________________
mapserver-users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/mapserver-users





_______________________________________________
mapserver-users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/mapserver-users




_______________________________________________
mapserver-users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/mapserver-users


_______________________________________________
mapserver-users mailing list [email protected]
http://lists.osgeo.org/mailman/listinfo/mapserver-users


_______________________________________________ mapserver-users
mailing list [email protected]
http://lists.osgeo.org/mailman/listinfo/mapserver-users

_______________________________________________ mapserver-users
mailing list [email protected]
http://lists.osgeo.org/mailman/listinfo/mapserver-users


_______________________________________________
mapserver-users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/mapserver-users

Reply via email to