[mapserver-users] Expression segmentation fault

Frank Broniewski brfr at metrico.lu
Wed Sep 4 05:39:04 PDT 2013


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