[mapserver-dev] getting a crash that might be 32-64 bit ro buildissue related

Stephen Woodbridge woodbri at swoodbridge.com
Sat Jun 21 11:12:21 EDT 2008


Thomas,

Yes! commenting out BACKGROUNDCOLOR fixed the crash. I will try to 
generate stackstrace for 5.2, but the behavior is a little different, it 
seems to go into an infinite loop on 5.2 and then times out in apache, 
but just runs forever from the command line. I can ctrl-c in gdb and do 
a stackstrace, but it will be arbitrary depending on where it is 
executing in the loop when I hit ctrl-c.

I have also been able to isolate the problem to a small 30+ record set 
in postgis and a single layer mapfile, late last night. I will see if I 
can save the to a shapefile and reproduce the problem. If I can I will 
create a ticket and attach all to it.

It also seems that we could not reproduce the problem on a 32bit cpu, 
but I didn't have time to check all the build params were the same. I 
also want to move this problem to my system and see if I can reproduce 
it on my 64bit system to eliminate possible library compatibility issues.

I found this while generating tiles, and it behaves very much like a 
data related corner case as this is half way through generating the tile 
cache and the generated tiles look fine, but when we hit this area it 
dies. And if we skip this metatile it will continue making good tiles.

I have run postGIS isValid() on the geometries, and the labels look like 
this:

test3=# select gid, name from test.a10;
   gid   | name
--------+------
  239057 | N44
  239537 | N40
  240328 | N44
  240999 |    (null)
  241213 | N44
  243311 | N44
  243312 | N44
  243313 | N44
  243314 | N44
  243315 | N44
  243316 | N44
  243317 | N44
  243747 | N44
  243751 | N44
  243752 | N44
  243753 | N44
  243754 | N44
  831712 | P17
  833734 | P17
  833735 | P17
  833739 | P6
  833740 | P6
  833741 | P6
  833742 | P6
  834097 | P7
  834098 | P7
  834099 | P7
  834100 | P7
  834101 | P7
  834102 | P7
  834103 | P7
  834104 | P7
  834105 | P7

-Steve

