[mapserver-users] Can't WFS getFeature w/MapServer 6.0.1

myOpenLayersUName joanne.mcgraw at SYMPATICO.CA
Tue Jul 19 13:56:52 PDT 2011


I am trying to perform a WFS getFeature request with a newly compiled version
of MapServer 6.0.1. It is failing with a segmentation fault and the failure
is related to SDE somehow but I'm not sure how to proceed.

It's possible the thread
http://osgeo-org.1803224.n2.nabble.com/ArcSDE-9-3-1-QUERYMAP-QUERY-or-GETFEATUREINFO-not-workin-Mapserver-6-td6600091.html
is describing a similar problem, but the current suggested 'fix' post
suggests this is not the case. Since the original reporter has not
responded, I can't be sure if his problem is now addressed and is,
therefore, a different problem. It could just be a red herring.

Ultimately, at this moment, I'm stuck re: how to proceed and any information
or pointers to get me moving again would be appreciated. Details of my
problem follow.

cheers,
jtm


Background:
I have a simple Mapfile that supports WFS requests (the GetCapabilities
response provides no warnings or errors):


MAP
  NAME "mySubMap"
  FONTSET "../../../mapserv/etc/fonts.txt"
  SYMBOLSET "../../../mapserv/etc/symbols.sym"

  SIZE 800 600
  IMAGETYPE PNG
  IMAGECOLOR 255 255 255

  EXTENT -2903297.697389 -789911.662978 3431059.382789 3959683.443689

  UNITS METERS
  PROJECTION
    "init=epsg:42304"
  END

  WEB
    IMAGEPATH "/<path>/httpd/htdocs/ogc_tmp/"
    IMAGEURL "/ogc_tmp/"
    METADATA
        "ows_title" "joanne_sde.map"
        "ows_onlineresource" "http://<domain>/ogc/joanne_sde"
        "ows_enable_request" "*"
    END #end METADATA
  END #end WEB

  OUTPUTFORMAT
    NAME 'AGG'
    DRIVER AGG/PNG
    MIMETYPE "image/png"
    IMAGEMODE RGB
    EXTENSION "png"
  END #end OUTPUTFORMAT

  LAYER
    NAME 'Roads25M'
    TYPE LINE
    STATUS ON

    CONNECTION "host,port,sde,username,password"
    CONNECTIONTYPE SDE
    DATA 'XDM_XDATA.TRN_NSF_ROAD_V6_CT25M_R2,SHAPE,SDE.DEFAULT'

    METADATA
        "ows_title" "Roads Title"
        "gml_featureid" "OBJECTID"
        "gml_include_items" "all"
    END #end METADATA
    DUMP true

    CLASS
      STYLE
        COLOR 0 0 0
      END #end STYLE
    END #end CLASS
  END #end LAYER
END #end MAP



When I try to do a getFeature request, it fails with an Internal Server
Error:

http://<domain>/ogc/joanne_sde?typename=Roads25M&maxfeatures=2&service=wfs&version=1.0.0&request=getfeature



Looking at the error log, I see:

[Tue Jul 19 16:06:23 2011] [error] [client 10.117.21.141]
/server/nl18/httpd/cgi-bin/joanne_sde: line 4: 24316 Segmentation fault     
${MS_CGIBIN}mapserv
[Tue Jul 19 16:06:23 2011] [error] [client 10.117.21.141] Premature end of
script headers: joanne_sde



This is similar to that discussed at:
http://osgeo-org.1803224.n2.nabble.com/Upgrade-MapServer-from-5-4-to-6-0-td6563752.html.
So, taking the suggestion of Daniel Morisette in that post, I have used gdb
to try to find the source of the segmentation fault. It tells me the
segmentation fault is occurring at:

Program received signal SIGSEGV, Segmentation fault.
0x08157116 in msSDELayerFreeItemInfo (layer=0x8218a90) at mapsde.c:2117
2117    mapsde.c: No such file or directory.
        in mapsde.c
(gdb) bt
#0  0x08157116 in msSDELayerFreeItemInfo (layer=0x8218a90) at mapsde.c:2117
#1  0x080af586 in msLayerFreeItemInfo (layer=0x8218a90) at maplayer.c:68
#2  0x080af8b4 in msLayerClose (layer=0x8218a90) at maplayer.c:210
#3  0x08096685 in msQueryByRect (map=0x82112e0) at mapquery.c:1024
#4  0x080df889 in msWFSGetFeature (map=0x82112e0, paramsObj=0x821f510,
req=0x8210ca8, ows_request=0xbfffe46c) at mapwfs.c:2500
#5  0x080e098f in msWFSDispatch (map=0x82112e0, requestobj=0x8210ca8,
ows_request=0xbfffe46c, force_wfs_mode=0) at mapwfs.c:2917
#6  0x080d4622 in msOWSDispatch (map=0x82112e0, request=0x8210ca8,
ows_mode=-1) at mapows.c:92
#7  0x0805a2d6 in main (argc=2, argv=0xbfffea94) at mapserv.c:1241




The code in question is "(if (sde->basedefs))" in msSDELayerFreeItemInfo;
however, I think the problem is actually because the layer->layerinfo is
corrupt or null or something.


void msSDELayerFreeItemInfo(layerObj *layer)
{
#ifdef USE_SDE
    msSDELayerInfo *sde = NULL;
    int i;
    if (!msSDELayerIsOpen(layer)) {
        msSetError( MS_SDEERR,
                    "SDE layer has not been opened.",
                    "msSDELayerFreeItemInfo()");
    }
    sde = layer->layerinfo;                          /*  this is line 2116
*/
    if (sde->basedefs) {                             /*  this is line 2117
*/
        SE_table_free_descriptions(sde->basedefs);
        :



If I change the data in the Mapfile to use a Shapefile instead of SDE, the
getFeature request works. So, the problem is quite definately related to
working with SDE. However, the SDE log suggests the query took place and
returned successfully. The SDE version we are working with is 9.2; and the
9.2 ArcSDE libraries are being used to compile.

I have also tried this same thing using a compilation of MapServer 5.4 in
this same environment and it works. 

Any ideas what else I might look at to give me an idea of what I need to
fix?




--
View this message in context: http://osgeo-org.1803224.n2.nabble.com/Can-t-WFS-getFeature-w-MapServer-6-0-1-tp6600286p6600286.html
Sent from the Mapserver - User mailing list archive at Nabble.com.



More information about the MapServer-users mailing list