Opened 13 years ago

Closed 13 years ago

#3760 closed defect (fixed)

Floating point exception agg png

Reported by: ddegasperi Owned by: tbonfort
Priority: normal Milestone:
Component: MapServer C Library Version: 5.6
Severity: normal Keywords:
Cc:

Description (last modified by dmorissette)

I'v encountered following problem with outputformat png (agg driver):

shp2img -m map.map -l "ropeway" -e 667072.437052 5153904.693426 677867.431220 5164699.687594 -s 1224 1224 -o test.png -all_debug 1

(i got a FPE)

The debugger backtrace gives me:

Program received signal SIGFPE, Arithmetic exception.
0x00000000004ba89e in mapserver::line_image_pattern<mapserver::pattern_filter_bilinear_rgba<mapserver::rgba8> >::pixel (this=0x7fffffffc940, p=0x7fffffffc43c, x=82, y=-757)
    at renderers/agg/include/agg_renderer_outline_image.h:173
173                 m_filter->pixel_high_res(m_buf.rows(),
(gdb) bt
#0  0x00000000004ba89e in mapserver::line_image_pattern<mapserver::pattern_filter_bilinear_rgba<mapserver::rgba8> >::pixel (this=0x7fffffffc940, p=0x7fffffffc43c, x=82, y=-757)
    at renderers/agg/include/agg_renderer_outline_image.h:173
#1  0x00000000004ba8fb in mapserver::renderer_outline_image<mapserver::renderer_base<mapserver::pixfmt_alpha_blend_rgba<mapserver::blender_rgba_pre<mapserver::rgba8, mapserver::order_bgra>, mapserv_row_ptr_cache<int>, int> >, mapserver::line_image_pattern<mapserver::pattern_filter_bilinear_rgba<mapserver::rgba8> > >::pixel (this=0x7fffffffc9e0, p=0x7fffffffc43c, x=82, y=-757)
    at renderers/agg/include/agg_renderer_outline_image.h:860
#2  0x00000000004bafba in mapserver::line_interpolator_image<mapserver::renderer_outline_image<mapserver::renderer_base<mapserver::pixfmt_alpha_blend_rgba<mapserver::blender_rgba_pre<mapserver::rgba8, mapserver::order_bgra>, mapserv_row_ptr_cache<int>, int> >, mapserver::line_image_pattern<mapserver::pattern_filter_bilinear_rgba<mapserver::rgba8> > > >::step_hor (this=0x7fffffffc1c0)
    at renderers/agg/include/agg_renderer_outline_image.h:668
#3  0x00000000004bb27f in mapserver::renderer_outline_image<mapserver::renderer_base<mapserver::pixfmt_alpha_blend_rgba<mapserver::blender_rgba_pre<mapserver::rgba8, mapserver::order_bgra>, mapserv_row_ptr_cache<int>, int> >, mapserver::line_image_pattern<mapserver::pattern_filter_bilinear_rgba<mapserver::rgba8> > >::line3_no_clip (this=0x7fffffffc9e0, lp=..., sx=105681, sy=155778, ex=101946, ey=147898)
    at renderers/agg/include/agg_renderer_outline_image.h:931
#4  0x00000000004c99f9 in mapserver::renderer_outline_image<mapserver::renderer_base<mapserver::pixfmt_alpha_blend_rgba<mapserver::blender_rgba_pre<mapserver::rgba8, mapserver::order_bgra>, mapserv_row_ptr_cache<int>, int> >, mapserver::line_image_pattern<mapserver::pattern_filter_bilinear_rgba<mapserver::rgba8> > >::line3 (this=0x7fffffffc9e0, lp=..., sx=105681, sy=155778, ex=101946, ey=147898)
    at renderers/agg/include/agg_renderer_outline_image.h:992
#5  0x00000000004cc5b9 in mapserver::rasterizer_outline_aa<mapserver::renderer_outline_image<mapserver::renderer_base<mapserver::pixfmt_alpha_blend_rgba<mapserver::blender_rgba_pre<mapserver::rgba8, mapserver::order_bgra>, mapserv_row_ptr_cache<int>, int> >, mapserver::line_image_pattern<mapserver::pattern_filter_bilinear_rgba<mapserver::rgba8> > >, mapserver::line_coord_sat>::render (this=0x7fffffffc9a0,
    close_polygon=false) at renderers/agg/include/agg_rasterizer_outline_aa.h:540
