crash in ~rule during load map #1526

Closed
springmeyer opened this Issue Oct 10, 2012 · 7 comments

Projects

None yet

1 participant

@springmeyer
Member

Crashes every time with mapnik head inside TileMill built with apple provided clang++ (https://github.com/downloads/mapbox/tilemill/TileMill-0.10.0.65.zip):

Also same code causes a new linking error on windows: #1527

doozer:Flex tilemillmac$ which clang++
/usr/bin/clang++
doozer:Flex tilemillmac$ clang++ -v
Apple clang version 3.1 (tags/Apple/clang-318.0.58) (based on LLVM 3.1svn)
Target: x86_64-apple-darwin11.4.0
Thread model: posix
4   _mapnik.node                    0x0000000127e93a99 boost::detail::variant::destroyer::result_type boost::detail::variant::visitation_impl<mpl_::int_<0>, boost::detail::variant::visitation_impl_step<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<11l>, mapnik::point_symbolizer, boost::mpl::l_item<mpl_::long_<10l>, mapnik::line_symbolizer, boost::mpl::l_item<mpl_::long_<9l>, mapnik::line_pattern_symbolizer, boost::mpl::l_item<mpl_::long_<8l>, mapnik::polygon_symbolizer, boost::mpl::l_item<mpl_::long_<7l>, mapnik::polygon_pattern_symbolizer, boost::mpl::l_item<mpl_::long_<6l>, mapnik::raster_symbolizer, boost::mpl::l_item<mpl_::long_<5l>, mapnik::shield_symbolizer, boost::mpl::l_item<mpl_::long_<4l>, mapnik::text_symbolizer, boost::mpl::l_item<mpl_::long_<3l>, mapnik::building_symbolizer, boost::mpl::l_item<mpl_::long_<2l>, mapnik::markers_symbolizer, boost::mpl::l_item<mpl_::long_<1l>, mapnik::debug_symbolizer, boost::mpl::l_end> > > > > > > > > > > >, boost::mpl::l_iter<boost::mpl::l_end> >, boost::detail::variant::destroyer, void*, 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, mapnik::debug_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_>::has_fallback_type_>(int, int, boost::detail::variant::destroyer&, void*, mpl_::bool_<false>, 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, mapnik::debug_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_>::has_fallback_type_, mpl_::int_<0>*, boost::detail::variant::visitation_impl_step<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<11l>, mapnik::point_symbolizer, boost::mpl::l_item<mpl_::long_<10l>, mapnik::line_symbolizer, boost::mpl::l_item<mpl_::long_<9l>, mapnik::line_pattern_symbolizer, boost::mpl::l_item<mpl_::long_<8l>, mapnik::polygon_symbolizer, boost::mpl::l_item<mpl_::long_<7l>, mapnik::polygon_pattern_symbolizer, boost::mpl::l_item<mpl_::long_<6l>, mapnik::raster_symbolizer, boost::mpl::l_item<mpl_::long_<5l>, mapnik::shield_symbolizer, boost::mpl::l_item<mpl_::long_<4l>, mapnik::text_symbolizer, boost::mpl::l_item<mpl_::long_<3l>, mapnik::building_symbolizer, boost::mpl::l_item<mpl_::long_<2l>, mapnik::markers_symbolizer, boost::mpl::l_item<mpl_::long_<1l>, mapnik::debug_symbolizer, boost::mpl::l_end> > > > > > > > > > > >, boost::mpl::l_iter<boost::mpl::l_end> >*) + 185
5   libmapnik.dylib                 0x0000000129033125 mapnik::rule::~rule() + 133
6   libmapnik.dylib                 0x000000012911cde8 mapnik::map_parser::parse_rule(mapnik::feature_type_style&, mapnik::xml_node const&) + 4040
7   libmapnik.dylib                 0x00000001291188db mapnik::map_parser::parse_style(mapnik::Map&, mapnik::xml_node const&) + 3851
8   libmapnik.dylib                 0x000000012911643d mapnik::map_parser::parse_map_include(mapnik::Map&, mapnik::xml_node const&) + 509
9   libmapnik.dylib                 0x000000012911597a mapnik::map_parser::parse_map(mapnik::Map&, mapnik::xml_node const&, std::string const&) + 7434
10  libmapnik.dylib                 0x0000000129115e39 mapnik::load_map_string(mapnik::Map&, std::string const&, bool, std::string) + 329
11  _mapnik.node                    0x0000000127e90e52 Map::EIO_FromString(uv_work_s*) + 66
@springmeyer
Member

I also saw odd linking errors around this same chunk of code on windows

@springmeyer
Member

main changes that could have causes this were adding the debug_symbolizer and moving some code to rule.cpp:

https://github.com/mapnik/mapnik/commits/master/include/mapnik/rule.hpp

@springmeyer
Member

ugh, weird, don't see anything wrong with those commits....

@springmeyer springmeyer referenced this issue in tilemill-project/tilemill Oct 10, 2012
Closed

BLOCKER: osx app is broken #1762

@springmeyer
Member

since I cannot replicate locally trying another build with older mapnik:

tilemill-project/tilemill-builder-osx@5306d69

@springmeyer
Member

Now seeing in my logs on OS X:

[tilemill] [millstone] finished processing '/Users/dane/Documents/MapBox/project/open-streets-dc'
[tilemill] node(24230,0x12c504000) malloc: *** error for object 0x12d50f3f0: pointer being freed was not allocated
[tilemill] *** set a breakpoint in malloc_error_break to debug
[tilemill] Error: child process: "tile" failed with signal "SIGABRT"
[tilemill] Closing child process: core (pid:24229)
[tilemill] Closing child process: tile (pid:24230)
[tilemill] found 2 crash logs for node
[tilemill] Please post this crash log: '/Users/dane/Library/Logs/DiagnosticReports/node_2012-10-09-190807_dane-2.crash' to https://
[tilemill] [millstone] processing style 'style.mss'
[tilemill] [millstone] processing layer 'countries'
[tilemill] [millstone] finished processing '/Users/dane/Documents/MapBox/project/d'
[tilemill] dyld: lazy symbol binding failed: Symbol not found: __ZNK6mapnik4rule15get_symbolizersEv
[tilemill]   Referenced from: /Users/dane/TileMill.app/Contents/Resources/node_modules/mapnik/lib/_mapnik.node
[tilemill]   Expected in: flat namespace
[tilemill] 
[tilemill] dyld: Symbol not found: __ZNK6mapnik4rule15get_symbolizersEv
[tilemill]   Referenced from: /Users/dane/TileMill.app/Contents/Resources/node_modules/mapnik/lib/_mapnik.node
[tilemill]   Expected in: flat namespace
[tilemill] 
[tilemill] Error: child process: "tile" failed with signal "SIGTRAP"
@springmeyer
Member

looks like this was a stale build target that I missed in the logs. libmapnik actually failed to link due to the bug when building against static agg fixed in a7f2eac). closing.

@springmeyer
Member

and for the record this was unrelated to #1527

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