[mapserver-users] Expression segmentation fault

thomas bonfort thomas.bonfort at gmail.com
Thu Sep 5 00:47:25 PDT 2013


Frank,
This is such a simple use-case that I doubt it's a bug in the code
per-se. Can you make sure that you are using a clean build (make clean
&& make && make install) as I suspect this could be happening due to a
compilation problem (as a rule of thumb, with mapserver <6.4, always
run make clean after re-running configure)

--
thomas


On Wed, Sep 4, 2013 at 2:39 PM, Frank Broniewski <brfr at metrico.lu> wrote:
> Am 2013-09-04 14:33, schrieb thomas bonfort:
>
>> Frank, please supply a backtrace of the crash (`bt` in gdb once it has
>> halted at the segfault)
>>
>> --
>> thomas
>>
>> On Wed, Sep 4, 2013 at 2:25 PM, Frank Broniewski <brfr at metrico.lu> wrote:
>>>
>>> Hi,
>>>
>>> I just updated my mapserver installation to the latest version (6.2.1).
>>> I'm
>>> running FreeBSD 9.1 and I'm getting a segmentation fault related to
>>> expression usage in my mapfile. I've already compiled mapserver with
>>> debug
>>> symbols and I loaded the core file into gdb:
>>>
>>>> gdb /usr/local/www/apache22/cgi-bin/mapserv mapserv.core
>>>
>>> <snip>
>>> Reading symbols from /lib/libc.so.7...done.
>>> Loaded symbols for /lib/libc.so.7
>>> Reading symbols from /usr/local/lib/libintl.so.9...done.
>>> Loaded symbols for /usr/local/lib/libintl.so.9
>>> Reading symbols from /usr/lib/libsupc++.so.1...done.
>>> Loaded symbols for /usr/lib/libsupc++.so.1
>>> Reading symbols from /libexec/ld-elf.so.1...done.
>>> Loaded symbols for /libexec/ld-elf.so.1
>>> #0  0x00000008008e2520 in yylex (lvalp=0x7fffffffd250, p=0x7fffffffd3b0)
>>> at
>>> mapparser.y:649
>>> 649     mapparser.y: No such file or directory.
>>>          in mapparser.y
>>> [New Thread 809007400 (LWP 101134/mapserv)]
>>>
>>> So apparently there seems to be a file missing!? Looking at the source
>>> code
>>> (git), line 649 is a blank line, so I'm not sure what's missing exactly.
>>> I've got yacc, bison and flex installed. For testing purposes I'm using
>>> the
>>> mapserver cgi on the command line:
>>>
>>> /usr/local/www/apache22/cgi-bin/mapserv -nh
>>>
>>> "QUERY_STRING=map=/data/web/mapserver/cnra/cnra.map&mode=map&layer=boundaries"
>>>
>>> The boundaries layer:
>>>
>>> Layer
>>>
>>> #    Classitem "level"
>>>      Connection "host=10.0.0.2 dbname=osm user=user password=guessme"
>>>      Connectiontype Postgis
>>>      Data "geom FROM (SELECT osm_id, way AS geom, name, admin_level AS
>>> level,
>>> tags FROM planet_osm_polygon) AS foo USING UNIQUE osm_id USING SRID=3857"
>>>      Filter "tags ?& ARRAY['boundary', 'admin_level']"
>>>      Name "boundaries"
>>>      Processing "CLOSE_CONNECTION=DEFER"
>>>      Status on
>>>      Type line
>>>      Units meters
>>>
>>>      Metadata
>>>          "ows_title" "Boundary Map"
>>>          "ows_abstract" "Boundary map - data from OpenStreetMap, ODbl
>>> licensed"
>>>      End
>>>
>>>      Projection
>>>          "init=epsg:3857"
>>>      End
>>>
>>>      Class
>>>
>>>          Expression ("[level]" = "6")
>>> #        Expression "6"
>>>          Name "communes"
>>>
>>>          Style
>>>              Color 10 10 10
>>>              Opacity 50
>>>              Width 2
>>>          End
>>>
>>>      End
>>> End
>>>
>>>
>>> The classitem / simple expression (Expression "6") works with the
>>> mapserver
>>> cgi, but python mapscript throws an error: _mapscript.MapServerError:
>>> msEvalExpression(): General error message. Invalid item index.
>>>
>>> I've read the mapserver expressions documentation [1] and the note that
>>> says
>>> something about the working environment might be linked to more than one
>>> expression library. But my operating system skills are not high enough to
>>> turn this paragraph into something useful for me.
>>>
>>> So any help is greatly appreciated.
>>>
>>> Frank
>>>
>>>
>>> Frank BRONIEWSKI
>>>
>>> METRICO s.à r.l.
>>> géomètres
>>> technologies d'information géographique
>>> rue des Romains 36
>>> L-5433 NIEDERDONVEN
>>>
>>> tél.: +352 26 74 94 - 28
>>> fax.: +352 26 74 94 99
>>> http://www.metrico.lu
>>> _______________________________________________
>>> mapserver-users mailing list
>>> mapserver-users at lists.osgeo.org
>>> http://lists.osgeo.org/mailman/listinfo/mapserver-users
>>
>>
>>
>
> Hi Thomas,
>
> thanks for the fast response! Here's the bt:
>
> (gdb) bt
>
> #0  0x00000008008e2520 in yylex (lvalp=0x7fffffffd250, p=0x7fffffffd3b0) at
> mapparser.y:649
> #1  0x00000008008e0146 in yyparse (p=0x7fffffffd3b0) at mapparser.c:1500
> #2  0x00000008009239b2 in msEvalExpression (layer=0x809009000,
> shape=0x7fffffffd4e0,
>     expression=0x8090a0280, itemindex=-1) at maputil.c:478
> #3  0x0000000800923f03 in msShapeGetClass (layer=0x809009000,
> map=0x8090bd800,
>     shape=0x7fffffffd4e0, classgroup=0x0, numclasses=1) at maputil.c:581
> #4  0x0000000800980ab2 in msDrawVectorLayer (map=0x8090bd800,
> layer=0x809009000, image=0x8090a91c0)
>     at mapdraw.c:989
> #5  0x00000008009800ed in msDrawLayer (map=0x8090bd800, layer=0x809009000,
> image=0x8090a91c0)
>     at mapdraw.c:808
> #6  0x000000080097ed18 in msDrawMap (map=0x8090bd800, querymap=0) at
> mapdraw.c:437
> #7  0x0000000800a16e6e in msCGIDispatchImageRequest (mapserv=0x8090b2300) at
> mapservutil.c:1448
> #8  0x0000000800a179c2 in msCGIDispatchRequest (mapserv=0x8090b2300) at
> mapservutil.c:1690
> #9  0x00000000004012c1 in main (argc=3, argv=0x7fffffffd9f0) at
> mapserv.c:259
> (gdb)
>
>
>
>
> --
> Frank BRONIEWSKI
>
> METRICO s.à r.l.
> géomètres
> technologies d'information géographique
> rue des Romains 36
> L-5433 NIEDERDONVEN
>
> tél.: +352 26 74 94 - 28
> fax.: +352 26 74 94 99
> http://www.metrico.lu



More information about the MapServer-users mailing list