#6  0x00000000004cc9b5 in mapserver::rasterizer_outline_aa<mapserver::renderer_outline_image<mapserver::renderer_base<mapserver::pixfmt_alpha_blend_rgba<mapserver::blender_rgba_pre<mapserver::rgba8, mapserver::order_bgra>, mapserv_row_ptr_cache<int>, int> >, mapserver::line_image_pattern<mapserver::pattern_filter_bilinear_rgba<mapserver::rgba8> > >, mapserver::line_coord_sat>::add_path<line_adaptor> (
    this=0x7fffffffc9a0, vs=..., path_id=0) at renderers/agg/include/agg_rasterizer_outline_aa.h:177
#7  0x00000000004cca3f in AGGMapserverRenderer::renderPathPixmapBGRA<line_adaptor> (this=0xf74350, line=..., pattern=...) at mapagg.cpp:392
#8  0x00000000004cccea in AGGMapserverRenderer::renderPolylineVectorSymbol<line_adaptor, mapserver::conv_stroke<mapserver::path_base<mapserver::vertex_block_storage<double, 8u, 256u> >, mapserver::null_markers> > (this=0xf74350, shape=..., symbol=..., tilewidth=0, tileheight=5, color=..., backgroundcolor=...) at mapagg.cpp:370
#9  0x00000000004a9b21 in msDrawLineSymbolAGG(._98 *, ._105 *, ._39 *, ._91 *, double) (symbolset=0x822ae0, image=0x937b30, p=0x7fffffffd310, style=0x87e230, scalefactor=1.3333333333333333)
    at mapagg.cpp:1723
#10 0x000000000053d573 in msDrawLineSymbol (symbolset=0x822ae0, image=0x937b30, p=0x7fffffffd310, style=0x87e230, scalefactor=1.3333333333333333) at maprendering.c:488
#11 0x0000000000485521 in msDrawShape (map=0x822ab0, layer=0x87c820, shape=0x7fffffffd310, image=0x937b30, style=0, querymapMode=0) at mapdraw.c:1962
#12 0x000000000047fe20 in msDrawVectorLayer (map=0x822ab0, layer=0x87c820, image=0x937b30) at mapdraw.c:1032
#13 0x000000000047f32e in msDrawLayer (map=0x822ab0, layer=0x87c820, image=0x937b30) at mapdraw.c:822
#14 0x000000000047e1e5 in msDrawMap (map=0x822ab0, querymap=0) at mapdraw.c:468
#15 0x0000000000440b32 in main (argc=17, argv=0x7fffffffd848) at shp2img.c:292

When I switch to outputformat jpeg (agg driver) everything is fine.

MapServer is 5.6.6 on 64bit CentOS 5.5

Attachments (1)

fpe_example.zip (85.0 KB ) - added by ddegasperi 13 years ago.
Files to reproduce the error

Download all attachments as: .zip

Change History (5)

by ddegasperi, 13 years ago

Attachment: fpe_example.zip added

Files to reproduce the error

comment:1 by dmorissette, 13 years ago

Description: modified (diff)

comment:2 by tbonfort, 13 years ago

Owner: changed from sdlime to tbonfort
Status: newassigned

I've reproduced the problem. looking into it.

comment:3 by tbonfort, 13 years ago

note: mapserver 6 is not affected by the issue.

comment:4 by tbonfort, 13 years ago

Resolution: fixed
Status: assignedclosed

fixed in r11312.

your symbols do not/won't work for mapserver 6.0, as you have not put a GAP parameter in your style, and the "brushed" output we had for agg when GAP=0 has not (yet?) been ported to 6.0.

btw, thank you for the precise test case!

Note: See TracTickets for help on using tickets.