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

mbgl::LayerManager::createLayout Crash #16518

Open
hactar opened this issue Aug 10, 2020 · 1 comment
Open

mbgl::LayerManager::createLayout Crash #16518

hactar opened this issue Aug 10, 2020 · 1 comment

Comments

@hactar
Copy link

hactar commented Aug 10, 2020

We have an issue where our app sometimes crashes while starting to run UI tests in the iOS simulator. Its a heisenbug - so we have not seen occur while the debugger is attached.

Could anyone point us in the direction of what createLayout is doing here and what we might be doing wrong that would cause createLayout to crash? In particular, would this occur more during the loading of a styleURL, the switching of a style or when we add/remove sources, or all three?

Any pointers would be greatly appreciated...

Crashed Thread:        15  com.mapbox.mbgl.Worker 4

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Termination Signal:    Segmentation fault: 11
Termination Reason:    Namespace SIGNAL, Code 0xb
Terminating Process:   exc handler [5675]

Thread 15 Crashed:: com.mapbox.mbgl.Worker 4
0   com.mapbox.Mapbox             	0x000000011102d8fc mbgl::LayerManager::createLayout(mbgl::LayoutParameters const&, std::__1::unique_ptr<mbgl::GeometryTileLayer, std::__1::default_delete<mbgl::GeometryTileLayer> >, std::__1::vector<mbgl::Immutable<mbgl::style::LayerProperties>, std::__1::allocator<mbgl::Immutable<mbgl::style::LayerProperties> > > const&) + 60 (layer_manager.cpp:47)
1   com.mapbox.Mapbox             	0x00000001112c9d22 mbgl::GeometryTileWorker::parse() + 1794 (geometry_tile_worker.cpp:389)
2   com.mapbox.Mapbox             	0x00000001112c9589 mbgl::GeometryTileWorker::setData(std::__1::unique_ptr<mbgl::GeometryTileData const, std::__1::default_delete<mbgl::GeometryTileData const> >, std::__1::set<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >, unsigned long long) + 233 (geometry_tile_worker.cpp:130)
3   com.mapbox.Mapbox             	0x00000001112a22ea void mbgl::MessageImpl<mbgl::GeometryTileWorker, void (mbgl::GeometryTileWorker::*)(std::__1::unique_ptr<mbgl::GeometryTileData const, std::__1::default_delete<mbgl::GeometryTileData const> >, std::__1::set<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >, unsigned long long), std::__1::tuple<std::__1::unique_ptr<mbgl::GeometryTileData const, std::__1::default_delete<mbgl::GeometryTileData const> >, std::__1::set<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >, unsigned long long> >::invoke<0ul, 1ul, 2ul>(std::__1::integer_sequence<unsigned long, 0ul, 1ul, 2ul>) + 138 (message.hpp:34)
4   com.mapbox.Mapbox             	0x0000000110fe2cf2 mbgl::Mailbox::receive() + 370 (mailbox.cpp:83)
5   com.mapbox.Mapbox             	0x0000000110fe2f6d mbgl::Mailbox::maybeReceive(std::__1::weak_ptr<mbgl::Mailbox> const&) + 45
6   com.mapbox.Mapbox             	0x00000001112f3200 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, mbgl::ThreadedSchedulerBase::makeSchedulerThread(unsigned long)::$_0> >(void*) + 928 (thread:352)
7   libsystem_pthread.dylib       	0x00007fff522b7109 _pthread_start + 148
8   libsystem_pthread.dylib       	0x00007fff522b2b8b thread_start + 15

Configuration

Mapbox SDK versions:
Mapbox iOS 5.9.0
iOS/macOS versions:
13.5
Device/simulator models:
iPhone 8
Xcode version:
13.6

@adrianstrahan
Copy link

Hi,
We're getting a very similar issue in our released iOS app:

#0 (null) in __pthread_kill ()
#1 (null) in pthread_kill ()
#2 (null) in abort ()
#3 (null) in abort_message ()
#4 (null) in demangling_terminate_handler() ()
#5 (null) in _objc_terminate() ()
#6 (null) in std::__terminate(void ()()) ()
#7 (null) in std::terminate() ()
#8 (null) in mbgl::LayerManager::createLayout(mbgl::LayoutParameters const&, std::__1::unique_ptr<mbgl::GeometryTileLayer, std::__1::default_deletembgl::GeometryTileLayer >, std::__1::vector<mbgl::Immutable<m... ()
#9 (null) in mbgl::GeometryTileWorker::parse() ()
#10 (null) in mbgl::GeometryTileWorker::setData(std::__1::unique_ptr<mbgl::GeometryTileData const, std::__1::default_delete<mbgl::GeometryTileData const> >, std::__1::set<std::__1::basic_string<char, std::__1::c... ()
#11 (null) in void mbgl::MessageImpl<mbgl::GeometryTileWorker, void (mbgl::GeometryTileWorker::
)(std::__1::unique_ptr<mbgl::GeometryTileData const, std::__1::default_delete<mbgl::GeometryTileData const> >, std:... ()
#12 (null) in mbgl::Mailbox::receive() ()
#13 (null) in std::__1::__split_buffer<std::__1::unique_ptr<mbgl::Message, std::__1::default_deletembgl::Message >, std::__1::allocator<std::__1::unique_ptr<mbgl::Message, std::__1::default_deletembgl::Message >> >::push_front+ 314484 (std::__1::unique_ptr<mbgl::Message, std::__1::default_deletembgl::Message >*&&) ()
#14 (null) in std::__1::__deque_base<std::__1::function<void ()>, std::__1::allocator<std::__1::function<void ()> > >::clear+ 3644064 () ()
#15 (null) in _pthread_start ()
#16 (null) in thread_start ()

This is using Mapbox-iOS-SDK (6.2.1) on iOS 14.0.1 on an iPhone SE.

Does anyone have any ideas?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants