Hi all,

I am getting a crash with memory corruption in mapserver 6.4.1 when doing a query. The strange this is that I have two identical mapfiles where the only difference is the tif files being referenced by it and while they both crash the errors are slightly different as can be seen in the gdb backtrace below.

Any thoughts on how to fix this?

-Steve W

# /usr/lib/cgi-bin/mapserv -v
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 details follow:

    LAYER
        NAME "query"
        STATUS ON
        TYPE raster
        PROJECTION "init=epsg:4326" END
        TOLERANCE 0
        TOLERANCEUNITS pixels
        DATA "/maps/wms/data/HYCOM/HYCOM-today-currents.tif"
        #PROCESSING "NODATA=10000"
        PROCESSING "NODATA=1.2676506002282e+30"
        TEMPLATE "/maps/wms/pixel.list.html"
    END


# /usr/lib/cgi-bin/mapserv QUERY_STRING='map=/maps/wms/hycom_currents_1.map&mode=query&depth=0&layers=query&mapxy=-77.534375+34.003125'
Content-Type: text/html

0.0090429913,0.11866909,0.003122841,-0.013737384,-0.0049919467,-0.024963228,1.2676506e+30,1.2676506e+30,1.2676506e+30,1.2676506e+30,1.2676506e+30,1.2676506e+30
*** Error in `/usr/lib/cgi-bin/mapserv': double free or corruption (out): 0x00000000006768a0 ***
Aborted (core dumped)


# /usr/lib/cgi-bin/mapserv QUERY_STRING='map=/maps/wms/hycom_currents_2.map&mode=query&depth=0&layers=query&mapxy=-77.534375+34.003125' *** Error in `/usr/lib/cgi-bin/mapserv': malloc(): memory corruption: 0x00000000006781e0 ***
Aborted (core dumped)


If I run it in gdb I get the following backtraces:


(gdb) run QUERY_STRING='map=/maps/wms/hycom_currents_1.map&mode=query&depth=0&layers=query&mapxy=-77.534375+34.003125' Starting program: /usr/lib/cgi-bin/mapserv QUERY_STRING='map=/maps/wms/hycom_currents_1.map&mode=query&depth=0&layers=query&mapxy=-77.534375+34.003125'
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Content-Type: text/html

0.0090429913,0.11866909,0.003122841,-0.013737384,-0.0049919467,-0.024963228,1.2676506e+30,1.2676506e+30,1.2676506e+30,1.2676506e+30,1.2676506e+30,1.2676506e+30
*** Error in `/usr/lib/cgi-bin/mapserv': double free or corruption (out): 0x00000000006768b0 ***

Program received signal SIGABRT, Aborted.
0x00007ffff7461c37 in __GI_raise (sig=sig@entry=6)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
56      ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0  0x00007ffff7461c37 in __GI_raise (sig=sig@entry=6)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x00007ffff7465028 in __GI_abort () at abort.c:89
#2  0x00007ffff749e2a4 in __libc_message (do_abort=do_abort@entry=1,
    fmt=fmt@entry=0x7ffff75ac6b0 "*** Error in `%s': %s: 0x%s ***\n")
    at ../sysdeps/posix/libc_fatal.c:175
#3  0x00007ffff74aa55e in malloc_printerr (ptr=<optimized out>,
    str=0x7ffff75ac7e0 "double free or corruption (out)", action=1)
    at malloc.c:4996
#4  _int_free (av=<optimized out>, p=<optimized out>, have_lock=0)
    at malloc.c:3840
#5  0x00007ffff7ae810c in msFreeCharArray ()
   from /usr/lib/x86_64-linux-gnu/libmapserver.so.1
#6  0x00007ffff7a9a86a in msLayerClose ()
   from /usr/lib/x86_64-linux-gnu/libmapserver.so.1
#7  0x00007ffff7aef300 in freeLayer ()
   from /usr/lib/x86_64-linux-gnu/libmapserver.so.1
#8  0x00007ffff7ace33e in msFreeMap ()
   from /usr/lib/x86_64-linux-gnu/libmapserver.so.1
#9  0x00007ffff7a8576f in msFreeMapServObj ()
   from /usr/lib/x86_64-linux-gnu/libmapserver.so.1
#10 0x000000000040120e in main ()




(gdb) run QUERY_STRING='map=/maps/wms/hycom_currents_2.map&mode=query&depth=0&layers=query&mapxy=-77.534375+34.003125' Starting program: /usr/lib/cgi-bin/mapserv QUERY_STRING='map=/maps/wms/hycom_currents_2.map&mode=query&depth=0&layers=query&mapxy=-77.534375+34.003125'
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
*** Error in `/usr/lib/cgi-bin/mapserv': malloc(): memory corruption: 0x00000000006781f0 ***

Program received signal SIGABRT, Aborted.
0x00007ffff7461c37 in __GI_raise (sig=sig@entry=6)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
56      ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0  0x00007ffff7461c37 in __GI_raise (sig=sig@entry=6)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x00007ffff7465028 in __GI_abort () at abort.c:89
#2  0x00007ffff749e2a4 in __libc_message (do_abort=1,
    fmt=fmt@entry=0x7ffff75ac6b0 "*** Error in `%s': %s: 0x%s ***\n")
    at ../sysdeps/posix/libc_fatal.c:175
#3  0x00007ffff74abe26 in malloc_printerr (ptr=0x6781f0,
str=0x7ffff75a8882 "malloc(): memory corruption", action=<optimized out>)
    at malloc.c:4996
#4  _int_malloc (av=0x7ffff77e9760 <main_arena>, bytes=4) at malloc.c:3447
#5  0x00007ffff74ad6c0 in __GI___libc_malloc (bytes=4) at malloc.c:2891
#6 0x00007ffff74b372a in __GI___strdup (s=0x7ffff7b6c3b3 "gif") at strdup.c:42
#7  0x00007ffff7a663aa in msStrdup ()
   from /usr/lib/x86_64-linux-gnu/libmapserver.so.1
#8  0x00007ffff7a46a01 in msCreateDefaultOutputFormat ()
   from /usr/lib/x86_64-linux-gnu/libmapserver.so.1
#9  0x00007ffff7a47712 in msSelectOutputFormat ()
   from /usr/lib/x86_64-linux-gnu/libmapserver.so.1
#10 0x00007ffff7a47768 in msApplyDefaultOutputFormats ()
   from /usr/lib/x86_64-linux-gnu/libmapserver.so.1
#11 0x00007ffff7a85cb6 in msReturnTemplateQuery ()
   from /usr/lib/x86_64-linux-gnu/libmapserver.so.1
#12 0x00007ffff7a55a7c in msCGIDispatchQueryRequest ()
   from /usr/lib/x86_64-linux-gnu/libmapserver.so.1
#13 0x000000000040118f in main ()

---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus

_______________________________________________
mapserver-users mailing list
mapserver-users@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/mapserver-users

Reply via email to