[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