Skip to content
This repository has been archived by the owner on Aug 8, 2023. It is now read-only.

Crash when loading style with expressions #11940

Closed
captainbarbosa opened this issue May 18, 2018 · 3 comments
Closed

Crash when loading style with expressions #11940

captainbarbosa opened this issue May 18, 2018 · 3 comments
Assignees
Labels
Core The cross-platform C++ core, aka mbgl crash iOS Mapbox Maps SDK for iOS
Milestone

Comments

@captainbarbosa
Copy link
Contributor

Platform: iOS
Mapbox SDK version: 4.0.0

Steps to trigger behavior

  1. Load Mapbox "Heads Up" designer style mapbox/cjgyas9fg000t2sphcvojsq0v into the iOS application included with this framework.
  2. Observe crash

Expected behavior

Map should load without crashing the application.

Actual behavior

Hard crash 😢 - seems to be occurring at mbgl::style::expression::findZoomCurveChecked

I tried bisecting this between 3.7.8 and 4.0.0 but wasn't able to find a related commit that may have caused this.

Here's the backtrace:
Assertion failed: (false), function operator(), file /Users/nadia/repos/mapbox-gl-native/src/mbgl/style/expression/find_zoom_curve.cpp, line 65.
(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
    frame #0: 0x0000000108d08b6e libsystem_kernel.dylib`__pthread_kill + 10
    frame #1: 0x0000000108d42080 libsystem_pthread.dylib`pthread_kill + 333
    frame #2: 0x0000000108963c97 libsystem_c.dylib`abort + 127
    frame #3: 0x000000010892cc03 libsystem_c.dylib`__assert_rtn + 320
  * frame #4: 0x0000000101094d70 Mapbox`mbgl::style::expression::findZoomCurveChecked(this=0x00007ffeef917e10, (null)=0x00007ffeef917ee0)::$_1::operator()(mbgl::style::expression::ParsingError const&) const at find_zoom_curve.cpp:65
    frame #5: 0x0000000101094cb7 Mapbox`mapbox::util::detail::dispatcher<mapbox::util::visitor<mbgl::style::expression::findZoomCurveChecked(mbgl::style::expression::Expression const*)::$_1, mbgl::style::expression::findZoomCurveChecked(mbgl::style::expression::Expression const*)::$_2>, mapbox::util::variant<mbgl::style::expression::InterpolateBase const*, mbgl::style::expression::Step const*, mbgl::style::expression::ParsingError>, mapbox::util::variant<mbgl::style::expression::InterpolateBase const*, mbgl::style::expression::Step const*>, mbgl::style::expression::ParsingError>::apply(v=0x00007ffeef917ed8, f=0x00007ffeef917e10)::$_1, mbgl::style::expression::findZoomCurveChecked(mbgl::style::expression::Expression const*)::$_2>&&) at variant.hpp:331
    frame #6: 0x0000000101094b8b Mapbox`mapbox::util::detail::dispatcher<mapbox::util::visitor<mbgl::style::expression::findZoomCurveChecked(mbgl::style::expression::Expression const*)::$_1, mbgl::style::expression::findZoomCurveChecked(mbgl::style::expression::Expression const*)::$_2>, mapbox::util::variant<mbgl::style::expression::InterpolateBase const*, mbgl::style::expression::Step const*, mbgl::style::expression::ParsingError>, mapbox::util::variant<mbgl::style::expression::InterpolateBase const*, mbgl::style::expression::Step const*>, mbgl::style::expression::Step const*, mbgl::style::expression::ParsingError>::apply(v=0x00007ffeef917ed8, f=0x00007ffeef917e10)::$_1, mbgl::style::expression::findZoomCurveChecked(mbgl::style::expression::Expression const*)::$_2>&&) at variant.hpp:316
    frame #7: 0x0000000101094a8b Mapbox`mapbox::util::detail::dispatcher<mapbox::util::visitor<mbgl::style::expression::findZoomCurveChecked(mbgl::style::expression::Expression const*)::$_1, mbgl::style::expression::findZoomCurveChecked(mbgl::style::expression::Expression const*)::$_2>, mapbox::util::variant<mbgl::style::expression::InterpolateBase const*, mbgl::style::expression::Step const*, mbgl::style::expression::ParsingError>, mapbox::util::variant<mbgl::style::expression::InterpolateBase const*, mbgl::style::expression::Step const*>, mbgl::style::expression::InterpolateBase const*, mbgl::style::expression::Step const*, mbgl::style::expression::ParsingError>::apply(v=0x00007ffeef917ed8, f=0x00007ffeef917e10)::$_1, mbgl::style::expression::findZoomCurveChecked(mbgl::style::expression::Expression const*)::$_2>&&) at variant.hpp:316
    frame #8: 0x00000001010949dc Mapbox`decltype(v=0x00007ffeef917ed8, f=0x00007ffeef917e10)::$_1, mbgl::style::expression::findZoomCurveChecked(mbgl::style::expression::Expression const*)::$_2>, mapbox::util::variant<mbgl::style::expression::InterpolateBase const*, mbgl::style::expression::Step const*, mbgl::style::expression::ParsingError>, mapbox::util::variant<mbgl::style::expression::InterpolateBase const*, mbgl::style::expression::Step const*>, mbgl::style::expression::InterpolateBase const*, mbgl::style::expression::Step const*, mbgl::style::expression::ParsingError>::apply(fpstd::forward<mapbox::util::visitor<mbgl::style::expression::findZoomCurveChecked(mbgl::style::expression::Expression const*)::$_1, mbgl::style::expression::findZoomCurveChecked(mbgl::style::expression::Expression const*)::$_2> >(fp0))) mapbox::util::variant<mbgl::style::expression::InterpolateBase const*, mbgl::style::expression::Step const*, mbgl::style::expression::ParsingError>::visit<mapbox::util::visitor<mbgl::style::expression::findZoomCurveChecked(mbgl::style::expression::Expression const*)::$_1, mbgl::style::expression::findZoomCurveChecked(mbgl::style::expression::Expression const*)::$_2>, mapbox::util::variant<mbgl::style::expression::InterpolateBase const*, mbgl::style::expression::Step const*, mbgl::style::expression::ParsingError>, mapbox::util::variant<mbgl::style::expression::InterpolateBase const*, mbgl::style::expression::Step const*> >(mapbox::util::variant<mbgl::style::expression::InterpolateBase const*, mbgl::style::expression::Step const*, mbgl::style::expression::ParsingError>&, mapbox::util::visitor<mbgl::style::expression::findZoomCurveChecked(mbgl::style::expression::Expression const*)::$_1, mbgl::style::expression::findZoomCurveChecked(mbgl::style::expression::Expression const*)::$_2>&&) at variant.hpp:857
    frame #9: 0x00000001010914cd Mapbox`_ZN6mapbox4util7variantIJPKN4mbgl5style10expression15InterpolateBaseEPKNS4_4StepENS4_12ParsingErrorEEE5matchIJZNS4_20findZoomCurveCheckedEPKNS4_10ExpressionEE3$_1ZNS4_20findZoomCurveCheckedESG_E3$_2EEEDTclsr7variantE5visitdefpTclgssr6mapbox4utilE12make_visitorspclsr3stdE7forwardIT_Efp_EEEEDpOSJ_(this=0x00007ffeef917ed8, fs=0x00007ffeef917e80, fs=0x00007ffeef917e78) at variant.hpp:889
    frame #10: 0x00000001010913b6 Mapbox`mbgl::style::expression::findZoomCurveChecked(e=0x0000600000479900) at find_zoom_curve.cpp:63
    frame #11: 0x0000000100a943c3 Mapbox`mbgl::style::CameraFunction<std::__1::vector<float, std::__1::allocator<float> > >::CameraFunction(this=0x00007ffeef918740, expression_=<unavailable>) at camera_function.hpp:32
    frame #12: 0x0000000100a941d5 Mapbox`mbgl::style::CameraFunction<std::__1::vector<float, std::__1::allocator<float> > >::CameraFunction(this=0x00007ffeef918740, expression_=<unavailable>) at camera_function.hpp:33
    frame #13: 0x0000000100a9351d Mapbox`mbgl::style::conversion::Converter<mbgl::style::PropertyValue<std::__1::vector<float, std::__1::allocator<float> > >, void>::operator(this=0x00007ffeef918858, value=0x00007ffeef918ef8, error=0x00007ffeef9188f8)(mbgl::style::conversion::Convertible const&, mbgl::style::conversion::Error&) const at property_value.hpp:33
    frame #14: 0x0000000100a91ed3 Mapbox`std::experimental::fundamentals_v1::optional<mbgl::style::PropertyValue<std::__1::vector<float, std::__1::allocator<float> > > > mbgl::style::conversion::convert<mbgl::style::PropertyValue<std::__1::vector<float, std::__1::allocator<float> > > >(value=0x00007ffeef918ef8, error=0x00007ffeef9188f8) at conversion.hpp:301
    frame #15: 0x0000000100fa562c Mapbox`std::experimental::fundamentals_v1::optional<mbgl::style::conversion::Error> mbgl::style::conversion::setProperty<mbgl::style::LineLayer, mbgl::style::PropertyValue<std::__1::vector<float, std::__1::allocator<float> > >, &(layer=0x0000600000479940, value=0x00007ffeef918ef8))>(mbgl::style::Layer&, mbgl::style::conversion::Convertible const&) at property_setter.hpp:27
    frame #16: 0x0000000100f70a26 Mapbox`mbgl::style::conversion::setPaintProperty(layer=0x0000600000479940, name="line-dasharray", value=0x00007ffeef918ef8) at layer.cpp:34
    frame #17: 0x0000000100fc4edf Mapbox`mbgl::style::conversion::setPaintProperties(this=0x00007ffeef9192a8, k="line-dasharray", v=0x00007ffeef918ef8)::$_0::operator()(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, mbgl::style::conversion::Convertible const&) const at layer.cpp:46
    frame #18: 0x0000000100fc4ea4 Mapbox`std::experimental::fundamentals_v1::optional<mbgl::style::conversion::Error> std::__1::__invoke_void_return_wrapper<std::experimental::fundamentals_v1::optional<mbgl::style::conversion::Error> >::__call<mbgl::style::conversion::setPaintProperties(mbgl::style::Layer&, mbgl::style::conversion::Convertible const&)::$_0&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, mbgl::style::conversion::Convertible const&>(mbgl::style::conversion::setPaintProperties(mbgl::style::Layer&, mbgl::style::conversion::Convertible const&)::$_0&&&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&&&, mbgl::style::conversion::Convertible const&&&) [inlined] decltype(__f=0x00007ffeef9192a8, __args="line-dasharray", __args=0x00007ffeef918ef8)::$_0&>(fp)(std::__1::forward<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, mbgl::style::conversion::Convertible const&>(fp0))) std::__1::__invoke<mbgl::style::conversion::setPaintProperties(mbgl::style::Layer&, mbgl::style::conversion::Convertible const&)::$_0&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, mbgl::style::conversion::Convertible const&>(mbgl::style::conversion::setPaintProperties(mbgl::style::Layer&, mbgl::style::conversion::Convertible const&)::$_0&&&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&&&, mbgl::style::conversion::Convertible const&&&) at type_traits:4323
    frame #19: 0x0000000100fc4e77 Mapbox`std::experimental::fundamentals_v1::optional<mbgl::style::conversion::Error> std::__1::__invoke_void_return_wrapper<std::experimental::fundamentals_v1::optional<mbgl::style::conversion::Error> >::__call<mbgl::style::conversion::setPaintProperties(__args=0x00007ffeef9192a8, __args="line-dasharray", __args=0x00007ffeef918ef8)::$_0&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, mbgl::style::conversion::Convertible const&>(mbgl::style::conversion::setPaintProperties(mbgl::style::Layer&, mbgl::style::conversion::Convertible const&)::$_0&&&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&&&, mbgl::style::conversion::Convertible const&&&) at __functional_base:318
    frame #20: 0x0000000100fc4d70 Mapbox`std::__1::__function::__func<mbgl::style::conversion::setPaintProperties(mbgl::style::Layer&, mbgl::style::conversion::Convertible const&)::$_0, std::__1::allocator<mbgl::style::conversion::setPaintProperties(mbgl::style::Layer&, mbgl::style::conversion::Convertible const&)::$_0>, std::experimental::fundamentals_v1::optional<mbgl::style::conversion::Error> (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, mbgl::style::conversion::Convertible const&)>::operator(this=0x00007ffeef9192a0, __arg="line-dasharray", __arg=0x00007ffeef918ef8)(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, mbgl::style::conversion::Convertible const&) at functional:1562
    frame #21: 0x00000001006386fc Mapbox`std::__1::function<std::experimental::fundamentals_v1::optional<mbgl::style::conversion::Error> (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, mbgl::style::conversion::Convertible const&)>::operator(this=0x00007ffeef9192a0, __arg="line-dasharray", __arg=0x00007ffeef918ef8)(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, mbgl::style::conversion::Convertible const&) const at functional:1921
    frame #22: 0x000000010117bac4 Mapbox`auto mbgl::style::conversion::Convertible::vtableEachMember<rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::CrtAllocator> const*>(this=0x00007ffeef9190c8, k="line-dasharray", v=0x00007ffeef918fa0)> const&)::'lambda'(mbgl::style::conversion::Convertible const, rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::CrtAllocator> const*&&)::operator()(mbgl::style::conversion::Convertible const, 'lambda'(mbgl::style::conversion::Convertible const, rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::CrtAllocator> const*&&)) const at conversion.hpp:230
    frame #23: 0x000000010117b7c1 Mapbox`std::__1::aligned_storage::basic_string mbgl::style::conversion::ConversionTraits<rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::CrtAllocator> const*>::eachMember<auto mbgl::style::conversion::Convertible::vtableEachMember<rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::CrtAllocator> const*>(value=0x00007fd1e8d3c8c0, fn=0x00007ffeef9190c8)> const&)::'lambda'(mbgl::style::conversion::Convertible const, rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::CrtAllocator> const*&&)>(rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::CrtAllocator> const*, auto mbgl::style::conversion::Convertible::vtableEachMember<rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::CrtAllocator> const*>(std::__1::aligned_storage<8ul, 8ul>::type const&, std::__1::aligned_storage::function<std::experimental::fundamentals_v1::optional<mbgl::style::conversion::Error> (std::__1::aligned_storage::basic_string<char, std::__1::aligned_storage::char_traits<char>, std::__1::aligned_storage::allocator<char> > const&, mbgl::style::conversion::Convertible const&)> const&)::'lambda'(mbgl::style::conversion::Convertible const, rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::CrtAllocator> const*&&)&&) at rapidjson_conversion.hpp:49
    frame #24: 0x000000010117ade2 Mapbox`auto mbgl::style::conversion::Convertible::vtableEachMember<rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::CrtAllocator> const*>(s=0x00007ffeef9192d8, fn=0x00007ffeef9192a0)> const&) at conversion.hpp:229
    frame #25: 0x00000001010c01fb Mapbox`mbgl::style::conversion::eachMember(v=0x00007ffeef9192d0, fn=0x00007ffeef9192a0)> const&) at conversion.hpp:155
    frame #26: 0x0000000100f7b5c6 Mapbox`mbgl::style::conversion::setPaintProperties(layer=0x0000600000479940, value=0x00007ffeef91c5e8) at layer.cpp:45
    frame #27: 0x0000000100f81a51 Mapbox`mbgl::style::conversion::Converter<std::__1::unique_ptr<mbgl::style::Layer, std::__1::default_delete<mbgl::style::Layer> >, void>::operator(this=0x00007ffeef91c578, value=0x00007ffeef91c5e8, error=0x00007ffeef91c7a8)(mbgl::style::conversion::Convertible const&, mbgl::style::conversion::Error&) const at layer.cpp:221
    frame #28: 0x00000001011ce843 Mapbox`std::experimental::fundamentals_v1::optional<std::__1::unique_ptr<mbgl::style::Layer, std::__1::default_delete<mbgl::style::Layer> > > mbgl::style::conversion::convert<std::__1::unique_ptr<mbgl::style::Layer, std::__1::default_delete<mbgl::style::Layer> > >(value=0x00007ffeef91c5e8, error=0x00007ffeef91c7a8) at conversion.hpp:301
    frame #29: 0x00000001011c0576 Mapbox`std::experimental::fundamentals_v1::optional<std::__1::unique_ptr<mbgl::style::Layer, std::__1::default_delete<mbgl::style::Layer> > > mbgl::style::conversion::convert<std::__1::unique_ptr<mbgl::style::Layer, std::__1::default_delete<mbgl::style::Layer> > >(value=0x00007fd1e988b0e0, error=0x00007ffeef91c7a8) at rapidjson_conversion.hpp:119
    frame #30: 0x00000001011bf533 Mapbox`mbgl::style::Parser::parseLayer(this=0x00007ffeef91f8b0, id="ferry-route", value=0x00007fd1e988b0e0, layer=0x000060000047c530) at parser.cpp:267
    frame #31: 0x00000001011bc9a5 Mapbox`mbgl::style::Parser::parseLayers(this=0x00007ffeef91f8b0, value=0x00007fd1e8e12130) at parser.cpp:210
    frame #32: 0x00000001011b6c12 Mapbox`mbgl::style::Parser::parse(this=0x00007ffeef91f8b0, json="{\"version\":8,\"name\":\"Heads Up\",\"metadata\":{\"mapbox:trackposition\":false,\"mapbox:groups\":{\"a636a5194689e7c1dede11bf3cd8dcac\":{\"name\":\"Landuse\",\"collapsed\":true},\"0cb8c63458cbe21bbe1ad66543f73a04\":{\"name\":\"Roads\",\"collapsed\":true},\"ab588f3c9c75b626577112146960e2bf\":{\"name\":\"Tunnels\",\"collapsed\":true},\"d84bd578f1389e89645c76070bd1c761\":{\"name\":\"Marine labels\",\"collapsed\":true},\"7d43494b5025022bf83d5e73f771a8c5\":{\"name\":\"Country & State labels\",\"collapsed\":false},\"4a585425cb0cc2af93b4cdedda86461d\":{\"name\":\"Borders\",\"collapsed\":true},\"659790aba31107609c41007408bfdeeb\":{\"name\":\"Road labels\",\"collapsed\":true},\"87eb9fc4e65e33c3909d5992c53c8c22\":{\"name\":\"POI labels\",\"collapsed\":true},\"f423319a6dab2ed463382f7e7edc5da1\":{\"name\":\"Bridges\",\"collapsed\":true},\"003e472752e5683c3f8ef9dee45b54a0\":{\"name\":\"Misc\",\"collapsed\":true},\"0e4fe52bb6e07167e428ec66ad643fd7\":{\"name\":\"Place labels\",\"collapsed\":true},\"81e0cf9f98ce9bc755c618b8fbf578e3\":{\"name\":\"Water\",\"collapsed\":true}},\"mapbox:autocomposite\":true,\"mapbox:sdk-support\":{\"js\":"...) at parser.cpp:105
    frame #33: 0x000000010124d8f4 Mapbox`mbgl::style::Style::Impl::parse(this=0x00007fd1e8c38e50, json_="{\"version\":8,\"name\":\"Heads Up\",\"metadata\":{\"mapbox:trackposition\":false,\"mapbox:groups\":{\"a636a5194689e7c1dede11bf3cd8dcac\":{\"name\":\"Landuse\",\"collapsed\":true},\"0cb8c63458cbe21bbe1ad66543f73a04\":{\"name\":\"Roads\",\"collapsed\":true},\"ab588f3c9c75b626577112146960e2bf\":{\"name\":\"Tunnels\",\"collapsed\":true},\"d84bd578f1389e89645c76070bd1c761\":{\"name\":\"Marine labels\",\"collapsed\":true},\"7d43494b5025022bf83d5e73f771a8c5\":{\"name\":\"Country & State labels\",\"collapsed\":false},\"4a585425cb0cc2af93b4cdedda86461d\":{\"name\":\"Borders\",\"collapsed\":true},\"659790aba31107609c41007408bfdeeb\":{\"name\":\"Road labels\",\"collapsed\":true},\"87eb9fc4e65e33c3909d5992c53c8c22\":{\"name\":\"POI labels\",\"collapsed\":true},\"f423319a6dab2ed463382f7e7edc5da1\":{\"name\":\"Bridges\",\"collapsed\":true},\"003e472752e5683c3f8ef9dee45b54a0\":{\"name\":\"Misc\",\"collapsed\":true},\"0e4fe52bb6e07167e428ec66ad643fd7\":{\"name\":\"Place labels\",\"collapsed\":true},\"81e0cf9f98ce9bc755c618b8fbf578e3\":{\"name\":\"Water\",\"collapsed\":true}},\"mapbox:autocomposite\":true,\"mapbox:sdk-support\":{\"js\":"...) at style_impl.cpp:79
    frame #34: 0x000000010125da46 Mapbox`mbgl::style::Style::Impl::loadURL(this=0x00007ffeef920638, res=Response @ 0x00007ffeef920498)::$_0::operator()(mbgl::Response) const at style_impl.cpp:71
    frame #35: 0x000000010125d62d Mapbox`void std::__1::__invoke_void_return_wrapper<void>::__call<mbgl::style::Style::Impl::loadURL(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0&, mbgl::Response>(mbgl::style::Style::Impl::loadURL(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0&&&, mbgl::Response&&) [inlined] decltype(__f=0x00007ffeef920638, __args=0x00007ffeef9205c0)::$_0&>(fp)(std::__1::forward<mbgl::Response>(fp0))) std::__1::__invoke<mbgl::style::Style::Impl::loadURL(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0&, mbgl::Response>(mbgl::style::Style::Impl::loadURL(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0&&&, mbgl::Response&&) at type_traits:4323
    frame #36: 0x000000010125d5e5 Mapbox`void std::__1::__invoke_void_return_wrapper<void>::__call<mbgl::style::Style::Impl::loadURL(__args=0x00007ffeef920638, __args=0x00007ffeef9205c0)::$_0&, mbgl::Response>(mbgl::style::Style::Impl::loadURL(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0&&&, mbgl::Response&&) at __functional_base:349
    frame #37: 0x000000010125d4e9 Mapbox`std::__1::__function::__func<mbgl::style::Style::Impl::loadURL(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0, std::__1::allocator<mbgl::style::Style::Impl::loadURL(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>, void (mbgl::Response)>::operator(this=0x00007ffeef920630, __arg=0x00007ffeef9205c0)(mbgl::Response&&) at functional:1562
    frame #38: 0x000000010151442e Mapbox`std::__1::function<void (mbgl::Response)>::operator(this=0x00007ffeef920630, __arg=Response @ 0x00007ffeef9205c0)(mbgl::Response) const at functional:1921
    frame #39: 0x00000001014cf8ba Mapbox`mbgl::FileSourceRequest::setResponse(this=0x00006000000f3d80, response=0x00006000000f5e20) at file_source_request.cpp:30
    frame #40: 0x00000001014b30fa Mapbox`void mbgl::MessageImpl<mbgl::FileSourceRequest, void (mbgl::FileSourceRequest::*)(mbgl::Response const&), std::__1::tuple<mbgl::Response> >::invoke<0ul>(this=0x00006000000f5e00, (null)=std::__1::index_sequence<0UL> @ 0x00007ffeef9206b0) at message.hpp:34
    frame #41: 0x00000001014b3015 Mapbox`mbgl::MessageImpl<mbgl::FileSourceRequest, void (mbgl::FileSourceRequest::*)(mbgl::Response const&), std::__1::tuple<mbgl::Response> >::operator(this=0x00006000000f5e00)() at message.hpp:29
    frame #42: 0x0000000100af4af7 Mapbox`mbgl::Mailbox::receive(this=0x00007fd1e8c08818) at mailbox.cpp:58
    frame #43: 0x0000000100af4f4e Mapbox`mbgl::Mailbox::maybeReceive(mailbox=std::__1::weak_ptr<mbgl::Mailbox>::element_type @ 0x00007fd1e8c08818 strong=2 weak=5) at mailbox.cpp:67
    frame #44: 0x000000010148a4b5 Mapbox`mbgl::util::RunLoop::schedule(this=0x000060000010c430)::'lambda'()::operator()() const at run_loop.hpp:78
    frame #45: 0x000000010148a419 Mapbox`void mbgl::WorkTaskImpl<mbgl::util::RunLoop::schedule(std::__1::weak_ptr<mbgl::Mailbox>)::'lambda'(), std::__1::tuple<> >::invoke<>(this=0x000060000010c3d8, (null)=std::__1::index_sequence<> @ 0x00007ffeef920c38) at work_task_impl.hpp:43
    frame #46: 0x000000010148a206 Mapbox`mbgl::WorkTaskImpl<mbgl::util::RunLoop::schedule(std::__1::weak_ptr<mbgl::Mailbox>)::'lambda'(), std::__1::tuple<> >::operator(this=0x000060000010c3d8)() at work_task_impl.hpp:23
    frame #47: 0x00000001014877dd Mapbox`mbgl::util::RunLoop::process(this=0x0000000101696078) at run_loop.hpp:117
    frame #48: 0x000000010148baa1 Mapbox`void std::__1::__invoke_void_return_wrapper<void>::__call<std::__1::__bind<void (mbgl::util::RunLoop::*)(), mbgl::util::RunLoop*>&>(std::__1::__bind<void (mbgl::util::RunLoop::*)(), mbgl::util::RunLoop*>&&&) [inlined] decltype(__f=0x0000600000290a98, __a0=0x0000600000290aa8)).*fp(std::__1::forward<>(fp1))) std::__1::__invoke<void (mbgl::util::RunLoop::*&)(), mbgl::util::RunLoop*&, void>(void (mbgl::util::RunLoop::*&&&)(), mbgl::util::RunLoop*&&&) at type_traits:4264
    frame #49: 0x000000010148ba22 Mapbox`void std::__1::__invoke_void_return_wrapper<void>::__call<std::__1::__bind<void (mbgl::util::RunLoop::*)(), mbgl::util::RunLoop*>&>(std::__1::__bind<void (mbgl::util::RunLoop::*)(), mbgl::util::RunLoop*>&&&) [inlined] std::__1::__bind_return<void (mbgl::util::RunLoop::*)(), std::__1::tuple<mbgl::util::RunLoop*>, std::__1::tuple<>, __is_valid_bind_return<void (mbgl::util::RunLoop::*)(), std::__1::tuple<mbgl::util::RunLoop*>, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (__f=0x0000600000290a98, __bound_args=0x0000600000290aa8, __args=0x00007ffeef9210e0)(), std::__1::tuple<mbgl::util::RunLoop*>, 0ul, std::__1::tuple<> >(void (mbgl::util::RunLoop::*&)(), std::__1::tuple<mbgl::util::RunLoop*>&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&) at functional:2224
    frame #50: 0x000000010148b9f2 Mapbox`void std::__1::__invoke_void_return_wrapper<void>::__call<std::__1::__bind<void (mbgl::util::RunLoop::*)(), mbgl::util::RunLoop*>&>(std::__1::__bind<void (mbgl::util::RunLoop::*)(), mbgl::util::RunLoop*>&&&) [inlined] std::__1::__bind_return<void (mbgl::util::RunLoop::*)(), std::__1::tuple<mbgl::util::RunLoop*>, std::__1::tuple<>, __is_valid_bind_return<void (mbgl::util::RunLoop::*)(), std::__1::tuple<mbgl::util::RunLoop*>, std::__1::tuple<> >::value>::type std::__1::__bind<void (this=0x0000600000290a98)(), mbgl::util::RunLoop*>::operator()<>() at functional:2257
    frame #51: 0x000000010148b9cf Mapbox`void std::__1::__invoke_void_return_wrapper<void>::__call<std::__1::__bind<void (mbgl::util::RunLoop::*)(), mbgl::util::RunLoop*>&>(std::__1::__bind<void (mbgl::util::RunLoop::*)(), mbgl::util::RunLoop*>&&&) [inlined] decltype(__f=0x0000600000290a98)(), mbgl::util::RunLoop*>&>(fp)(std::__1::forward<>(fp0))) std::__1::__invoke<std::__1::__bind<void (mbgl::util::RunLoop::*)(), mbgl::util::RunLoop*>&>(std::__1::__bind<void (mbgl::util::RunLoop::*)(), mbgl::util::RunLoop*>&&&) at type_traits:4323
    frame #52: 0x000000010148b9bb Mapbox`void std::__1::__invoke_void_return_wrapper<void>::__call<std::__1::__bind<void (__args=0x0000600000290a98)(), mbgl::util::RunLoop*>&>(std::__1::__bind<void (mbgl::util::RunLoop::*)(), mbgl::util::RunLoop*>&&&) at __functional_base:349
    frame #53: 0x000000010148b8d9 Mapbox`std::__1::__function::__func<std::__1::__bind<void (mbgl::util::RunLoop::*)(), mbgl::util::RunLoop*>, std::__1::allocator<std::__1::__bind<void (mbgl::util::RunLoop::*)(), mbgl::util::RunLoop*> >, void ()>::operator(this=0x0000600000290a90)() at functional:1562
    frame #54: 0x00000001014861bb Mapbox`std::__1::function<void ()>::operator(this=0x0000600000290a90)() const at functional:1921
    frame #55: 0x0000000101486130 Mapbox`mbgl::util::AsyncTask::Impl::runTask(this=0x0000600000290a90) at async_task.cpp:45
    frame #56: 0x0000000101485fb5 Mapbox`mbgl::util::AsyncTask::Impl::perform(info=0x0000600000290a90) at async_task.cpp:50
    frame #57: 0x000000010390dbb1 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
    frame #58: 0x00000001038f24af CoreFoundation`__CFRunLoopDoSources0 + 271
    frame #59: 0x00000001038f1a6f CoreFoundation`__CFRunLoopRun + 1263
    frame #60: 0x00000001038f130b CoreFoundation`CFRunLoopRunSpecific + 635
    frame #61: 0x0000000109ed1a73 GraphicsServices`GSEventRunModal + 62
    frame #62: 0x00000001045a80b7 UIKit`UIApplicationMain + 159
    frame #63: 0x00000001002ddc1f Mapbox GL`main(argc=1, argv=0x00007ffeef9221a8) at main.m:8
    frame #64: 0x0000000108891955 libdyld.dylib`start + 1
    frame #65: 0x0000000108891955 libdyld.dylib`start + 1
@captainbarbosa captainbarbosa added bug iOS Mapbox Maps SDK for iOS labels May 18, 2018
@friedbunny friedbunny added crash Core The cross-platform C++ core, aka mbgl and removed bug labels May 18, 2018
@friedbunny friedbunny added this to the ios-v4.0.2 milestone May 18, 2018
@anandthakker
Copy link
Contributor

This is caused by a "literal" expression being used for a non-data-driven property (which should be allowed). It's essentially a duplicate of #10849 that wasn't fixed by #11606 (which only handled this case for style properties that support data driven styling).

@rasagy
Copy link

rasagy commented May 21, 2018

@anandthakker Do you think there’s a workaround to fix this in the style while the gl-native support for literal expression is taken care of? I switched from data-driven UI to the new Studio UI, and the building height property transition is causing this. Since there seem to be multiple way to write an expression for the same effect, do you have any recommendations?

I’m just trying to change the building height to go from 0 (for all values) to height in m from z15 to z16 so they rise up as you zoom in.

@friedbunny Thanks for the heads up about this.

@anandthakker
Copy link
Contributor

@rasagy From my debugging, it looks to me like this is caused by this property in the ferry-route layer:

                "line-dasharray": [
                    "literal",
                    [
                        2,
                        3
                    ]
                ],

I'm working on a fix now, but in the meantime, you should be able to work around the problem by changing the above to:

                "line-dasharray": [
                        2,
                        3
                ],

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Core The cross-platform C++ core, aka mbgl crash iOS Mapbox Maps SDK for iOS
Projects
None yet
Development

No branches or pull requests

4 participants