{"action":"created","issue":{"url":"https://api.github.com/repos/mapbox/mapbox-gl-native/issues/9499","repository_url":"https://api.github.com/repos/mapbox/mapbox-gl-native","labels_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/issues/9499/labels{/name}","comments_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/issues/9499/comments","events_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/issues/9499/events","html_url":"https://github.com/mapbox/mapbox-gl-native/issues/9499","id":242705436,"number":9499,"title":"Fix undefined behavior","user":{"login":"kkaefer","id":52399,"avatar_url":"https://avatars3.githubusercontent.com/u/52399?v=3","gravatar_id":"","url":"https://api.github.com/users/kkaefer","html_url":"https://github.com/kkaefer","followers_url":"https://api.github.com/users/kkaefer/followers","following_url":"https://api.github.com/users/kkaefer/following{/other_user}","gists_url":"https://api.github.com/users/kkaefer/gists{/gist_id}","starred_url":"https://api.github.com/users/kkaefer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kkaefer/subscriptions","organizations_url":"https://api.github.com/users/kkaefer/orgs","repos_url":"https://api.github.com/users/kkaefer/repos","events_url":"https://api.github.com/users/kkaefer/events{/privacy}","received_events_url":"https://api.github.com/users/kkaefer/received_events","type":"User","site_admin":false},"labels":[{"id":352634063,"url":"https://api.github.com/repos/mapbox/mapbox-gl-native/labels/Core","name":"Core","color":"000000","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2017-07-13T13:42:23Z","updated_at":"2017-07-13T18:50:59Z","closed_at":null,"body":"Our [new undefined behavior sanitizer](https://github.com/mapbox/mapbox-gl-native/pull/9399) shows a [few bugs](https://circleci.com/gh/mapbox/mapbox-gl-native/10532):\r\n\r\n\r\n## Style\r\n\r\n<details>\r\n<summary><code>/usr/include/c++/5.4.0/chrono:446:29: runtime error: division by zero</code></summary>\r\n<pre>\r\n#0 0x158771f in std::common_type<long, float>::type std::chrono::operator/<long, std::ratio<1l, 1000000000l>, float, std::ratio<1l, 1l> >(std::chrono::duration<long, std::ratio<1l, 1000000000l> > const&, std::chrono::duration<float, std::ratio<1l, 1l> > const&) /usr/include/c++/5.4.0/chrono:446:29\r\n#1 0x1587a44 in mbgl::CrossFadedPropertyEvaluator<std::vector<float, std::allocator<float> > >::calculate(std::vector<float, std::allocator<float> > const&, std::vector<float, std::allocator<float> > const&, std::vector<float, std::allocator<float> > const&) const /src/src/mbgl/renderer/cross_faded_property_evaluator.cpp:30:92\r\n#2 0x1587855 in mbgl::CrossFadedPropertyEvaluator<std::vector<float, std::allocator<float> > >::operator()(mbgl::style::Undefined const&) const /src/src/mbgl/renderer/cross_faded_property_evaluator.cpp:10:12\r\n#3 0xe5990d in mapbox::util::detail::dispatcher<mbgl::CrossFadedPropertyEvaluator<std::vector<float, std::allocator<float> > > const&, mapbox::util::variant<mbgl::style::Undefined, std::vector<float, std::allocator<float> >, mbgl::style::CameraFunction<std::vector<float, std::allocator<float> > > >, mbgl::Faded<std::vector<float, std::allocator<float> > >, mbgl::style::Undefined, std::vector<float, std::allocator<float> >, mbgl::style::CameraFunction<std::vector<float, std::allocator<float> > > >::apply_const(mapbox::util::variant<mbgl::style::Undefined, std::vector<float, std::allocator<float> >, mbgl::style::CameraFunction<std::vector<float, std::allocator<float> > > > const&, mbgl::CrossFadedPropertyEvaluator<std::vector<float, std::allocator<float> > > const&) /src/mason_packages/headers/variant/1.1.4/include/mapbox/variant.hpp:300:20\r\n#4 0xe59867 in _ZN6mapbox4util7variantIJN4mbgl5style9UndefinedESt6vectorIfSaIfEENS3_14CameraFunctionIS7_EEEE5visitIRKNS2_27CrossFadedPropertyEvaluatorIS7_EESA_NS2_5FadedIS7_EEEEDTclsr6detail10dispatcherIT_T0_T1_S4_S7_S9_EE11apply_constfp_clsr3stdE7forwardISI_Efp0_EEERKSJ_OSI_ /src/mason_packages/headers/variant/1.1.4/include/mapbox/variant.hpp:850:16\r\n#5 0xe5952c in auto mbgl::style::PropertyValue<std::vector<float, std::allocator<float> > >::evaluate<mbgl::CrossFadedPropertyEvaluator<std::vector<float, std::allocator<float> > > >(mbgl::CrossFadedPropertyEvaluator<std::vector<float, std::allocator<float> > > const&, std::chrono::time_point<std::chrono::time_point::_V2::steady_clock, std::chrono::time_point::duration<long, std::ratio<1l, 1000000000l> > >) const /src/include/mbgl/style/property_value.hpp:39:16\r\n#6 0xe58bc9 in auto mbgl::style::Transitioning<mbgl::style::PropertyValue<std::vector<float, std::allocator<float> > > >::evaluate<mbgl::CrossFadedPropertyEvaluator<std::vector<float, std::allocator<float> > > >(mbgl::CrossFadedPropertyEvaluator<std::vector<float, std::allocator<float> > > const&, std::chrono::time_point<std::chrono::time_point::_V2::steady_clock, std::chrono::time_point::duration<long, std::ratio<1l, 1000000000l> > >) const /src/src/mbgl/style/properties.hpp:41:33\r\n#7 0xe575e3 in auto mbgl::style::Properties<mbgl::style::LineOpacity, mbgl::style::LineColor, mbgl::style::LineTranslate, mbgl::style::LineTranslateAnchor, mbgl::style::LineWidth, mbgl::style::LineGapWidth, mbgl::style::LineOffset, mbgl::style::LineBlur, mbgl::style::LineDasharray, mbgl::style::LinePattern>::Unevaluated::evaluate<mbgl::style::LineDasharray>(mbgl::PropertyEvaluationParameters const&) const /src/src/mbgl/style/properties.hpp:194:18\r\n#8 0xe490c0 in mbgl::style::Properties<mbgl::style::LineOpacity, mbgl::style::LineColor, mbgl::style::LineTranslate, mbgl::style::LineTranslateAnchor, mbgl::style::LineWidth, mbgl::style::LineGapWidth, mbgl::style::LineOffset, mbgl::style::LineBlur, mbgl::style::LineDasharray, mbgl::style::LinePattern>::Unevaluated::evaluate(mbgl::PropertyEvaluationParameters const&) const /src/src/mbgl/style/properties.hpp:199:17\r\n#9 0xe45691 in mbgl::RenderLineLayer::evaluate(mbgl::PropertyEvaluationParameters const&) /src/src/mbgl/renderer/layers/render_line_layer.cpp:34:21\r\n#10 0xd2c2a1 in mbgl::RenderStyle::update(mbgl::UpdateParameters const&) /src/src/mbgl/renderer/render_style.cpp:180:19\r\n#11 0xc2e73f in mbgl::Map::Impl::render(mbgl::View&) /src/src/mbgl/map/map.cpp:237:18\r\n#12 0xc2d03c in mbgl::Map::Impl::renderStill() /src/src/mbgl/map/map.cpp:202:5\r\n#13 0xc3f0ab in mbgl::Map::Impl::Impl(mbgl::Map&, mbgl::Backend&, float, mbgl::FileSource&, mbgl::Scheduler&, mbgl::MapMode, mbgl::GLContextMode, mbgl::ConstrainMode, mbgl::ViewportMode, std::experimental::fundamentals_v1::optional<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >)::$_0::operator()() const /src/src/mbgl/map/map.cpp:154:15\r\n#14 0xc3ed11 in std::_Function_handler<void (), mbgl::Map::Impl::Impl(mbgl::Map&, mbgl::Backend&, float, mbgl::FileSource&, mbgl::Scheduler&, mbgl::MapMode, mbgl::GLContextMode, mbgl::ConstrainMode, mbgl::ViewportMode, std::experimental::fundamentals_v1::optional<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >)::$_0>::_M_invoke(std::_Any_data const&) /usr/include/c++/5.4.0/functional:1871:2\r\n#15 0x49d530 in std::function<void ()>::operator()() const /usr/include/c++/5.4.0/functional:2267:14\r\n#16 0x164bf20 in mbgl::util::AsyncTask::Impl::asyncCallback(uv_async_s*) /src/platform/default/async_task.cpp:43:9\r\n#17 0x17f41c2 in uv__async_event /home/travis/build/mapbox/mason/mason_packages/.build/libuv-1.9.1/src/unix/async.c:98\r\n#18 0x17f4348 in uv__async_io /home/travis/build/mapbox/mason/mason_packages/.build/libuv-1.9.1/src/unix/async.c:138\r\n#19 0x17fe1af in uv__io_poll /home/travis/build/mapbox/mason/mason_packages/.build/libuv-1.9.1/src/unix/linux-core.c:380\r\n#20 0x17f4c42 in uv_run /home/travis/build/mapbox/mason/mason_packages/.build/libuv-1.9.1/src/unix/core.c:354\r\n#21 0x164da3f in mbgl::util::RunLoop::runOnce() /src/platform/default/run_loop.cpp:148:5\r\n#22 0x630e84 in mbgl::test::render(mbgl::Map&, mbgl::OffscreenView&) /src/test/src/mbgl/test/util.cpp:114:31\r\n#23 0x4f5a7d in (anonymous namespace)::AnnotationTest::checkRendering(char const*) /src/test/api/annotations.test.cpp:40:26\r\n#24 0x4f5dd9 in Annotations_LineAnnotation_Test::TestBody() /src/test/api/annotations.test.cpp:73:10\r\n#25 0x16295a0 in testing::Test::Run() (/src/build/linux-x86_64/Sanitize/mbgl-test+0x16295a0)\r\n#26 0x162a57f in testing::TestInfo::Run() (/src/build/linux-x86_64/Sanitize/mbgl-test+0x162a57f)\r\n#27 0x162ace2 in testing::TestCase::Run() (/src/build/linux-x86_64/Sanitize/mbgl-test+0x162ace2)\r\n#28 0x1632e68 in testing::internal::UnitTestImpl::RunAllTests() (/src/build/linux-x86_64/Sanitize/mbgl-test+0x1632e68)\r\n#29 0x164466c in bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) (/src/build/linux-x86_64/Sanitize/mbgl-test+0x164466c)\r\n#30 0x16328ee in testing::UnitTest::Run() (/src/build/linux-x86_64/Sanitize/mbgl-test+0x16328ee)\r\n#31 0x62f737 in RUN_ALL_TESTS() /src/mason_packages/linux-x86_64/gtest/1.8.0-cxx11abi/include/gtest/gtest.h:2233:46\r\n#32 0x62f5e9 in mbgl::runTests(int, char**) /src/test/src/mbgl/test/test.cpp:14:12\r\n#33 0xad8ad8 in main /src/platform/default/mbgl/test/main.cpp:19:12\r\n#34 0x7f619e76682f in __libc_start_main /build/glibc-bfm8X4/glibc-2.23/csu/libc-start.c:291\r\n#35 0x453768 in _start (/src/build/linux-x86_64/Sanitize/mbgl-test+0x453768)\r\n</pre>\r\n</details>\r\n\r\n## Transform\r\n\r\n<details>\r\n<summary><code>src/mbgl/map/transform.cpp:234:79: runtime error: division by zero</code></summary>\r\n<pre>\r\n#0 0xc4f790 in mbgl::Transform::flyTo(mbgl::CameraOptions const&, mbgl::AnimationOptions const&)::$_1::operator()(double) const /src/src/mbgl/map/transform.cpp:234:79\r\n#1 0xc4e688 in mbgl::Transform::flyTo(mbgl::CameraOptions const&, mbgl::AnimationOptions const&) /src/src/mbgl/map/transform.cpp:239:17\r\n#2 0x5c561f in Transform_InvalidZoom_Test::TestBody() /src/test/map/transform.test.cpp:40:15\r\n#3 0x16295a0 in testing::Test::Run() (/src/build/linux-x86_64/Sanitize/mbgl-test+0x16295a0)\r\n#4 0x162a57f in testing::TestInfo::Run() (/src/build/linux-x86_64/Sanitize/mbgl-test+0x162a57f)\r\n#5 0x162ace2 in testing::TestCase::Run() (/src/build/linux-x86_64/Sanitize/mbgl-test+0x162ace2)\r\n#6 0x1632e68 in testing::internal::UnitTestImpl::RunAllTests() (/src/build/linux-x86_64/Sanitize/mbgl-test+0x1632e68)\r\n#7 0x164466c in bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) (/src/build/linux-x86_64/Sanitize/mbgl-test+0x164466c)\r\n#8 0x16328ee in testing::UnitTest::Run() (/src/build/linux-x86_64/Sanitize/mbgl-test+0x16328ee)\r\n#9 0x62f737 in RUN_ALL_TESTS() /src/mason_packages/linux-x86_64/gtest/1.8.0-cxx11abi/include/gtest/gtest.h:2233:46\r\n#10 0x62f5e9 in mbgl::runTests(int, char**) /src/test/src/mbgl/test/test.cpp:14:12\r\n#11 0xad8ad8 in main /src/platform/default/mbgl/test/main.cpp:19:12\r\n#12 0x7f619e76682f in __libc_start_main /build/glibc-bfm8X4/glibc-2.23/csu/libc-start.c:291\r\n#13 0x453768 in _start (/src/build/linux-x86_64/Sanitize/mbgl-test+0x453768)\r\n</pre>\r\n</details>\r\n\r\n<details>\r\n<summary><code>src/mbgl/map/transform.cpp:261:49: runtime error: division by zero</code></summary>\r\n<pre>\r\n#0 0xc4f32e in mbgl::Transform::flyTo(mbgl::CameraOptions const&, mbgl::AnimationOptions const&) /src/src/mbgl/map/transform.cpp:261:49\r\n#1 0x5c561f in Transform_InvalidZoom_Test::TestBody() /src/test/map/transform.test.cpp:40:15\r\n#2 0x16295a0 in testing::Test::Run() (/src/build/linux-x86_64/Sanitize/mbgl-test+0x16295a0)\r\n#3 0x162a57f in testing::TestInfo::Run() (/src/build/linux-x86_64/Sanitize/mbgl-test+0x162a57f)\r\n#4 0x162ace2 in testing::TestCase::Run() (/src/build/linux-x86_64/Sanitize/mbgl-test+0x162ace2)\r\n#5 0x1632e68 in testing::internal::UnitTestImpl::RunAllTests() (/src/build/linux-x86_64/Sanitize/mbgl-test+0x1632e68)\r\n#6 0x164466c in bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) (/src/build/linux-x86_64/Sanitize/mbgl-test+0x164466c)\r\n#7 0x16328ee in testing::UnitTest::Run() (/src/build/linux-x86_64/Sanitize/mbgl-test+0x16328ee)\r\n#8 0x62f737 in RUN_ALL_TESTS() /src/mason_packages/linux-x86_64/gtest/1.8.0-cxx11abi/include/gtest/gtest.h:2233:46\r\n#9 0x62f5e9 in mbgl::runTests(int, char**) /src/test/src/mbgl/test/test.cpp:14:12\r\n#10 0xad8ad8 in main /src/platform/default/mbgl/test/main.cpp:19:12\r\n#11 0x7f619e76682f in __libc_start_main /build/glibc-bfm8X4/glibc-2.23/csu/libc-start.c:291\r\n#12 0x453768 in _start (/src/build/linux-x86_64/Sanitize/mbgl-test+0x453768)\r\n</pre>\r\n</details>\r\n\r\n<details>\r\n<summary><code>/usr/include/c++/5.4.0/chrono:176:8: runtime error: value nan is outside the range of representable values of type 'long'</code></summary>\r\n<pre>\r\n#0 0xc575bc in std::chrono::duration<long, std::ratio<1l, 1000000000l> > std::chrono::__duration_cast_impl<std::chrono::duration<long, std::ratio<1l, 1000000000l> >, std::ratio<1000000000l, 1l>, double, false, true>::__cast<double, std::ratio<1l, 1l> >(std::chrono::duration<double, std::ratio<1l, 1l> > const&) /usr/include/c++/5.4.0/chrono:176:8\r\n#1 0xc55a91 in _ZNSt6chrono13duration_castINS_8durationIlSt5ratioILl1ELl1000000000EEEEdS2_ILl1ELl1EEEENSt9enable_ifIXsr13__is_durationIT_EE5valueES7_E4typeERKNS1_IT0_T1_EE /usr/include/c++/5.4.0/chrono:203:9\r\n#2 0xc4e8a8 in mbgl::Transform::flyTo(mbgl::CameraOptions const&, mbgl::AnimationOptions const&) /src/src/mbgl/map/transform.cpp:273:20\r\n#3 0x5c561f in Transform_InvalidZoom_Test::TestBody() /src/test/map/transform.test.cpp:40:15\r\n#4 0x16295a0 in testing::Test::Run() (/src/build/linux-x86_64/Sanitize/mbgl-test+0x16295a0)\r\n#5 0x162a57f in testing::TestInfo::Run() (/src/build/linux-x86_64/Sanitize/mbgl-test+0x162a57f)\r\n#6 0x162ace2 in testing::TestCase::Run() (/src/build/linux-x86_64/Sanitize/mbgl-test+0x162ace2)\r\n#7 0x1632e68 in testing::internal::UnitTestImpl::RunAllTests() (/src/build/linux-x86_64/Sanitize/mbgl-test+0x1632e68)\r\n#8 0x164466c in bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) (/src/build/linux-x86_64/Sanitize/mbgl-test+0x164466c)\r\n#9 0x16328ee in testing::UnitTest::Run() (/src/build/linux-x86_64/Sanitize/mbgl-test+0x16328ee)\r\n#10 0x62f737 in RUN_ALL_TESTS() /src/mason_packages/linux-x86_64/gtest/1.8.0-cxx11abi/include/gtest/gtest.h:2233:46\r\n#11 0x62f5e9 in mbgl::runTests(int, char**) /src/test/src/mbgl/test/test.cpp:14:12\r\n#12 0xad8ad8 in main /src/platform/default/mbgl/test/main.cpp:19:12\r\n#13 0x7f619e76682f in __libc_start_main /build/glibc-bfm8X4/glibc-2.23/csu/libc-start.c:291\r\n#14 0x453768 in _start (/src/build/linux-x86_64/Sanitize/mbgl-test+0x453768)\r\n</pre>\r\n</details>\r\n\r\n## Storage\r\n\r\n<details>\r\n<summary><code>/usr/include/c++/5.4.0/bits/shared_ptr_base.h:1048:9: runtime error: reference binding to null pointer of type 'const std::__cxx11::basic_string<char>'</code></summary>\r\n<pre>\r\n#0 0x647f90 in std::__shared_ptr<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, (__gnu_cxx::_Lock_policy)2>::operator*() const /usr/include/c++/5.4.0/bits/shared_ptr_base.h:1048:2\r\n#1 0x1473ca5 in mbgl::OfflineDatabase::putInternal(mbgl::Resource const&, mbgl::Response const&, bool) /src/platform/default/mbgl/storage/offline_database.cpp:195:47\r\n#2 0x14738f7 in mbgl::OfflineDatabase::put(mbgl::Resource const&, mbgl::Response const&) /src/platform/default/mbgl/storage/offline_database.cpp:163:12\r\n#3 0x13fefc0 in mbgl::DefaultFileSource::Impl::request(mbgl::AsyncRequest*, mbgl::Resource, mbgl::ActorRef<mbgl::FileSourceRequest>)::{lambda(mbgl::Response)#1}::operator()(mbgl::Response) /src/platform/default/default_file_source.cpp:150:43\r\n#4 0x13fea39 in std::_Function_handler<void (mbgl::Response), mbgl::DefaultFileSource::Impl::request(mbgl::AsyncRequest*, mbgl::Resource, mbgl::ActorRef<mbgl::FileSourceRequest>)::{lambda(mbgl::Response)#1}>::_M_invoke(std::_Any_data const&, mbgl::Response&&) /usr/include/c++/5.4.0/functional:1871:2\r\n#5 0x5adcc9 in std::function<void (mbgl::Response)>::operator()(mbgl::Response) const /usr/include/c++/5.4.0/functional:2267:14\r\n#6 0x1455635 in mbgl::OnlineFileRequest::completed(mbgl::Response) /src/platform/default/online_file_source.cpp:358:5\r\n#7 0x1464ee5 in mbgl::OnlineFileSource::Impl::activateRequest(mbgl::OnlineFileRequest*)::{lambda(mbgl::Response)#1}::operator()(mbgl::Response) const /src/platform/default/online_file_source.cpp:125:22\r\n#8 0x1464a69 in std::_Function_handler<void (mbgl::Response), mbgl::OnlineFileSource::Impl::activateRequest(mbgl::OnlineFileRequest*)::{lambda(mbgl::Response)#1}>::_M_invoke(std::_Any_data const&, mbgl::Response&&) /usr/include/c++/5.4.0/functional:1871:2\r\n#9 0x5adcc9 in std::function<void (mbgl::Response)>::operator()(mbgl::Response) const /usr/include/c++/5.4.0/functional:2267:14\r\n#10 0x1443241 in mbgl::HTTPRequest::handleResult(CURLcode) /src/platform/default/http_file_source.cpp:401:5\r\n#11 0x1441fe9 in mbgl::HTTPFileSource::Impl::checkMultiInfo() /src/platform/default/http_file_source.cpp:147:20\r\n#12 0x1443b05 in mbgl::HTTPFileSource::Impl::perform(int, mbgl::util::RunLoop::Event) /src/platform/default/http_file_source.cpp:170:5\r\n#13 0x144ef0b in void std::_Mem_fn_base<void (mbgl::HTTPFileSource::Impl::*)(int, mbgl::util::RunLoop::Event), true>::operator()<int, mbgl::util::RunLoop::Event, void>(mbgl::HTTPFileSource::Impl*, int&&, mbgl::util::RunLoop::Event&&) const /usr/include/c++/5.4.0/functional:600:11\r\n#14 0x144eca6 in void std::_Bind<std::_Mem_fn<void (mbgl::HTTPFileSource::Impl::*)(int, mbgl::util::RunLoop::Event)> (mbgl::HTTPFileSource::Impl*, std::_Placeholder<1>, std::_Placeholder<2>)>::__call<void, int&&, mbgl::util::RunLoop::Event&&, 0ul, 1ul, 2ul>(std::tuple<int&&, mbgl::util::RunLoop::Event&&>&&, std::_Index_tuple<0ul, 1ul, 2ul>) /usr/include/c++/5.4.0/functional:1073:11\r\n#15 0x144ea88 in void std::_Bind<std::_Mem_fn<void (mbgl::HTTPFileSource::Impl::*)(int, mbgl::util::RunLoop::Event)> (mbgl::HTTPFileSource::Impl*, std::_Placeholder<1>, std::_Placeholder<2>)>::operator()<int, mbgl::util::RunLoop::Event, void>(int&&, mbgl::util::RunLoop::Event&&) /usr/include/c++/5.4.0/functional:1131:17\r\n#16 0x144e0f6 in std::_Function_handler<void (int, mbgl::util::RunLoop::Event), std::_Bind<std::_Mem_fn<void (mbgl::HTTPFileSource::Impl::*)(int, mbgl::util::RunLoop::Event)> (mbgl::HTTPFileSource::Impl*, std::_Placeholder<1>, std::_Placeholder<2>)> >::_M_invoke(std::_Any_data const&, int&&, mbgl::util::RunLoop::Event&&) /usr/include/c++/5.4.0/functional:1871:2\r\n#17 0x1655d2c in std::function<void (int, mbgl::util::RunLoop::Event)>::operator()(int, mbgl::util::RunLoop::Event) const /usr/include/c++/5.4.0/functional:2267:14\r\n#18 0x1653847 in mbgl::util::Watch::onEvent(uv_poll_s*, int, int) /src/platform/default/run_loop.cpp:40:9\r\n#19 0x17fe1af in uv__io_poll /home/travis/build/mapbox/mason/mason_packages/.build/libuv-1.9.1/src/unix/linux-core.c:380\r\n#20 0x17f4c42 in uv_run /home/travis/build/mapbox/mason/mason_packages/.build/libuv-1.9.1/src/unix/core.c:354\r\n#21 0x164e252 in mbgl::util::RunLoop::run() /src/platform/default/run_loop.cpp:142:5\r\n#22 0x140baf8 in mbgl::util::Thread<mbgl::DefaultFileSource::Impl>::Thread<std::shared_ptr<mbgl::FileSource> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<mbgl::FileSource> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long&)::{lambda()#1}::operator()() const /src/src/mbgl/util/thread.hpp:56:19\r\n#23 0x140b746 in void std::_Bind_simple<mbgl::util::Thread<mbgl::DefaultFileSource::Impl>::Thread<std::shared_ptr<mbgl::FileSource> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<mbgl::FileSource> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long&)::{lambda()#1} ()>::_M_invoke<>(std::_Index_tuple<>) /usr/include/c++/5.4.0/functional:1530:18\r\n#24 0x140b6e6 in std::_Bind_simple<mbgl::util::Thread<mbgl::DefaultFileSource::Impl>::Thread<std::shared_ptr<mbgl::FileSource> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<mbgl::FileSource> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long&)::{lambda()#1} ()>::operator()() /usr/include/c++/5.4.0/functional:1520:16\r\n#25 0x140b44e in std::thread::_Impl<std::_Bind_simple<mbgl::util::Thread<mbgl::DefaultFileSource::Impl>::Thread<std::shared_ptr<mbgl::FileSource> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<mbgl::FileSource> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long&)::{lambda()#1} ()> >::_M_run() /usr/include/c++/5.4.0/thread:115:13\r\n#26 0x7f619eddec7f  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xb8c7f)\r\n#27 0x7f619fc626b9 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x76b9)\r\n#28 0x7f619e84d3dc in clone /build/glibc-bfm8X4/glibc-2.23/sysdeps/unix/sysv/linux/x86_64/clone.S:109\r\n</pre>\r\n</details>\r\n\r\n## Label placement\r\n\r\n<details>\r\n<summary><code>src/mbgl/text/quads.cpp:85:31: runtime error: value -1 is outside the range of representable values of type 'unsigned short'</code></summary>\r\n<pre>\r\n#0 0x1233929 in mbgl::getIconQuad(mbgl::PositionedIcon const&, mbgl::style::Properties<mbgl::style::SymbolPlacement, mbgl::style::SymbolSpacing, mbgl::style::SymbolAvoidEdges, mbgl::style::IconAllowOverlap, mbgl::style::IconIgnorePlacement, mbgl::style::IconOptional, mbgl::style::IconRotationAlignment, mbgl::style::IconSize, mbgl::style::IconTextFit, mbgl::style::IconTextFitPadding, mbgl::style::IconImage, mbgl::style::IconRotate, mbgl::style::IconPadding, mbgl::style::IconKeepUpright, mbgl::style::IconOffset, mbgl::style::IconPitchAlignment, mbgl::style::TextPitchAlignment, mbgl::style::TextRotationAlignment, mbgl::style::TextField, mbgl::style::TextFont, mbgl::style::TextSize, mbgl::style::TextMaxWidth, mbgl::style::TextLineHeight, mbgl::style::TextLetterSpacing, mbgl::style::TextJustify, mbgl::style::TextAnchor, mbgl::style::TextMaxAngle, mbgl::style::TextRotate, mbgl::style::TextPadding, mbgl::style::TextKeepUpright, mbgl::style::TextTransform, mbgl::style::TextOffset, mbgl::style::TextAllowOverlap, mbgl::style::TextIgnorePlacement, mbgl::style::TextOptional>::Evaluated const&, float, mbgl::Shaping const&) /src/src/mbgl/text/quads.cpp:85:31\r\n#1 0x9ab69a in getIconQuads_normal_Test::TestBody() /src/test/text/quads.test.cpp:26:9\r\n#2 0x16295a0 in testing::Test::Run() (/src/build/linux-x86_64/Sanitize/mbgl-test+0x16295a0)\r\n#3 0x162a57f in testing::TestInfo::Run() (/src/build/linux-x86_64/Sanitize/mbgl-test+0x162a57f)\r\n#4 0x162ace2 in testing::TestCase::Run() (/src/build/linux-x86_64/Sanitize/mbgl-test+0x162ace2)\r\n#5 0x1632e68 in testing::internal::UnitTestImpl::RunAllTests() (/src/build/linux-x86_64/Sanitize/mbgl-test+0x1632e68)\r\n#6 0x164466c in bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) (/src/build/linux-x86_64/Sanitize/mbgl-test+0x164466c)\r\n#7 0x16328ee in testing::UnitTest::Run() (/src/build/linux-x86_64/Sanitize/mbgl-test+0x16328ee)\r\n#8 0x62f737 in RUN_ALL_TESTS() /src/mason_packages/linux-x86_64/gtest/1.8.0-cxx11abi/include/gtest/gtest.h:2233:46\r\n#9 0x62f5e9 in mbgl::runTests(int, char**) /src/test/src/mbgl/test/test.cpp:14:12\r\n#10 0xad8ad8 in main /src/platform/default/mbgl/test/main.cpp:19:12\r\n#11 0x7f619e76682f in __libc_start_main /build/glibc-bfm8X4/glibc-2.23/csu/libc-start.c:291\r\n#12 0x453768 in _start (/src/build/linux-x86_64/Sanitize/mbgl-test+0x453768)\r\n</pre>\r\n</details>\r\n\r\n<details>\r\n<summary><code>src/mbgl/text/quads.cpp:86:31: runtime error: value -1 is outside the range of representable values of type 'unsigned short'</code></summary>\r\n<pre>\r\n#0 0x12339a5 in mbgl::getIconQuad(mbgl::PositionedIcon const&, mbgl::style::Properties<mbgl::style::SymbolPlacement, mbgl::style::SymbolSpacing, mbgl::style::SymbolAvoidEdges, mbgl::style::IconAllowOverlap, mbgl::style::IconIgnorePlacement, mbgl::style::IconOptional, mbgl::style::IconRotationAlignment, mbgl::style::IconSize, mbgl::style::IconTextFit, mbgl::style::IconTextFitPadding, mbgl::style::IconImage, mbgl::style::IconRotate, mbgl::style::IconPadding, mbgl::style::IconKeepUpright, mbgl::style::IconOffset, mbgl::style::IconPitchAlignment, mbgl::style::TextPitchAlignment, mbgl::style::TextRotationAlignment, mbgl::style::TextField, mbgl::style::TextFont, mbgl::style::TextSize, mbgl::style::TextMaxWidth, mbgl::style::TextLineHeight, mbgl::style::TextLetterSpacing, mbgl::style::TextJustify, mbgl::style::TextAnchor, mbgl::style::TextMaxAngle, mbgl::style::TextRotate, mbgl::style::TextPadding, mbgl::style::TextKeepUpright, mbgl::style::TextTransform, mbgl::style::TextOffset, mbgl::style::TextAllowOverlap, mbgl::style::TextIgnorePlacement, mbgl::style::TextOptional>::Evaluated const&, float, mbgl::Shaping const&) /src/src/mbgl/text/quads.cpp:86:31\r\n#1 0x9ab69a in getIconQuads_normal_Test::TestBody() /src/test/text/quads.test.cpp:26:9\r\n#2 0x16295a0 in testing::Test::Run() (/src/build/linux-x86_64/Sanitize/mbgl-test+0x16295a0)\r\n#3 0x162a57f in testing::TestInfo::Run() (/src/build/linux-x86_64/Sanitize/mbgl-test+0x162a57f)\r\n#4 0x162ace2 in testing::TestCase::Run() (/src/build/linux-x86_64/Sanitize/mbgl-test+0x162ace2)\r\n#5 0x1632e68 in testing::internal::UnitTestImpl::RunAllTests() (/src/build/linux-x86_64/Sanitize/mbgl-test+0x1632e68)\r\n#6 0x164466c in bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) (/src/build/linux-x86_64/Sanitize/mbgl-test+0x164466c)\r\n#</pre>\r\n    </details>7 0x16328ee in testing::UnitTest::Run() (/src/build/linux-x86_64/Sanitize/mbgl-test+0x16328ee)\r\n#8 0x62f737 in RUN_ALL_TESTS() /src/mason_packages/linux-x86_64/gtest/1.8.0-cxx11abi/include/gtest/gtest.h:2233:46\r\n<details>\r\n<summary><code>src/mbgl/text/collision_tile.cpp:44:50: runtime error: division by zero</code></summary>\r\n<pre>\r\n#0 0x11e43c4 in mbgl::CollisionTile::findPlacementScale(mapbox::geometry::point<float> const&, mbgl::CollisionBox const&, float, mapbox::geometry::point<float> const&, mbgl::CollisionBox const&) /src/src/mbgl/text/collision_tile.cpp:44:50\r\n#1 0x11e5037 in mbgl::CollisionTile::placeFeature(mbgl::CollisionFeature const&, bool, bool) /src/src/mbgl/text/collision_tile.cpp:101:66\r\n#2 0x14d070d in mbgl::SymbolLayout::place(mbgl::CollisionTile&) /src/src/mbgl/layout/symbol_layout.cpp:482:27\r\n#3 0x13050bf in mbgl::GeometryTileWorker::attemptPlacement() /src/src/mbgl/tile/geometry_tile_worker.cpp:411:56\r\n#4 0x1305954 in mbgl::GeometryTileWorker::symbolDependenciesChanged() /src/src/mbgl/tile/geometry_tile_worker.cpp:148:17\r\n#5 0x1306289 in mbgl::GeometryTileWorker::onGlyphsAvailable(std::map<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > >, std::less<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::pair<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > > > > >) /src/src/mbgl/tile/geometry_tile_worker.cpp:216:5\r\n#6 0x1261426 in void mbgl::MessageImpl<mbgl::GeometryTileWorker, void (mbgl::GeometryTileWorker::*)(std::map<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > >, std::less<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::pair<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > > > > >), std::tuple<std::map<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > >, std::less<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::pair<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > > > > > > >::invoke<0ul>(std::integer_sequence<unsigned long, 0ul>) /src/include/mbgl/actor/message.hpp:31:9\r\n#7 0x1261255 in mbgl::MessageImpl<mbgl::GeometryTileWorker, void (mbgl::GeometryTileWorker::*)(std::map<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > >, std::less<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::pair<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > > > > >), std::tuple<std::map<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > >, std::less<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::pair<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > > > > > > >::operator()() /src/include/mbgl/actor/message.hpp:26:9\r\n#8 0xad9337 in mbgl::Mailbox::receive() /src/src/mbgl/actor/mailbox.cpp:58:5\r\n#9 0xad96dc in mbgl::Mailbox::maybeReceive(std::weak_ptr<mbgl::Mailbox>) /src/src/mbgl/actor/mailbox.cpp:67:17\r\n#10 0x14b3118 in mbgl::ThreadPool::ThreadPool(unsigned long)::$_0::operator()() const /src/platform/default/mbgl/util/default_thread_pool.cpp:29:17\r\n#11 0x14b2ca6 in void std::_Bind_simple<mbgl::ThreadPool::ThreadPool(unsigned long)::$_0 ()>::_M_invoke<>(std::_Index_tuple<>) /usr/include/c++/5.4.0/functional:1530:18\r\n#12 0x14b2c46 in std::_Bind_simple<mbgl::ThreadPool::ThreadPool(unsigned long)::$_0 ()>::operator()() /usr/include/c++/5.4.0/functional:1520:16\r\n#13 0x14b29be in std::thread::_Impl<std::_Bind_simple<mbgl::ThreadPool::ThreadPool(unsigned long)::$_0 ()> >::_M_run() /usr/include/c++/5.4.0/thread:115:13\r\n#14 0x7f619eddec7f  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xb8c7f)\r\n#15 0x7f619fc626b9 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x76b9)\r\n#16 0x7f619e84d3dc in clone /build/glibc-bfm8X4/glibc-2.23/sysdeps/unix/sysv/linux/x86_64/clone.S:109\r\n</pre>\r\n</details>\r\n\r\n<details>\r\n<summary><code>src/mbgl/text/collision_tile.cpp:45:50: runtime error: division by zero</code></summary>\r\n<pre>\r\n#0 0x11e4627 in mbgl::CollisionTile::findPlacementScale(mapbox::geometry::point<float> const&, mbgl::CollisionBox const&, float, mapbox::geometry::point<float> const&, mbgl::CollisionBox const&) /src/src/mbgl/text/collision_tile.cpp:45:50\r\n#1 0x11e5037 in mbgl::CollisionTile::placeFeature(mbgl::CollisionFeature const&, bool, bool) /src/src/mbgl/text/collision_tile.cpp:101:66\r\n#2 0x14d070d in mbgl::SymbolLayout::place(mbgl::CollisionTile&) /src/src/mbgl/layout/symbol_layout.cpp:482:27\r\n#3 0x13050bf in mbgl::GeometryTileWorker::attemptPlacement() /src/src/mbgl/tile/geometry_tile_worker.cpp:411:56\r\n#4 0x1305954 in mbgl::GeometryTileWorker::symbolDependenciesChanged() /src/src/mbgl/tile/geometry_tile_worker.cpp:148:17\r\n#5 0x1306289 in mbgl::GeometryTileWorker::onGlyphsAvailable(std::map<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > >, std::less<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::pair<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > > > > >) /src/src/mbgl/tile/geometry_tile_worker.cpp:216:5\r\n#6 0x1261426 in void mbgl::MessageImpl<mbgl::GeometryTileWorker, void (mbgl::GeometryTileWorker::*)(std::map<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > >, std::less<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::pair<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > > > > >), std::tuple<std::map<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > >, std::less<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::pair<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > > > > > > >::invoke<0ul>(std::integer_sequence<unsigned long, 0ul>) /src/include/mbgl/actor/message.hpp:31:9\r\n#7 0x1261255 in mbgl::MessageImpl<mbgl::GeometryTileWorker, void (mbgl::GeometryTileWorker::*)(std::map<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > >, std::less<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::pair<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > > > > >), std::tuple<std::map<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > >, std::less<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::pair<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > > > > > > >::operator()() /src/include/mbgl/actor/message.hpp:26:9\r\n#8 0xad9337 in mbgl::Mailbox::receive() /src/src/mbgl/actor/mailbox.cpp:58:5\r\n#9 0xad96dc in mbgl::Mailbox::maybeReceive(std::weak_ptr<mbgl::Mailbox>) /src/src/mbgl/actor/mailbox.cpp:67:17\r\n#10 0x14b3118 in mbgl::ThreadPool::ThreadPool(unsigned long)::$_0::operator()() const /src/platform/default/mbgl/util/default_thread_pool.cpp:29:17\r\n#11 0x14b2ca6 in void std::_Bind_simple<mbgl::ThreadPool::ThreadPool(unsigned long)::$_0 ()>::_M_invoke<>(std::_Index_tuple<>) /usr/include/c++/5.4.0/functional:1530:18\r\n#12 0x14b2c46 in std::_Bind_simple<mbgl::ThreadPool::ThreadPool(unsigned long)::$_0 ()>::operator()() /usr/include/c++/5.4.0/functional:1520:16\r\n#13 0x14b29be in std::thread::_Impl<std::_Bind_simple<mbgl::ThreadPool::ThreadPool(unsigned long)::$_0 ()> >::_M_run() /usr/include/c++/5.4.0/thread:115:13\r\n#14 0x7f619eddec7f  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xb8c7f)\r\n#15 0x7f619fc626b9 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x76b9)\r\n#16 0x7f619e84d3dc in clone /build/glibc-bfm8X4/glibc-2.23/sysdeps/unix/sysv/linux/x86_64/clone.S:109\r\n</pre>\r\n</details>\r\n\r\n<details>\r\n<summary><code>src/mbgl/text/collision_tile.cpp:42:39: runtime error: division by zero</code></summary>\r\n<pre>\r\n#0 0x11e3fbf in mbgl::CollisionTile::findPlacementScale(mapbox::geometry::point<float> const&, mbgl::CollisionBox const&, float, mapbox::geometry::point<float> const&, mbgl::CollisionBox const&) /src/src/mbgl/text/collision_tile.cpp:42:39\r\n#1 0x11e5037 in mbgl::CollisionTile::placeFeature(mbgl::CollisionFeature const&, bool, bool) /src/src/mbgl/text/collision_tile.cpp:101:66\r\n#2 0x14d070d in mbgl::SymbolLayout::place(mbgl::CollisionTile&) /src/src/mbgl/layout/symbol_layout.cpp:482:27\r\n#3 0x13050bf in mbgl::GeometryTileWorker::attemptPlacement() /src/src/mbgl/tile/geometry_tile_worker.cpp:411:56\r\n#4 0x1305954 in mbgl::GeometryTileWorker::symbolDependenciesChanged() /src/src/mbgl/tile/geometry_tile_worker.cpp:148:17\r\n#5 0x1306289 in mbgl::GeometryTileWorker::onGlyphsAvailable(std::map<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > >, std::less<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::pair<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > > > > >) /src/src/mbgl/tile/geometry_tile_worker.cpp:216:5\r\n#6 0x1261426 in void mbgl::MessageImpl<mbgl::GeometryTileWorker, void (mbgl::GeometryTileWorker::*)(std::map<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > >, std::less<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::pair<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > > > > >), std::tuple<std::map<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > >, std::less<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::pair<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > > > > > > >::invoke<0ul>(std::integer_sequence<unsigned long, 0ul>) /src/include/mbgl/actor/message.hpp:31:9\r\n#7 0x1261255 in mbgl::MessageImpl<mbgl::GeometryTileWorker, void (mbgl::GeometryTileWorker::*)(std::map<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > >, std::less<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::pair<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > > > > >), std::tuple<std::map<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > >, std::less<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::pair<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > > > > > > >::operator()() /src/include/mbgl/actor/message.hpp:26:9\r\n#8 0xad9337 in mbgl::Mailbox::receive() /src/src/mbgl/actor/mailbox.cpp:58:5\r\n#9 0xad96dc in mbgl::Mailbox::maybeReceive(std::weak_ptr<mbgl::Mailbox>) /src/src/mbgl/actor/mailbox.cpp:67:17\r\n#10 0x14b3118 in mbgl::ThreadPool::ThreadPool(unsigned long)::$_0::operator()() const /src/platform/default/mbgl/util/default_thread_pool.cpp:29:17\r\n#11 0x14b2ca6 in void std::_Bind_simple<mbgl::ThreadPool::ThreadPool(unsigned long)::$_0 ()>::_M_invoke<>(std::_Index_tuple<>) /usr/include/c++/5.4.0/functional:1530:18\r\n#12 0x14b2c46 in std::_Bind_simple<mbgl::ThreadPool::ThreadPool(unsigned long)::$_0 ()>::operator()() /usr/include/c++/5.4.0/functional:1520:16\r\n#13 0x14b29be in std::thread::_Impl<std::_Bind_simple<mbgl::ThreadPool::ThreadPool(unsigned long)::$_0 ()> >::_M_run() /usr/include/c++/5.4.0/thread:115:13\r\n#14 0x7f619eddec7f  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xb8c7f)\r\n#15 0x7f619fc626b9 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x76b9)\r\n#16 0x7f619e84d3dc in clone /build/glibc-bfm8X4/glibc-2.23/sysdeps/unix/sysv/linux/x86_64/clone.S:109\r\n</pre>\r\n</details>\r\n\r\n<details>\r\n<summary><code>src/mbgl/text/collision_tile.cpp:43:39: runtime error: division by zero</code></summary>\r\n<pre>\r\n#0 0x11e415c in mbgl::CollisionTile::findPlacementScale(mapbox::geometry::point<float> const&, mbgl::CollisionBox const&, float, mapbox::geometry::point<float> const&, mbgl::CollisionBox const&) /src/src/mbgl/text/collision_tile.cpp:43:39\r\n#1 0x11e5037 in mbgl::CollisionTile::placeFeature(mbgl::CollisionFeature const&, bool, bool) /src/src/mbgl/text/collision_tile.cpp:101:66\r\n#2 0x14d070d in mbgl::SymbolLayout::place(mbgl::CollisionTile&) /src/src/mbgl/layout/symbol_layout.cpp:482:27\r\n#3 0x13050bf in mbgl::GeometryTileWorker::attemptPlacement() /src/src/mbgl/tile/geometry_tile_worker.cpp:411:56\r\n#4 0x1305954 in mbgl::GeometryTileWorker::symbolDependenciesChanged() /src/src/mbgl/tile/geometry_tile_worker.cpp:148:17\r\n#5 0x1306289 in mbgl::GeometryTileWorker::onGlyphsAvailable(std::map<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > >, std::less<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::pair<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > > > > >) /src/src/mbgl/tile/geometry_tile_worker.cpp:216:5\r\n#6 0x1261426 in void mbgl::MessageImpl<mbgl::GeometryTileWorker, void (mbgl::GeometryTileWorker::*)(std::map<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > >, std::less<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::pair<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > > > > >), std::tuple<std::map<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > >, std::less<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::pair<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > > > > > > >::invoke<0ul>(std::integer_sequence<unsigned long, 0ul>) /src/include/mbgl/actor/message.hpp:31:9\r\n#7 0x1261255 in mbgl::MessageImpl<mbgl::GeometryTileWorker, void (mbgl::GeometryTileWorker::*)(std::map<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > >, std::less<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::pair<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > > > > >), std::tuple<std::map<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > >, std::less<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::pair<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > > > > > > >::operator()() /src/include/mbgl/actor/message.hpp:26:9\r\n#8 0xad9337 in mbgl::Mailbox::receive() /src/src/mbgl/actor/mailbox.cpp:58:5\r\n#9 0xad96dc in mbgl::Mailbox::maybeReceive(std::weak_ptr<mbgl::Mailbox>) /src/src/mbgl/actor/mailbox.cpp:67:17\r\n#10 0x14b3118 in mbgl::ThreadPool::ThreadPool(unsigned long)::$_0::operator()() const /src/platform/default/mbgl/util/default_thread_pool.cpp:29:17\r\n#11 0x14b2ca6 in void std::_Bind_simple<mbgl::ThreadPool::ThreadPool(unsigned long)::$_0 ()>::_M_invoke<>(std::_Index_tuple<>) /usr/include/c++/5.4.0/functional:1530:18\r\n#12 0x14b2c46 in std::_Bind_simple<mbgl::ThreadPool::ThreadPool(unsigned long)::$_0 ()>::operator()() /usr/include/c++/5.4.0/functional:1520:16\r\n#13 0x14b29be in std::thread::_Impl<std::_Bind_simple<mbgl::ThreadPool::ThreadPool(unsigned long)::$_0 ()> >::_M_run() /usr/include/c++/5.4.0/thread:115:13\r\n#14 0x7f619eddec7f  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xb8c7f)\r\n#15 0x7f619fc626b9 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x76b9)\r\n#16 0x7f619e84d3dc in clone /build/glibc-bfm8X4/glibc-2.23/sysdeps/unix/sysv/linux/x86_64/clone.S:109\r\n</pre>\r\n</details>\r\n\r\n<details>\r\n<summary><code>src/mbgl/text/collision_tile.cpp:23:68: runtime error: division by zero</code></summary>\r\n<pre>\r\n#0 0x11e3682 in mbgl::CollisionTile::CollisionTile(mbgl::PlacementConfig) /src/src/mbgl/text/collision_tile.cpp:23:68\r\n#1 0x9b7292 in std::_MakeUniq<mbgl::CollisionTile>::__single_object std::make_unique<mbgl::CollisionTile, mbgl::PlacementConfig>(mbgl::PlacementConfig&&) /usr/include/c++/5.4.0/bits/unique_ptr.h:765:34\r\n#2 0x9b5809 in AnnotationTile_Issue8289_Test::TestBody() /src/test/tile/annotation_tile.test.cpp:67:26\r\n#3 0x16295a0 in testing::Test::Run() (/src/build/linux-x86_64/Sanitize/mbgl-test+0x16295a0)\r\n#4 0x162a57f in testing::TestInfo::Run() (/src/build/linux-x86_64/Sanitize/mbgl-test+0x162a57f)\r\n#5 0x162ace2 in testing::TestCase::Run() (/src/build/linux-x86_64/Sanitize/mbgl-test+0x162ace2)\r\n#6 0x1632e68 in testing::internal::UnitTestImpl::RunAllTests() (/src/build/linux-x86_64/Sanitize/mbgl-test+0x1632e68)\r\n#7 0x164466c in bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) (/src/build/linux-x86_64/Sanitize/mbgl-test+0x164466c)\r\n#8 0x16328ee in testing::UnitTest::Run() (/src/build/linux-x86_64/Sanitize/mbgl-test+0x16328ee)\r\n#9 0x62f737 in RUN_ALL_TESTS() /src/mason_packages/linux-x86_64/gtest/1.8.0-cxx11abi/include/gtest/gtest.h:2233:46\r\n#10 0x62f5e9 in mbgl::runTests(int, char**) /src/test/src/mbgl/test/test.cpp:14:12\r\n#11 0xad8ad8 in main /src/platform/default/mbgl/test/main.cpp:19:12\r\n#12 0x7f619e76682f in __libc_start_main /build/glibc-bfm8X4/glibc-2.23/csu/libc-start.c:291\r\n#13 0x453768 in _start (/src/build/linux-x86_64/Sanitize/mbgl-test+0x453768)\r\n</pre>\r\n</details>\r\n\r\n<details>\r\n<summary><code>src/mbgl/text/collision_tile.cpp:33:60: runtime error: division by zero</code></summary>\r\n<pre>\r\n#0 0x11e3abe in mbgl::CollisionTile::CollisionTile(mbgl::PlacementConfig) /src/src/mbgl/text/collision_tile.cpp:33:60\r\n#1 0x9b7292 in std::_MakeUniq&lt;mbgl::CollisionTile&gt;::__single_object std::make_unique&lt;mbgl::CollisionTile, mbgl::PlacementConfig&gt;(mbgl::PlacementConfig&&) /usr/include/c++/5.4.0/bits/unique_ptr.h:765:34\r\n#2 0x9b5809 in AnnotationTile_Issue8289_Test::TestBody() /src/test/tile/annotation_tile.test.cpp:67:26\r\n#3 0x16295a0 in testing::Test::Run() (/src/build/linux-x86_64/Sanitize/mbgl-test+0x16295a0)\r\n#4 0x162a57f in testing::TestInfo::Run() (/src/build/linux-x86_64/Sanitize/mbgl-test+0x162a57f)\r\n#5 0x162ace2 in testing::TestCase::Run() (/src/build/linux-x86_64/Sanitize/mbgl-test+0x162ace2)\r\n#6 0x1632e68 in testing::internal::UnitTestImpl::RunAllTests() (/src/build/linux-x86_64/Sanitize/mbgl-test+0x1632e68)\r\n#7 0x164466c in bool testing::internal::HandleExceptionsInMethodIfSupported&lt;testing::internal::UnitTestImpl, bool&gt;(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) (/src/build/linux-x86_64/Sanitize/mbgl-test+0x164466c)\r\n#8 0x16328ee in testing::UnitTest::Run() (/src/build/linux-x86_64/Sanitize/mbgl-test+0x16328ee)\r\n#9 0x62f737 in RUN_ALL_TESTS() /src/mason_packages/linux-x86_64/gtest/1.8.0-cxx11abi/include/gtest/gtest.h:2233:46\r\n#10 0x62f5e9 in mbgl::runTests(int, char**) /src/test/src/mbgl/test/test.cpp:14:12\r\n#11 0xad8ad8 in main /src/platform/default/mbgl/test/main.cpp:19:12\r\n#12 0x7f619e76682f in __libc_start_main /build/glibc-bfm8X4/glibc-2.23/csu/libc-start.c:291\r\n#13 0x453768 in _start (/src/build/linux-x86_64/Sanitize/mbgl-test+0x453768)\r\n</pre>\r\n</details>\r\n\r\n<details>\r\n<summary><code>src/mbgl/text/collision_feature.cpp:138:42: runtime error: division by zero</code></summary>\r\n<pre>\r\n#0 0x11de824 in mbgl::CollisionFeature::bboxifyLabel(mbgl::GeometryCoordinates const&, mapbox::geometry::point<short>&, int, float, float) /src/src/mbgl/text/collision_feature.cpp:138:42\r\n#1 0x11dda5d in mbgl::CollisionFeature::CollisionFeature(mbgl::GeometryCoordinates const&, mbgl::Anchor const&, float, float, float, float, float, float, mbgl::style::SymbolPlacementType, mbgl::IndexedSubfeature, mbgl::CollisionFeature::AlignmentType) /src/src/mbgl/text/collision_feature.cpp:42:13\r\n#2 0x160ab7b in mbgl::CollisionFeature::CollisionFeature(mbgl::GeometryCoordinates const&, mbgl::Anchor const&, mbgl::Shaping const&, float, float, mbgl::style::SymbolPlacementType, mbgl::IndexedSubfeature const&) /src/src/mbgl/text/collision_feature.hpp:54:11\r\n#3 0x160a099 in mbgl::SymbolInstance::SymbolInstance(mbgl::Anchor&, mbgl::GeometryCoordinates, std::pair<mbgl::Shaping, mbgl::Shaping> const&, std::experimental::fundamentals_v1::optional<mbgl::PositionedIcon>, mbgl::style::Properties<mbgl::style::SymbolPlacement, mbgl::style::SymbolSpacing, mbgl::style::SymbolAvoidEdges, mbgl::style::IconAllowOverlap, mbgl::style::IconIgnorePlacement, mbgl::style::IconOptional, mbgl::style::IconRotationAlignment, mbgl::style::IconSize, mbgl::style::IconTextFit, mbgl::style::IconTextFitPadding, mbgl::style::IconImage, mbgl::style::IconRotate, mbgl::style::IconPadding, mbgl::style::IconKeepUpright, mbgl::style::IconOffset, mbgl::style::IconPitchAlignment, mbgl::style::TextPitchAlignment, mbgl::style::TextRotationAlignment, mbgl::style::TextField, mbgl::style::TextFont, mbgl::style::TextSize, mbgl::style::TextMaxWidth, mbgl::style::TextLineHeight, mbgl::style::TextLetterSpacing, mbgl::style::TextJustify, mbgl::style::TextAnchor, mbgl::style::TextMaxAngle, mbgl::style::TextRotate, mbgl::style::TextPadding, mbgl::style::TextKeepUpright, mbgl::style::TextTransform, mbgl::style::TextOffset, mbgl::style::TextAllowOverlap, mbgl::style::TextIgnorePlacement, mbgl::style::TextOptional>::Evaluated const&, float, bool, unsigned int, float, float, mbgl::style::SymbolPlacementType, std::array<float, 2ul>, float, float, mbgl::style::SymbolPlacementType, std::array<float, 2ul>, std::map<char16_t, mbgl::GlyphPosition, std::less<char16_t>, std::allocator<std::pair<char16_t const, mbgl::GlyphPosition> > > const&, mbgl::IndexedSubfeature const&, unsigned long) /src/src/mbgl/layout/symbol_instance.cpp:34:5\r\n#4 0x152e0ad in void __gnu_cxx::new_allocator<mbgl::SymbolInstance>::construct<mbgl::SymbolInstance, mbgl::Anchor&, mbgl::GeometryCoordinates const&, std::pair<mbgl::Shaping, mbgl::Shaping> const&, std::experimental::fundamentals_v1::optional<mbgl::PositionedIcon>&, mbgl::style::Properties<mbgl::style::SymbolPlacement, mbgl::style::SymbolSpacing, mbgl::style::SymbolAvoidEdges, mbgl::style::IconAllowOverlap, mbgl::style::IconIgnorePlacement, mbgl::style::IconOptional, mbgl::style::IconRotationAlignment, mbgl::style::IconSize, mbgl::style::IconTextFit, mbgl::style::IconTextFitPadding, mbgl::style::IconImage, mbgl::style::IconRotate, mbgl::style::IconPadding, mbgl::style::IconKeepUpright, mbgl::style::IconOffset, mbgl::style::IconPitchAlignment, mbgl::style::TextPitchAlignment, mbgl::style::TextRotationAlignment, mbgl::style::TextField, mbgl::style::TextFont, mbgl::style::TextSize, mbgl::style::TextMaxWidth, mbgl::style::TextLineHeight, mbgl::style::TextLetterSpacing, mbgl::style::TextJustify, mbgl::style::TextAnchor, mbgl::style::TextMaxAngle, mbgl::style::TextRotate, mbgl::style::TextPadding, mbgl::style::TextKeepUpright, mbgl::style::TextTransform, mbgl::style::TextOffset, mbgl::style::TextAllowOverlap, mbgl::style::TextIgnorePlacement, mbgl::style::TextOptional>::Evaluated, float const&, bool const&, unsigned long, float const&, float const&, mbgl::style::SymbolPlacementType const&, std::array<float, 2ul> const&, float const&, float const&, mbgl::style::SymbolPlacementType const&, std::array<float, 2ul> const&, std::map<char16_t, mbgl::GlyphPosition, std::less<char16_t>, std::allocator<std::pair<char16_t const, mbgl::GlyphPosition> > > const&, mbgl::IndexedSubfeature&, unsigned long const&>(mbgl::SymbolInstance*, mbgl::Anchor&, mbgl::GeometryCoordinates const&, std::pair<mbgl::Shaping, mbgl::Shaping> const&, std::experimental::fundamentals_v1::optional<mbgl::PositionedIcon>&, mbgl::style::Properties<mbgl::style::SymbolPlacement, mbgl::style::SymbolSpacing, mbgl::style::SymbolAvoidEdges, mbgl::style::IconAllowOverlap, mbgl::style::IconIgnorePlacement, mbgl::style::IconOptional, mbgl::style::IconRotationAlignment, mbgl::style::IconSize, mbgl::style::IconTextFit, mbgl::style::IconTextFitPadding, mbgl::style::IconImage, mbgl::style::IconRotate, mbgl::style::IconPadding, mbgl::style::IconKeepUpright, mbgl::style::IconOffset, mbgl::style::IconPitchAlignment, mbgl::style::TextPitchAlignment, mbgl::style::TextRotationAlignment, mbgl::style::TextField, mbgl::style::TextFont, mbgl::style::TextSize, mbgl::style::TextMaxWidth, mbgl::style::TextLineHeight, mbgl::style::TextLetterSpacing, mbgl::style::TextJustify, mbgl::style::TextAnchor, mbgl::style::TextMaxAngle, mbgl::style::TextRotate, mbgl::style::TextPadding, mbgl::style::TextKeepUpright, mbgl::style::TextTransform, mbgl::style::TextOffset, mbgl::style::TextAllowOverlap, mbgl::style::TextIgnorePlacement, mbgl::style::TextOptional>::Evaluated&&, float const&, bool const&, unsigned long&&, float const&, float const&, mbgl::style::SymbolPlacementType const&, std::array<float, 2ul> const&, float const&, float const&, mbgl::style::SymbolPlacementType const&, std::array<float, 2ul> const&, std::map<char16_t, mbgl::GlyphPosition, std::less<char16_t>, std::allocator<std::pair<char16_t const, mbgl::GlyphPosition> > > const&, mbgl::IndexedSubfeature&, unsigned long const&) /usr/include/c++/5.4.0/ext/new_allocator.h:120:23\r\n#5 0x152ca19 in void std::allocator_traits<std::allocator<mbgl::SymbolInstance> >::construct<mbgl::SymbolInstance, mbgl::Anchor&, mbgl::GeometryCoordinates const&, std::pair<mbgl::Shaping, mbgl::Shaping> const&, std::experimental::fundamentals_v1::optional<mbgl::PositionedIcon>&, mbgl::style::Properties<mbgl::style::SymbolPlacement, mbgl::style::SymbolSpacing, mbgl::style::SymbolAvoidEdges, mbgl::style::IconAllowOverlap, mbgl::style::IconIgnorePlacement, mbgl::style::IconOptional, mbgl::style::IconRotationAlignment, mbgl::style::IconSize, mbgl::style::IconTextFit, mbgl::style::IconTextFitPadding, mbgl::style::IconImage, mbgl::style::IconRotate, mbgl::style::IconPadding, mbgl::style::IconKeepUpright, mbgl::style::IconOffset, mbgl::style::IconPitchAlignment, mbgl::style::TextPitchAlignment, mbgl::style::TextRotationAlignment, mbgl::style::TextField, mbgl::style::TextFont, mbgl::style::TextSize, mbgl::style::TextMaxWidth, mbgl::style::TextLineHeight, mbgl::style::TextLetterSpacing, mbgl::style::TextJustify, mbgl::style::TextAnchor, mbgl::style::TextMaxAngle, mbgl::style::TextRotate, mbgl::style::TextPadding, mbgl::style::TextKeepUpright, mbgl::style::TextTransform, mbgl::style::TextOffset, mbgl::style::TextAllowOverlap, mbgl::style::TextIgnorePlacement, mbgl::style::TextOptional>::Evaluated, float const&, bool const&, unsigned long, float const&, float const&, mbgl::style::SymbolPlacementType const&, std::array<float, 2ul> const&, float const&, float const&, mbgl::style::SymbolPlacementType const&, std::array<float, 2ul> const&, std::map<char16_t, mbgl::GlyphPosition, std::less<char16_t>, std::allocator<std::pair<char16_t const, mbgl::GlyphPosition> > > const&, mbgl::IndexedSubfeature&, unsigned long const&>(std::allocator<mbgl::SymbolInstance>&, mbgl::SymbolInstance*, mbgl::Anchor&, mbgl::GeometryCoordinates const&, std::pair<mbgl::Shaping, mbgl::Shaping> const&, std::experimental::fundamentals_v1::optional<mbgl::PositionedIcon>&, mbgl::style::Properties<mbgl::style::SymbolPlacement, mbgl::style::SymbolSpacing, mbgl::style::SymbolAvoidEdges, mbgl::style::IconAllowOverlap, mbgl::style::IconIgnorePlacement, mbgl::style::IconOptional, mbgl::style::IconRotationAlignment, mbgl::style::IconSize, mbgl::style::IconTextFit, mbgl::style::IconTextFitPadding, mbgl::style::IconImage, mbgl::style::IconRotate, mbgl::style::IconPadding, mbgl::style::IconKeepUpright, mbgl::style::IconOffset, mbgl::style::IconPitchAlignment, mbgl::style::TextPitchAlignment, mbgl::style::TextRotationAlignment, mbgl::style::TextField, mbgl::style::TextFont, mbgl::style::TextSize, mbgl::style::TextMaxWidth, mbgl::style::TextLineHeight, mbgl::style::TextLetterSpacing, mbgl::style::TextJustify, mbgl::style::TextAnchor, mbgl::style::TextMaxAngle, mbgl::style::TextRotate, mbgl::style::TextPadding, mbgl::style::TextKeepUpright, mbgl::style::TextTransform, mbgl::style::TextOffset, mbgl::style::TextAllowOverlap, mbgl::style::TextIgnorePlacement, mbgl::style::TextOptional>::Evaluated&&, float const&, bool const&, unsigned long&&, float const&, float const&, mbgl::style::SymbolPlacementType const&, std::array<float, 2ul> const&, float const&, float const&, mbgl::style::SymbolPlacementType const&, std::array<float, 2ul> const&, std::map<char16_t, mbgl::GlyphPosition, std::less<char16_t>, std::allocator<std::pair<char16_t const, mbgl::GlyphPosition> > > const&, mbgl::IndexedSubfeature&, unsigned long const&) /usr/include/c++/5.4.0/bits/alloc_traits.h:530:8\r\n#6 0x152d212 in void std::vector<mbgl::SymbolInstance, std::allocator<mbgl::SymbolInstance> >::_M_emplace_back_aux<mbgl::Anchor&, mbgl::GeometryCoordinates const&, std::pair<mbgl::Shaping, mbgl::Shaping> const&, std::experimental::fundamentals_v1::optional<mbgl::PositionedIcon>&, mbgl::style::Properties<mbgl::style::SymbolPlacement, mbgl::style::SymbolSpacing, mbgl::style::SymbolAvoidEdges, mbgl::style::IconAllowOverlap, mbgl::style::IconIgnorePlacement, mbgl::style::IconOptional, mbgl::style::IconRotationAlignment, mbgl::style::IconSize, mbgl::style::IconTextFit, mbgl::style::IconTextFitPadding, mbgl::style::IconImage, mbgl::style::IconRotate, mbgl::style::IconPadding, mbgl::style::IconKeepUpright, mbgl::style::IconOffset, mbgl::style::IconPitchAlignment, mbgl::style::TextPitchAlignment, mbgl::style::TextRotationAlignment, mbgl::style::TextField, mbgl::style::TextFont, mbgl::style::TextSize, mbgl::style::TextMaxWidth, mbgl::style::TextLineHeight, mbgl::style::TextLetterSpacing, mbgl::style::TextJustify, mbgl::style::TextAnchor, mbgl::style::TextMaxAngle, mbgl::style::TextRotate, mbgl::style::TextPadding, mbgl::style::TextKeepUpright, mbgl::style::TextTransform, mbgl::style::TextOffset, mbgl::style::TextAllowOverlap, mbgl::style::TextIgnorePlacement, mbgl::style::TextOptional>::Evaluated, float const&, bool const&, unsigned long, float const&, float const&, mbgl::style::SymbolPlacementType const&, std::array<float, 2ul> const&, float const&, float const&, mbgl::style::SymbolPlacementType const&, std::array<float, 2ul> const&, std::map<char16_t, mbgl::GlyphPosition, std::less<char16_t>, std::allocator<std::pair<char16_t const, mbgl::GlyphPosition> > > const&, mbgl::IndexedSubfeature&, unsigned long const&>(mbgl::Anchor&, mbgl::GeometryCoordinates const&, std::pair<mbgl::Shaping, mbgl::Shaping> const&, std::experimental::fundamentals_v1::optional<mbgl::PositionedIcon>&, mbgl::style::Properties<mbgl::style::SymbolPlacement, mbgl::style::SymbolSpacing, mbgl::style::SymbolAvoidEdges, mbgl::style::IconAllowOverlap, mbgl::style::IconIgnorePlacement, mbgl::style::IconOptional, mbgl::style::IconRotationAlignment, mbgl::style::IconSize, mbgl::style::IconTextFit, mbgl::style::IconTextFitPadding, mbgl::style::IconImage, mbgl::style::IconRotate, mbgl::style::IconPadding, mbgl::style::IconKeepUpright, mbgl::style::IconOffset, mbgl::style::IconPitchAlignment, mbgl::style::TextPitchAlignment, mbgl::style::TextRotationAlignment, mbgl::style::TextField, mbgl::style::TextFont, mbgl::style::TextSize, mbgl::style::TextMaxWidth, mbgl::style::TextLineHeight, mbgl::style::TextLetterSpacing, mbgl::style::TextJustify, mbgl::style::TextAnchor, mbgl::style::TextMaxAngle, mbgl::style::TextRotate, mbgl::style::TextPadding, mbgl::style::TextKeepUpright, mbgl::style::TextTransform, mbgl::style::TextOffset, mbgl::style::TextAllowOverlap, mbgl::style::TextIgnorePlacement, mbgl::style::TextOptional>::Evaluated&&, float const&, bool const&, unsigned long&&, float const&, float const&, mbgl::style::SymbolPlacementType const&, std::array<float, 2ul> const&, float const&, float const&, mbgl::style::SymbolPlacementType const&, std::array<float, 2ul> const&, std::map<char16_t, mbgl::GlyphPosition, std::less<char16_t>, std::allocator<std::pair<char16_t const, mbgl::GlyphPosition> > > const&, mbgl::IndexedSubfeature&, unsigned long const&) /usr/include/c++/5.4.0/bits/vector.tcc:416:6\r\n#7 0x152b133 in void std::vector<mbgl::SymbolInstance, std::allocator<mbgl::SymbolInstance> >::emplace_back<mbgl::Anchor&, mbgl::GeometryCoordinates const&, std::pair<mbgl::Shaping, mbgl::Shaping> const&, std::experimental::fundamentals_v1::optional<mbgl::PositionedIcon>&, mbgl::style::Properties<mbgl::style::SymbolPlacement, mbgl::style::SymbolSpacing, mbgl::style::SymbolAvoidEdges, mbgl::style::IconAllowOverlap, mbgl::style::IconIgnorePlacement, mbgl::style::IconOptional, mbgl::style::IconRotationAlignment, mbgl::style::IconSize, mbgl::style::IconTextFit, mbgl::style::IconTextFitPadding, mbgl::style::IconImage, mbgl::style::IconRotate, mbgl::style::IconPadding, mbgl::style::IconKeepUpright, mbgl::style::IconOffset, mbgl::style::IconPitchAlignment, mbgl::style::TextPitchAlignment, mbgl::style::TextRotationAlignment, mbgl::style::TextField, mbgl::style::TextFont, mbgl::style::TextSize, mbgl::style::TextMaxWidth, mbgl::style::TextLineHeight, mbgl::style::TextLetterSpacing, mbgl::style::TextJustify, mbgl::style::TextAnchor, mbgl::style::TextMaxAngle, mbgl::style::TextRotate, mbgl::style::TextPadding, mbgl::style::TextKeepUpright, mbgl::style::TextTransform, mbgl::style::TextOffset, mbgl::style::TextAllowOverlap, mbgl::style::TextIgnorePlacement, mbgl::style::TextOptional>::Evaluated, float const&, bool const&, unsigned long, float const&, float const&, mbgl::style::SymbolPlacementType const&, std::array<float, 2ul> const&, float const&, float const&, mbgl::style::SymbolPlacementType const&, std::array<float, 2ul> const&, std::map<char16_t, mbgl::GlyphPosition, std::less<char16_t>, std::allocator<std::pair<char16_t const, mbgl::GlyphPosition> > > const&, mbgl::IndexedSubfeature&, unsigned long const&>(mbgl::Anchor&, mbgl::GeometryCoordinates const&, std::pair<mbgl::Shaping, mbgl::Shaping> const&, std::experimental::fundamentals_v1::optional<mbgl::PositionedIcon>&, mbgl::style::Properties<mbgl::style::SymbolPlacement, mbgl::style::SymbolSpacing, mbgl::style::SymbolAvoidEdges, mbgl::style::IconAllowOverlap, mbgl::style::IconIgnorePlacement, mbgl::style::IconOptional, mbgl::style::IconRotationAlignment, mbgl::style::IconSize, mbgl::style::IconTextFit, mbgl::style::IconTextFitPadding, mbgl::style::IconImage, mbgl::style::IconRotate, mbgl::style::IconPadding, mbgl::style::IconKeepUpright, mbgl::style::IconOffset, mbgl::style::IconPitchAlignment, mbgl::style::TextPitchAlignment, mbgl::style::TextRotationAlignment, mbgl::style::TextField, mbgl::style::TextFont, mbgl::style::TextSize, mbgl::style::TextMaxWidth, mbgl::style::TextLineHeight, mbgl::style::TextLetterSpacing, mbgl::style::TextJustify, mbgl::style::TextAnchor, mbgl::style::TextMaxAngle, mbgl::style::TextRotate, mbgl::style::TextPadding, mbgl::style::TextKeepUpright, mbgl::style::TextTransform, mbgl::style::TextOffset, mbgl::style::TextAllowOverlap, mbgl::style::TextIgnorePlacement, mbgl::style::TextOptional>::Evaluated&&, float const&, bool const&, unsigned long&&, float const&, float const&, mbgl::style::SymbolPlacementType const&, std::array<float, 2ul> const&, float const&, float const&, mbgl::style::SymbolPlacementType const&, std::array<float, 2ul> const&, std::map<char16_t, mbgl::GlyphPosition, std::less<char16_t>, std::allocator<std::pair<char16_t const, mbgl::GlyphPosition> > > const&, mbgl::IndexedSubfeature&, unsigned long const&) /usr/include/c++/5.4.0/bits/vector.tcc:101:4\r\n#8 0x14cf059 in mbgl::SymbolLayout::addFeature(unsigned long, mbgl::SymbolFeature const&, std::pair<mbgl::Shaping, mbgl::Shaping> const&, std::experimental::fundamentals_v1::optional<mbgl::PositionedIcon>, std::map<char16_t, mbgl::GlyphPosition, std::less<char16_t>, std::allocator<std::pair<char16_t const, mbgl::GlyphPosition> > > const&)::$_4::operator()(mbgl::GeometryCoordinates const&, mbgl::Anchor&) const /src/src/mbgl/layout/symbol_layout.cpp:360:25\r\n#9 0x14cd8ed in mbgl::SymbolLayout::addFeature(unsigned long, mbgl::SymbolFeature const&, std::pair<mbgl::Shaping, mbgl::Shaping> const&, std::experimental::fundamentals_v1::optional<mbgl::PositionedIcon>, std::map<char16_t, mbgl::GlyphPosition, std::less<char16_t>, std::allocator<std::pair<char16_t const, mbgl::GlyphPosition> > > const&) /src/src/mbgl/layout/symbol_layout.cpp:386:21\r\n#10 0x14cb57b in mbgl::SymbolLayout::prepare(std::map<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > >, std::less<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::pair<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const, std::map<char16_t, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> >, std::less<char16_t>, std::allocator<std::pair<char16_t const, std::experimental::fundamentals_v1::optional<mbgl::Immutable<mbgl::Glyph> > > > > > > > const&, std::map<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::map<char16_t, mbgl::GlyphPosition, std::less<char16_t>, std::allocator<std::pair<char16_t const, mbgl::GlyphPosition> > >, std::less<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::pair<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const, std::map<char16_t, mbgl::GlyphPosition, std::less<char16_t>, std::allocator<std::pair<char16_t const, mbgl::GlyphPosition> > > > > > const&, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, mbgl::Immutable<mbgl::style::Image::Impl>, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mbgl::Immutable<mbgl::style::Image::Impl> > > > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, mbgl::ImagePosition, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mbgl::ImagePosition> > > const&) /src/src/mbgl/layout/symbol_layout.cpp:292:13\r\n#11 0x1304dca in mbgl::GeometryTileWorker::attemptPlacement() /src/src/mbgl/tile/geometry_tile_worker.cpp:392:27\r\n#12 0x1305c2a in mbgl::GeometryTileWorker::coalesced() /src/src/mbgl/tile/geometry_tile_worker.cpp:185:13\r\n#13 0x134035f in void mbgl::MessageImpl<mbgl::GeometryTileWorker, void (mbgl::GeometryTileWorker::*)(), std::tuple<> >::invoke<>(std::integer_sequence<unsigned long>) /src/include/mbgl/actor/message.hpp:31:9\r\n#14 0x1340225 in mbgl::MessageImpl<mbgl::GeometryTileWorker, void (mbgl::GeometryTileWorker::*)(), std::tuple<> >::operator()() /src/include/mbgl/actor/message.hpp:26:9\r\n#15 0xad9337 in mbgl::Mailbox::receive() /src/src/mbgl/actor/mailbox.cpp:58:5\r\n#16 0xad96dc in mbgl::Mailbox::maybeReceive(std::weak_ptr<mbgl::Mailbox>) /src/src/mbgl/actor/mailbox.cpp:67:17\r\n#17 0x14b3118 in mbgl::ThreadPool::ThreadPool(unsigned long)::$_0::operator()() const /src/platform/default/mbgl/util/default_thread_pool.cpp:29:17\r\n#18 0x14b2ca6 in void std::_Bind_simple<mbgl::ThreadPool::ThreadPool(unsigned long)::$_0 ()>::_M_invoke<>(std::_Index_tuple<>) /usr/include/c++/5.4.0/functional:1530:18\r\n#19 0x14b2c46 in std::_Bind_simple<mbgl::ThreadPool::ThreadPool(unsigned long)::$_0 ()>::operator()() /usr/include/c++/5.4.0/functional:1520:16\r\n#20 0x14b29be in std::thread::_Impl<std::_Bind_simple<mbgl::ThreadPool::ThreadPool(unsigned long)::$_0 ()> >::_M_run() /usr/include/c++/5.4.0/thread:115:13\r\n#21 0x7f619eddec7f  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xb8c7f)\r\n#22 0x7f619fc626b9 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x76b9)\r\n#23 0x7f619e84d3dc in clone /build/glibc-bfm8X4/glibc-2.23/sysdeps/unix/sysv/linux/x86_64/clone.S:109\r\n</pre>\r\n</details>\r\n"},"comment":{"url":"https://api.github.com/repos/mapbox/mapbox-gl-native/issues/comments/315169003","html_url":"https://github.com/mapbox/mapbox-gl-native/issues/9499#issuecomment-315169003","issue_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/issues/9499","id":315169003,"user":{"login":"ChrisLoer","id":375121,"avatar_url":"https://avatars1.githubusercontent.com/u/375121?v=3","gravatar_id":"","url":"https://api.github.com/users/ChrisLoer","html_url":"https://github.com/ChrisLoer","followers_url":"https://api.github.com/users/ChrisLoer/followers","following_url":"https://api.github.com/users/ChrisLoer/following{/other_user}","gists_url":"https://api.github.com/users/ChrisLoer/gists{/gist_id}","starred_url":"https://api.github.com/users/ChrisLoer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ChrisLoer/subscriptions","organizations_url":"https://api.github.com/users/ChrisLoer/orgs","repos_url":"https://api.github.com/users/ChrisLoer/repos","events_url":"https://api.github.com/users/ChrisLoer/events{/privacy}","received_events_url":"https://api.github.com/users/ChrisLoer/received_events","type":"User","site_admin":false},"created_at":"2017-07-13T18:50:59Z","updated_at":"2017-07-13T18:50:59Z","body":"@kkaefer The `quads.cpp` unsigned short overflow is prevented from happening in actual use by the `padding` constant in `image_atlas.cpp`. The error here is just because the test harness passes in a `mapbox::Bin` with x/y coordinates of -1. I pushed a fix to the test harness at https://github.com/mapbox/mapbox-gl-native/pull/9509.\r\n\r\nA few of the `CollisionTile` division by zero calls are actually intentionally supported (we check the result with `std::isnan` after the division). Technically dividing a float by zero shouldn't be undefined behavior on its own, right? All of the suspect divisions should be removed in our global collision detection work, but it'll be a while until that makes its way into native."}}
{"actor":{"display_login":"ChrisLoer"}}