thomas bonfort wrote:
> Hi,
> could you also include the stacktrace from 5.2 please.
> it seems the segfault appears when using a backgroundcolor for the
> label. Would it be easy for you to try to disable them and confirm?
> thanks,
> thomas
> 
> On Sat, Jun 21, 2008 at 6:17 AM, Stephen Woodbridge
> <woodbri at swoodbridge.com> wrote:
>> I just checked and it appears to be reproducible on both and I have
>> confirmed I can reproduce it on 5.2 b2 also.
>>
>> For the png test I added map.imagetype=PNG8 and tried map.imagetype=png
>> where the mapfile has
>>
>>  OUTPUTFORMAT
>>    NAME "agg/png24"
>>    MIMETYPE "image/png"
>>    DRIVER "AGG/PNG"
>>    EXTENSION "png"
>>    FORMATOPTION "PALETTE_FORCE=TRUE"
>>    FORMATOPTION "PALETTE=/u/data/maps/palette-ayna-agg.txt"
>>  END
>>
>>  OUTPUTFORMAT
>>    NAME PNG8
>>    DRIVER "GD/PNG"
>>    EXTENSION "png"
>>    MIMETYPE "image/png"
>>    IMAGEMODE RGBA
>>    TRANSPARENT ON
>>    FORMATOPTION "QUANTIZE_FORCE=ON"
>>    FORMATOPTION "QUANTIZE_DITHER=OFF"
>>    FORMATOPTION "QUANTIZE_COLORS=256"
>>  END
>>
>>
>> [Fri Jun 20 23:06:41 2008] [error] [client 129.44.191.48] [Fri Jun 20
>> 23:06:41 2008].320026 msDrawMap(): Layer 0 (World), 0.059s
>> [Fri Jun 20 23:06:41 2008] [error] [client 129.44.191.48] [Fri Jun 20
>> 23:06:41 2008].416089 msDrawMap(): Layer 1 (CountryZ1), 0.096s
>> [Fri Jun 20 23:06:41 2008] [error] [client 129.44.191.48] [Fri Jun 20
>> 23:06:41 2008].419505 msDrawMap(): Layer 5 (Land Contour), 0.003s
>> [Fri Jun 20 23:06:41 2008] [error] [client 129.44.191.48] [Fri Jun 20
>> 23:06:41 2008].460156 msDrawMap(): Layer 6 (World), 0.041s
>> [Fri Jun 20 23:06:41 2008] [error] [client 129.44.191.48] [Fri Jun 20
>> 23:06:41 2008].544059
>> [Fri Jun 20 23:06:41 2008] [error] [client 129.44.191.48] msDrawMap(): Layer
>> 7 (CountryZ1), 0.084s
>> [Fri Jun 20 23:06:41 2008] [error] [client 129.44.191.48] [Fri Jun 20
>> 23:06:41 2008].545289
>> [Fri Jun 20 23:06:41 2008] [error] [client 129.44.191.48] msDrawMap(): Layer
>> 8 (Urban Areas), 0.001s
>> [Fri Jun 20 23:06:41 2008] [error] [client 129.44.191.48] [Fri Jun 20
>> 23:06:41 2008].591990
>> [Fri Jun 20 23:06:41 2008] [error] [client 129.44.191.48] msDrawMap(): Layer
>> 9 (Water p), 0.047s
>> [Fri Jun 20 23:06:41 2008] [error] [client 129.44.191.48] [Fri Jun 20
>> 23:06:41 2008].593163
>> [Fri Jun 20 23:06:41 2008] [error] [client 129.44.191.48] msDrawMap(): Layer
>> 10 (Water l), 0.001s
>> [Fri Jun 20 23:06:41 2008] [error] [client 129.44.191.48] [Fri Jun 20
>> 23:06:41 2008].593603
>> [Fri Jun 20 23:06:41 2008] [error] [client 129.44.191.48] msDrawMap(): Layer
>> 11 (Land Use), 0.000s
>> [Fri Jun 20 23:06:41 2008] [error] [client 129.44.191.48] [Fri Jun 20
>> 23:06:41 2008].596240
>> [Fri Jun 20 23:06:41 2008] [error] [client 129.44.191.48] msDrawMap(): Layer
>> 20 (City Placenames), 0.003s
>> [Fri Jun 20 23:06:41 2008] [error] [client 129.44.191.48] [Fri Jun 20
>> 23:06:41 2008].629935 msDrawMap(): Layer 21 (City points), 0.034s
>> [Fri Jun 20 23:06:41 2008] [error] [client 129.44.191.48] [Fri Jun 20
>> 23:06:41 2008].629979 msPOSTGISLayerOpen called datastatement: the_geom from
>> (select a.gid, a.fcc, a.the_geom, initcap(a.name) as name_out, a.name_alt as
>> name_arb from data.st a  where a.fcc in ('A20')) as foo using SRID=4326
>> using unique gid
>> [Fri Jun 20 23:06:41 2008] [error] [client 129.44.191.48] [Fri Jun 20
>> 23:06:41 2008].630000 MSPOSTGISLayerOpen -- shared connection not available.
>> [Fri Jun 20 23:06:41 2008] [error] [client 129.44.191.48] [Fri Jun 20
>> 23:06:41 2008].635411 msConnPoolRegister(Streets A20,user=postgres
>> dbname=test3 host=localhost port=5432,0x1f9855f0)
>> [Fri Jun 20 23:06:41 2008] [error] [client 129.44.191.48] [Fri Jun 20
>> 23:06:41 2008].635432 msPOSTGISLayerFreeItemInfo called
>> [Fri Jun 20 23:06:41 2008] [error] [client 129.44.191.48] [Fri Jun 20
>> 23:06:41 2008].635444 msPOSTGISLayerInitItemInfo called
>> [Fri Jun 20 23:06:41 2008] [error] [client 129.44.191.48] [Fri Jun 20
>> 23:06:41 2008].635454 msPOSTGISLayerWhichShapes called
>> [Fri Jun 20 23:06:41 2008] [error] [client 129.44.191.48] [Fri Jun 20
>> 23:06:41 2008].635467 msPOSTGISLayerParseData: unique column = gid,
>> srid='4326', geom_column_name = the_geom, table_name=(select a.gid, a.fcc,
>> a.the_geom, initcap(a.name) as name_out, a.name_alt as name_arb from data.st
>> a  where a.fcc in ('A20')) as foo
>> [Fri Jun 20 23:06:41 2008] [error] [client 129.44.191.48] [Fri Jun 20
>> 23:06:41 2008].636178 query_string_0_6:DECLARE mycursor BINARY CURSOR FOR
>> SELECT
>> "name_out"::text,asbinary(force_collection(force_2d(the_geom)),'NDR'),gid::text
>> from (select a.gid, a.fcc, a.the_geom, initcap(a.name) as name_out,
>> a.name_alt as name_arb from data.st a  where a.fcc in ('A20')) as foo WHERE
>> the_geom && setSRID('BOX3D(8.00592636360692
>> 36.6145187636069,9.22424883639308 37.8328412363931)'::BOX3D, 4326 )
>> [Fri Jun 20 23:06:41 2008] [error] [client 129.44.191.48] [Fri Jun 20
>> 23:06:41 2008].681837 msPOSTGISLayerFreeItemInfo called
>> [Fri Jun 20 23:06:41 2008] [error] [client 129.44.191.48] [Fri Jun 20
>> 23:06:41 2008].681875 msPOSTGISLayerClose datastatement: the_geom from
>> (select a.gid, a.fcc, a.the_geom, initcap(a.name) as name_out, a.name_alt as
>> name_arb from data.st a  where a.fcc in ('A20')) as foo using SRID=4326
>> using unique gid
>> [Fri Jun 20 23:06:41 2008] [error] [client 129.44.191.48] [Fri Jun 20
>> 23:06:41 2008].681885 msPOSTGISLayerClose -- closing query_result
>> [Fri Jun 20 23:06:41 2008] [error] [client 129.44.191.48] [Fri Jun 20
>> 23:06:41 2008].682483 msConnPoolRelease(Streets A20,user=postgres
>> dbname=test3 host=localhost port=5432,0x1f9855f0)
>> [Fri Jun 20 23:06:41 2008] [error] [client 129.44.191.48] [Fri Jun 20
>> 23:06:41 2008].682496 msConnPoolClose(user=postgres dbname=test3
>> host=localhost port=5432,0x1f9855f0)
>> [Fri Jun 20 23:06:41 2008] [error] [client 129.44.191.48] [Fri Jun 20
>> 23:06:41 2008].682535 msDrawMap(): Layer 22 (Streets A20), 0.053s
>> [Fri Jun 20 23:06:41 2008] [error] [client 129.44.191.48] [Fri Jun 20
>> 23:06:41 2008].733862
>> [Fri Jun 20 23:06:41 2008] [error] [client 129.44.191.48] msDrawMap(): Layer
>> 23 (Streets A10), 0.051s
>> [Fri Jun 20 23:06:41 2008] [error] [client 129.44.191.48] [Fri Jun 20
>> 23:06:41 2008].734436
>> [Fri Jun 20 23:06:41 2008] [error] [client 129.44.191.48] msDrawMap(): Layer
>> 25 (Placenames), 0.000s
>> [Fri Jun 20 23:06:41 2008] [error] [client 129.44.191.48] [Fri Jun 20
>> 23:06:41 2008].768513 msDrawMap(): Layer 26 (City points), 0.034s
>> [Fri Jun 20 23:06:41 2008] [error] [client 129.44.191.48] [Fri Jun 20
>> 23:06:41 2008].798392 msDrawMap(): Layer 27 (Airport p), 0.030s
>> [Fri Jun 20 23:06:41 2008] [error] [client 129.44.191.48] [Fri Jun 20
>> 23:06:41 2008].828134 msDrawMap(): Layer 28 (Airport points), 0.030s
>> [Fri Jun 20 23:08:27 2008] [warn] [client 129.44.191.48] Timeout waiting for
>> output from CGI script /u/apache2/cgi-bin/mapserv
>> [Fri Jun 20 23:08:41 2008] [warn] [client 129.44.191.48] Timeout waiting for
>> output from CGI script /u/apache2/cgi-bin/mapserv-5.2b2
>> [Fri Jun 20 23:08:41 2008] [error] [client 129.44.191.48] Premature end of
>> script headers: mapserv-5.2b2
>>
>> So this looks like it is probably in the labelcache processing where it is
>> timing out, it also seems to be malloc'ing memory based on strace before it
>> segv or times out and this is confirmed by top.
>>
>> -Steve W
>>
>> Steve Lime wrote:
>>> Is it present in both AGG and GD?
>>>
>>>>>> On 6/20/2008 at 5:42 PM, in message <485C3255.1090207 at swoodbridge.com>,
>>>>>> Stephen
>>> Woodbridge <woodbri at swoodbridge.com> wrote:
>>>> After spending 3 days chasing a problem that is making me nuts, I thought
>>>> I would post this much.
>>>>
>>>> It is clearly label related because if we comment out the label block it
>>>> works fine.
>>>>
>>>> I have been able to reproduce this in mapserver CGI just a short while
>>>> ago. I will try it with 5.2 when I have a chance and let you know what
>>>> happens.
>>>>
>>>> Meanwhile, does this back trace look familiar? Thomas? Steve?
>>>>
>>>> Thanks,
>>>>   -Steve
>>>>
>>>> MapServer version 5.0.0 OUTPUT=GIF OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP
>>>> OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=WMS_SERVER
>>>> SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=GEOS INPUT=EPPL7
>>>> INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE
>>>>
>>>> Program received signal SIGSEGV, Segmentation fault.
>>>> [Switching to Thread 46912496217952 (LWP 15375)]
>>>> 0x00002aaaae38ccb1 in agg::rasterizer_cells_aa<agg::cell_aa>::sort_cells
>>>> ()
>>>>    from /usr/lib64/extensions/no-debug-non-zts-20020429/php_mapscript.so
>>>> (gdb) bt
>>>> #0  0x00002aaaae38ccb1 in
>>>> agg::rasterizer_cells_aa<agg::cell_aa>::sort_cells ()
>>>>    from /usr/lib64/extensions/no-debug-non-zts-20020429/php_mapscript.so
>>>> #1  0x00002aaaae39c396 in
>>>>
>>>> agg::render_scanlines<agg::rasterizer_scanline_aa<agg::rasterizer_sl_clip<agg::
>>>> ras_conv_int>  >,
>>>> agg::scanline_p8,
>>>>
>>>> agg::renderer_scanline_aa_solid<agg::renderer_base<agg::pixfmt_alpha_blend_rgb
>>>> a<agg::blender_rgba_pre<agg::rgba8,
>>>> agg::order_bgra>, mapserv_row_ptr_cache<int>, int> > > > ()
>>>>    from /usr/lib64/extensions/no-debug-non-zts-20020429/php_mapscript.so
>>>> #2  0x00002aaaae39cbb5 in
>>>> AGGMapserverRenderer::renderPathSolid<polygon_adaptor> ()
>>>>    from /usr/lib64/extensions/no-debug-non-zts-20020429/php_mapscript.so
>>>> #3  0x00002aaaae386403 in msDrawShadeSymbolAGG () from
>>>> /usr/lib64/extensions/no-debug-non-zts-20020429/php_mapscript.so
>>>> #4  0x00002aaaae36ae2b in msDrawLabelCache () from
>>>> /usr/lib64/extensions/no-debug-non-zts-20020429/php_mapscript.so
>>>> #5  0x00002aaaae36f827 in msDrawMap () from
>>>> /usr/lib64/extensions/no-debug-non-zts-20020429/php_mapscript.so
>>>> #6  0x00002aaaae328309 in php3_ms_map_draw () from
>>>> /usr/lib64/extensions/no-debug-non-zts-20020429/php_mapscript.so
>>>> #7  0x00000000005255fb in execute (op_array=0xd88a418) at
>>>> /home/steve/work/php-4.4.8/Zend/zend_execute.c:1681
>>>> #8  0x000000000050d44b in zend_execute_scripts (type=8, retval=0x0,
>>>> file_count=3)
>>>>     at /home/steve/work/php-4.4.8/Zend/zend.c:939
>>>> #9  0x00000000004e06fb in php_execute_script
>>>> (primary_file=0x7fff80acb250) at
>>>> /home/steve/work/php-4.4.8/main/main.c:1758
>>>> #10 0x0000000000529ed2 in main (argc=4, argv=0x7fff80acb398) at
>>>> /home/steve/work/php-4.4.8/sapi/cli/php_cli.c:838
>>>> _______________________________________________
>>>> mapserver-dev mailing list
>>>> mapserver-dev at lists.osgeo.org
>>>> http://lists.osgeo.org/mailman/listinfo/mapserver-dev
>> _______________________________________________
>> mapserver-dev mailing list
>> mapserver-dev at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/mapserver-dev
>>



More information about the mapserver-dev mailing list