SIGSEGV when rendering geotiff layer with bilinear8 scaling #1529

Closed
PetrDlouhy opened this Issue Oct 10, 2012 · 9 comments

Comments

Projects
None yet
3 participants
@PetrDlouhy
Contributor

PetrDlouhy commented Oct 10, 2012

I have geotiff hillshade layer defined as:

<Style name="shading">
    <Rule name="!stínování reliéfu">
      &maxscale_zoom7;
      &minscale_zoom12;
      <RasterSymbolizer opacity="0.5" scaling="bilinear8" comp-op="multiply"/>
    </Rule>
</Style>
  <StyleName>shading</StyleName>
      <Datasource>
        <Parameter name="type">gdal</Parameter>
        <Parameter name="file">&hgtdata;/hillshade30.tif</Parameter>
        <Parameter name="format">tiff</Parameter>
      </Datasource>
  </Layer>

In zoom 11 and 12 Mapnik fails with SIGSEGV. The output from gdb is:

python2.7: include/mapnik/image_data.hpp:63: const T& mapnik::ImageData<T>::operator()(unsigned int, unsigned int) const [with T = unsigned int]: Assertion `i<width_ && j<height_' failed.

Program received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffddfb4700 (LWP 14389)]
0x00007ffff68f8405 in __GI_raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
64  ../nptl/sysdeps/unix/sysv/linux/raise.c: Adresář nebo soubor neexistuje.
(gdb) bt
#0  0x00007ffff68f8405 in __GI_raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#1  0x00007ffff68fbb6b in __GI_abort () at abort.c:91
#2  0x00007ffff68f10ce in __assert_fail_base (fmt=<optimized out>, assertion=0x7ffff5b4a8ac "i<width_ && j<height_", file=0x7ffff5b4a88e "include/mapnik/image_data.hpp", line=<optimized out>, function=<optimized out>) at assert.c:94
#3  0x00007ffff68f1172 in __GI___assert_fail (assertion=0x7ffff5b4a8ac "i<width_ && j<height_", file=0x7ffff5b4a88e "include/mapnik/image_data.hpp", line=63, 
    function=0x7ffff5b4ac60 "const T& mapnik::ImageData<T>::operator()(unsigned int, unsigned int) const [with T = unsigned int]") at assert.c:103
#4  0x00007ffff584a0c2 in mapnik::ImageData<unsigned int>::operator() (this=0x7fffd04b65f0, i=4612, j=2) at include/mapnik/image_data.hpp:63
#5  0x00007ffff3d41f4f in mapnik::scale_image_bilinear8<mapnik::ImageData<unsigned int> > (target=..., source=..., x_off_f=-0.8177992005101089, y_off_f=-0.9466372982520852) at src/image_scaling.cpp:234
#6  0x00007ffff419ce9d in mapnik::agg_renderer<mapnik::image_32>::process (this=0x7fffddfb2900, sym=..., feature=..., prj_trans=...) at src/agg/process_raster_symbolizer.cpp:84
#7  0x00007ffff3c15dba in mapnik::process_impl<true>::process<mapnik::agg_renderer<mapnik::image_32>, mapnik::raster_symbolizer, mapnik::feature_impl, mapnik::proj_transform> (ren=..., sym=..., f=..., tr=...) at include/mapnik/feature_style_processor_impl.hpp:75
#8  0x00007ffff3c113c1 in mapnik::feature_style_processor<mapnik::agg_renderer<mapnik::image_32> >::symbol_dispatch::operator()<mapnik::raster_symbolizer> (this=0x7fffddfb1390, sym=...) at include/mapnik/feature_style_processor_impl.hpp:113
#9  0x00007ffff3c0ac07 in boost::detail::variant::invoke_visitor<mapnik::feature_style_processor<mapnik::agg_renderer<mapnik::image_32> >::symbol_dispatch const>::internal_visit<mapnik::raster_symbolizer const> (this=0x7fffddfb1300, operand=...)
    at /usr/include/boost/variant/variant.hpp:858
#10 0x00007ffff3bfffa7 in boost::detail::variant::visitation_impl_invoke_impl<boost::detail::variant::invoke_visitor<mapnik::feature_style_processor<mapnik::agg_renderer<mapnik::image_32> >::symbol_dispatch const>, void const*, mapnik::raster_symbolizer> (
    internal_which=5, visitor=..., storage=0x14b1428) at /usr/include/boost/variant/detail/visitation_impl.hpp:145
#11 0x00007ffff3bf592d in boost::detail::variant::visitation_impl_invoke<boost::detail::variant::invoke_visitor<mapnik::feature_style_processor<mapnik::agg_renderer<mapnik::image_32> >::symbol_dispatch const>, void const*, mapnik::raster_symbolizer, boost::variant<mapnik::point_symbolizer, mapnik::line_symbolizer, mapnik::line_pattern_symbolizer, mapnik::polygon_symbolizer, mapnik::polygon_pattern_symbolizer, mapnik::raster_symbolizer, mapnik::shield_symbolizer, mapnik::text_symbolizer, mapnik::building_symbolizer, mapnik::markers_symbolizer, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>::has_fallback_type_> (internal_which=5, visitor=..., storage=0x14b1428, t=0x0) at /usr/include/boost/variant/detail/visitation_impl.hpp:173
#12 0x00007ffff3beb1b5 in boost::detail::variant::visitation_impl<mpl_::int_<0>, boost::detail::variant::visitation_impl_step<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<10l>, mapnik::point_symbolizer, boost::mpl::l_item<mpl_::long_<9l>, mapnik::line_symbolizer, boost::mpl::l_item<mpl_::long_<8l>, mapnik::line_pattern_symbolizer, boost::mpl::l_item<mpl_::long_<7l>, mapnik::polygon_symbolizer, boost::mpl::l_item<mpl_::long_<6l>, mapnik::polygon_pattern_symbolizer, boost::mpl::l_item<mpl_::long_<5l>, mapnik::raster_symbolizer, boost::mpl::l_item<mpl_::long_<4l>, mapnik::shield_symbolizer, boost::mpl::l_item<mpl_::long_<3l>, mapnik::text_symbolizer, boost::mpl::l_item<mpl_::long_<2l>, mapnik::building_symbolizer, boost::mpl::l_item<mpl_::long_<1l>, mapnik::markers_symbolizer, boost::mpl::l_end> > > > > > > > > > >, boost::mpl::l_iter<boost::mpl::l_end> >, boost::detail::variant::invoke_visitor<mapnik::feature_style_processor<mapnik::agg_renderer<mapnik::image_32> >::symbol_dispatch const>, void const*, boost::variant<mapnik::point_symbolizer, mapnik::line_symbolizer, mapnik::line_pattern_symbolizer, mapnik::polygon_symbolizer, mapnik::polygon_pattern_symbolizer, mapnik::raster_symbolizer, mapnik::shield_symbolizer, mapnik::text_symbolizer, mapnik::building_symbolizer, mapnik::markers_symbolizer, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>::has_fallback_type_> (internal_which=5, logical_which=5, visitor=..., storage=0x14b1428, no_backup_flag=...) at /usr/include/boost/variant/detail/visitation_impl.hpp:260
#13 0x00007ffff3bdf5cb in boost::variant<mapnik::point_symbolizer, mapnik::line_symbolizer, mapnik::line_pattern_symbolizer, mapnik::polygon_symbolizer, mapnik::polygon_pattern_symbolizer, mapnik::raster_symbolizer, mapnik::shield_symbolizer, mapnik::text_symbolizer, mapnik::building_symbolizer, mapnik::markers_symbolizer, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>::internal_apply_visitor_impl<boost::detail::variant::invoke_visitor<mapnik::feature_style_processor<mapnik::agg_renderer<mapnik::image_32> >::symbol_dispatch const>, void const*> (
    internal_which=5, logical_which=5, visitor=..., storage=0x14b1428) at /usr/include/boost/variant/variant.hpp:1802
#14 0x00007ffff3bd7394 in boost::variant<mapnik::point_symbolizer, mapnik::line_symbolizer, mapnik::line_pattern_symbolizer, mapnik::polygon_symbolizer, mapnik::polygon_pattern_symbolizer, mapnik::raster_symbolizer, mapnik::shield_symbolizer, mapnik::text_symbolizer, mapnik::building_symbolizer, mapnik::markers_symbolizer, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>::internal_apply_visitor<boost::detail::variant::invoke_visitor<mapnik::feature_style_processor<mapnik::agg_renderer<mapnik::image_32> >::symbol_dispatch const> > (this=0x14b1420, 
    visitor=...) at /usr/include/boost/variant/variant.hpp:1824
#15 0x00007ffff3bd2424 in boost::variant<mapnik::point_symbolizer, mapnik::line_symbolizer, mapnik::line_pattern_symbolizer, mapnik::polygon_symbolizer, mapnik::polygon_pattern_symbolizer, mapnik::raster_symbolizer, mapnik::shield_symbolizer, mapnik::text_symbolizer, mapnik::building_symbolizer, mapnik::markers_symbolizer, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>::apply_visitor<mapnik::feature_style_processor<mapnik::agg_renderer<mapnik::image_32> >::symbol_dispatch const> (this=0x14b1420, visitor=...)
    at /usr/include/boost/variant/variant.hpp:1846
#16 0x00007ffff3bccc3e in boost::apply_visitor<mapnik::feature_style_processor<mapnik::agg_renderer<mapnik::image_32> >::symbol_dispatch, boost::variant<mapnik::point_symbolizer, mapnik::line_symbolizer, mapnik::line_pattern_symbolizer, mapnik::polygon_symbolizer, mapnik::polygon_pattern_symbolizer, mapnik::raster_symbolizer, mapnik::shield_symbolizer, mapnik::text_symbolizer, mapnik::building_symbolizer, mapnik::markers_symbolizer, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> const> (visitor=..., visitable=...)
    at /usr/include/boost/variant/detail/apply_visitor_unary.hpp:76
#17 0x00007ffff3bc71a1 in mapnik::feature_style_processor<mapnik::agg_renderer<mapnik::image_32> >::render_style (this=0x7fffddfb2900, lay=..., p=..., style=0x1686568, style_name=..., features=..., prj_trans=..., scale_denom=272989.38673278113)
    at include/mapnik/feature_style_processor_impl.hpp:545
#18 0x00007ffff3bc67bf in mapnik::feature_style_processor<mapnik::agg_renderer<mapnik::image_32> >::apply_to_layer (this=0x7fffddfb2900, lay=..., p=..., proj0=..., scale_denom=272989.38673278113, names=...) at include/mapnik/feature_style_processor_impl.hpp:473
#19 0x00007ffff3bc3e61 in mapnik::feature_style_processor<mapnik::agg_renderer<mapnik::image_32> >::apply (this=0x7fffddfb2900) at include/mapnik/feature_style_processor_impl.hpp:168
#20 0x00007ffff588faa9 in render (map=..., image=..., scale_factor=1, offset_x=0, offset_y=0) at bindings/python/mapnik_python.cpp:123
#21 0x00007ffff58a682f in render_overloads::non_void_return_type::gen<boost::mpl::vector6<void, mapnik::Map const&, mapnik::image_32&, double, unsigned int, unsigned int> >::func_0 (arg0=..., arg1=...) at bindings/python/mapnik_python.cpp:353
#22 0x00007ffff58afeca in boost::python::detail::invoke<int, void (*)(mapnik::Map const&, mapnik::image_32&), boost::python::arg_from_python<mapnik::Map const&>, boost::python::arg_from_python<mapnik::image_32&> > (
    f=@0xaa0fd8: 0x7ffff58a67fd <render_overloads::non_void_return_type::gen<boost::mpl::vector6<void, mapnik::Map const&, mapnik::image_32&, double, unsigned int, unsigned int> >::func_0(mapnik::Map const&, mapnik::image_32&)>, ac0=..., ac1=...)
    at /usr/include/boost/python/detail/invoke.hpp:81
#23 0x00007ffff58aac3d in boost::python::detail::caller_arity<2u>::impl<void (*)(mapnik::Map const&, mapnik::image_32&), boost::python::default_call_policies, boost::mpl::vector3<void, mapnik::Map const&, mapnik::image_32&> >::operator() (this=0xaa0fd8, args_=0xe16290)
    at /usr/include/boost/python/detail/caller.hpp:223
#24 0x00007ffff58a94b9 in boost::python::objects::caller_py_function_impl<boost::python::detail::caller<void (*)(mapnik::Map const&, mapnik::image_32&), boost::python::default_call_policies, boost::mpl::vector3<void, mapnik::Map const&, mapnik::image_32&> > >::operator()
    (this=0xaa0fd0, args=0xe16290, kw=0x0) at /usr/include/boost/python/object/py_function.hpp:38
#25 0x00007ffff0c00c6f in boost::python::objects::function::call(_object*, _object*) const () from /usr/lib/libboost_python-py27.so.1.49.0
#26 0x00007ffff0c00ec8 in ?? () from /usr/lib/libboost_python-py27.so.1.49.0
#27 0x00007ffff0c0a2c3 in boost::python::detail::exception_handler::operator()(boost::function0<void> const&) const () from /usr/lib/libboost_python-py27.so.1.49.0
#28 0x00007ffff58a386c in boost::python::detail::translate_exception<std::runtime_error, void (*)(std::runtime_error const&)>::operator() (this=0xb4a778, handler=..., f=..., translate=0x7ffff58908b6 <runtime_error_translator(std::runtime_error const&)>)
    at /usr/include/boost/python/detail/translate_exception.hpp:48
#29 0x00007ffff58a1175 in boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(std::runtime_error const&)> >::operator()<bool, boost::python::detail::translate_exception<std::runtime_error, void (*)(std::runtime_error const&)>, boost::_bi::list2<boost::python::detail::exception_handler const&, boost::function0<void> const&> > (this=0xb4a780, f=..., a=...) at /usr/include/boost/bind/bind.hpp:382
#30 0x00007ffff589e0b2 in boost::_bi::bind_t<bool, boost::python::detail::translate_exception<std::runtime_error, void (*)(std::runtime_error const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(std::runtime_error const&)> > >::operator()<boost::python::detail::exception_handler, boost::function0<void> > (this=0xb4a778, a1=..., a2=...) at /usr/include/boost/bind/bind_template.hpp:102
#31 0x00007ffff589aa25 in boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<std::runtime_error, void (*)(std::runtime_error const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(std::runtime_error const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke (function_obj_ptr=..., a0=..., a1=...) at /usr/include/boost/function/function_template.hpp:132
#32 0x00007ffff0c0a2a6 in boost::python::detail::exception_handler::operator()(boost::function0<void> const&) const () from /usr/lib/libboost_python-py27.so.1.49.0
#33 0x00007ffff58a3662 in boost::python::detail::translate_exception<mapnik::value_error, void (*)(mapnik::value_error const&)>::operator() (this=0xb5bb48, handler=..., f=..., translate=0x7ffff5890879 <value_error_translator(mapnik::value_error const&)>)
---Type <return> to continue, or q <return> to quit---    at /usr/include/boost/python/detail/translate_exception.hpp:48
#34 0x00007ffff58a103f in boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(mapnik::value_error const&)> >::operator()<bool, boost::python::detail::translate_exception<mapnik::value_error, void (*)(mapnik::value_error const&)>, boost::_bi::list2<boost::python::detail::exception_handler const&, boost::function0<void> const&> > (this=0xb5bb50, f=..., a=...) at /usr/include/boost/bind/bind.hpp:382
#35 0x00007ffff589dfca in boost::_bi::bind_t<bool, boost::python::detail::translate_exception<mapnik::value_error, void (*)(mapnik::value_error const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(mapnik::value_error const&)> > >::operator()<boost::python::detail::exception_handler, boost::function0<void> > (this=0xb5bb48, a1=..., a2=...) at /usr/include/boost/bind/bind_template.hpp:102
#36 0x00007ffff589a933 in boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<mapnik::value_error, void (*)(mapnik::value_error const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(mapnik::value_error const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke (function_obj_ptr=..., a0=..., a1=...) at /usr/include/boost/function/function_template.hpp:132
#37 0x00007ffff0c0a2a6 in boost::python::detail::exception_handler::operator()(boost::function0<void> const&) const () from /usr/lib/libboost_python-py27.so.1.49.0
#38 0x00007ffff58a3458 in boost::python::detail::translate_exception<mapnik::config_error, void (*)(mapnik::config_error const&)>::operator() (this=0xa63e68, handler=..., f=..., translate=0x7ffff589083c <config_error_translator(mapnik::config_error const&)>)
    at /usr/include/boost/python/detail/translate_exception.hpp:48
#39 0x00007ffff58a0f09 in boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(mapnik::config_error const&)> >::operator()<bool, boost::python::detail::translate_exception<mapnik::config_error, void (*)(mapnik::config_error const&)>, boost::_bi::list2<boost::python::detail::exception_handler const&, boost::function0<void> const&> > (this=0xa63e70, f=..., a=...) at /usr/include/boost/bind/bind.hpp:382
#40 0x00007ffff589dee2 in boost::_bi::bind_t<bool, boost::python::detail::translate_exception<mapnik::config_error, void (*)(mapnik::config_error const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(mapnik::config_error const&)> > >::operator()<boost::python::detail::exception_handler, boost::function0<void> > (this=0xa63e68, a1=..., a2=...) at /usr/include/boost/bind/bind_template.hpp:102
#41 0x00007ffff589a805 in boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<mapnik::config_error, void (*)(mapnik::config_error const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(mapnik::config_error const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke (function_obj_ptr=..., a0=..., a1=...) at /usr/include/boost/function/function_template.hpp:132
#42 0x00007ffff0c0a0a9 in boost::python::handle_exception_impl(boost::function0<void>) () from /usr/lib/libboost_python-py27.so.1.49.0
#43 0x00007ffff0bff164 in ?? () from /usr/lib/libboost_python-py27.so.1.49.0
#44 0x00000000004e9f36 in PyObject_Call ()
#45 0x000000000049846a in PyEval_EvalFrameEx ()
#46 0x0000000000498602 in PyEval_EvalFrameEx ()
#47 0x000000000049f1c0 in PyEval_EvalCodeEx ()
#48 0x00000000004a8a92 in ?? ()
#49 0x00000000004e9f36 in PyObject_Call ()
#50 0x0000000000499bc0 in PyEval_EvalFrameEx ()
#51 0x0000000000498602 in PyEval_EvalFrameEx ()
#52 0x0000000000498602 in PyEval_EvalFrameEx ()
#53 0x000000000049f1c0 in PyEval_EvalCodeEx ()
#54 0x00000000004a8960 in ?? ()
#55 0x00000000004e9f36 in PyObject_Call ()
#56 0x00000000004ec11a in ?? ()
#57 0x00000000004e9f36 in PyObject_Call ()
#58 0x00000000004ea396 in PyEval_CallObjectWithKeywords ()
#59 0x00000000004b0bc8 in ?? ()
#60 0x00007ffff7bc4e9a in start_thread (arg=0x7fffddfb4700) at pthread_create.c:308
#61 0x00007ffff69b439d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#62 0x0000000000000000 in ?? ()

If the scaling is set to "bilinear", everything is working perfectly.

@lightmare

This comment has been minimized.

Show comment Hide comment
@lightmare

lightmare Oct 10, 2012

Contributor

src/image_scaling.cpp:222

xs = (x*source_width+offs_x)/target_width;

if (offs_x >= source_width) && (x == target_width-1)
then (x*source_width+offs_x) >= (target_width*source_width)
which leads to (xs >= source_width) in the last iteration

I don't understand the formulas for offs_x/y, so instead of tackling with them, I'd clamp them:

if (offs_x >= source_width)
    offs_x = source_width-1;
if (offs_y >= source_height)
    offs_y = source_height-1;

Should prevent that assertion failure, not sure what it does to the image...

Contributor

lightmare commented Oct 10, 2012

src/image_scaling.cpp:222

xs = (x*source_width+offs_x)/target_width;

if (offs_x >= source_width) && (x == target_width-1)
then (x*source_width+offs_x) >= (target_width*source_width)
which leads to (xs >= source_width) in the last iteration

I don't understand the formulas for offs_x/y, so instead of tackling with them, I'd clamp them:

if (offs_x >= source_width)
    offs_x = source_width-1;
if (offs_y >= source_height)
    offs_y = source_height-1;

Should prevent that assertion failure, not sure what it does to the image...

@springmeyer

This comment has been minimized.

Show comment Hide comment
@springmeyer

springmeyer Mar 13, 2013

Member

@PetrDlouhy - did you have a chance to test @lightmare's patch?

Member

springmeyer commented Mar 13, 2013

@PetrDlouhy - did you have a chance to test @lightmare's patch?

@springmeyer

This comment has been minimized.

Show comment Hide comment
@springmeyer

springmeyer Nov 7, 2013

Member

ping @lightmare - are you around? Have an important question for you - shoot me an email at dane@mapbox.com if you can.

Member

springmeyer commented Nov 7, 2013

ping @lightmare - are you around? Have an important question for you - shoot me an email at dane@mapbox.com if you can.

@springmeyer

This comment has been minimized.

Show comment Hide comment
@springmeyer

springmeyer Nov 7, 2013

Member

@PetrDlouhy - I am unable to replicate with data locally. Can you please post a testcase and share with me the exact way to replicate?

Member

springmeyer commented Nov 7, 2013

@PetrDlouhy - I am unable to replicate with data locally. Can you please post a testcase and share with me the exact way to replicate?

@PetrDlouhy

This comment has been minimized.

Show comment Hide comment
@PetrDlouhy

PetrDlouhy Nov 12, 2013

Contributor

When I tried now, I couldn't replicate either (with Mapnik 2.3.0-pre). Maybe it is fiexed now. You could try with the original geotiff.

Contributor

PetrDlouhy commented Nov 12, 2013

When I tried now, I couldn't replicate either (with Mapnik 2.3.0-pre). Maybe it is fiexed now. You could try with the original geotiff.

@springmeyer

This comment has been minimized.

Show comment Hide comment
@springmeyer

springmeyer Nov 12, 2013

Member

Thanks for checking. If its not easy to replicate then we can't fix. I think we should just remove. Closing this and tracking at #2076

Member

springmeyer commented Nov 12, 2013

Thanks for checking. If its not easy to replicate then we can't fix. I think we should just remove. Closing this and tracking at #2076

@springmeyer

This comment has been minimized.

Show comment Hide comment
@springmeyer

springmeyer Nov 12, 2013

Member

@lightmare - shoot me an email if you get a chance.

Member

springmeyer commented Nov 12, 2013

@lightmare - shoot me an email if you get a chance.

@PetrDlouhy

This comment has been minimized.

Show comment Hide comment
@PetrDlouhy

PetrDlouhy Nov 13, 2013

Contributor

Now I have got the segfault on my rendering server with mapnik 2.2.0-pre (231bf3c) is installed. So it really seems, that the bug is fixed in 2.3.0 branch. Are you interested in bisecting the correcting commit, or is it enough that it is fixed now?

Contributor

PetrDlouhy commented Nov 13, 2013

Now I have got the segfault on my rendering server with mapnik 2.2.0-pre (231bf3c) is installed. So it really seems, that the bug is fixed in 2.3.0 branch. Are you interested in bisecting the correcting commit, or is it enough that it is fixed now?

@springmeyer

This comment has been minimized.

Show comment Hide comment
@springmeyer

springmeyer Nov 13, 2013

Member

interesting. thanks for the details. right, not interested in bisecting. if any crashes occur with other scaling methods besides bilinear8 let me know.

Member

springmeyer commented Nov 13, 2013

interesting. thanks for the details. right, not interested in bisecting. if any crashes occur with other scaling methods besides bilinear8 let me know.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment