[mapserver-users] Very strange problem doing a query and hanging on MS 6.4.1

Stephen Woodbridge woodbri at swoodbridge.com
Sun Jul 12 16:14:52 PDT 2015


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

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.


More information about the mapserver-users mailing list