PDA

View Full Version : Fix for "iOS 9.2 crashes" - the log pointing to the GLStateMachine



Adela_Silvia
28.03.2016, 15:55
Please find below the 2.5.1 hotfix for the crashes with Skobbler or OpenGL related stack trace (the issues have been seen in Crashlytics)
https://www.dropbox.com/s/vzhf3uiy68gjxyt/iOSDemoProject_2_5_1.zip?dl=0

HBu
05.04.2016, 17:14
Is there a swift version of the hotfix? I see only the ObjC version of SKMapsFrameworkDemo and SkMapsFramework.

Adela_Silvia
06.04.2016, 16:20
Hotfix for swift version: https://www.dropbox.com/sh/f3i4zddqt9z9ilb/AACzFRySVw-b4-4pjXL1Q2T5a?dl=0

Oleksii
25.04.2016, 16:10
Does crash which is affected by hotfix happened when an app was in backgroud?
For our app we have a lot of such records in Crashlytics but for them "App in focus" value is always 0%

michalzelinka
27.04.2016, 08:33
Logged crash catched by Fabric.


Crashed: com.twitter.crashlytics.ios.exception
0 Travel 0x10026e990 CLSProcessRecordAllThreads + 4297861520
1 Travel 0x10026e990 CLSProcessRecordAllThreads + 4297861520
2 Travel 0x10026edb0 CLSProcessRecordAllThreads + 4297862576
3 Travel 0x10025fa74 CLSHandler + 4297800308
4 Travel 0x10026d0b8 __CLSExceptionRecord_block_invoke + 4297855160
5 libdispatch.dylib 0x180cb947c _dispatch_client_callout + 16
6 libdispatch.dylib 0x180cc4728 _dispatch_barrier_sync_f_invoke + 100
7 Travel 0x10026cb64 CLSExceptionRecord + 4297853796
8 Travel 0x10026c6e8 CLSTerminateHandler() + 4297852648
9 libc++abi.dylib 0x1808c6f44 std::__terminate(void (*)()) + 16
10 libc++abi.dylib 0x1808c6fd0 std::set_new_handler(void (*)()) + 90
11 libobjc.A.dylib 0x1808d41a4 _destroyAltHandlerList + 10
12 libdispatch.dylib 0x180cb9490 _dispatch_client_callout + 36
13 libdispatch.dylib 0x180cba2c0 dispatch_once_f + 80
14 Travel 0x100407ab4 -[SKMapsService initializeSKMapsWithAPIKey:settings:] + 4299537076
15 Travel 0x100083a14 -[AppDelegate application:didFinishLaunchingWithOptions:] (AppDelegate.m:159)
16 UIKit 0x18642e8a8 -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:re storeState:] + 400
17 UIKit 0x18665e094 -[UIApplication _callInitializationDelegatesForMainScene:transitio nContext:] + 2904
18 UIKit 0x186662500 -[UIApplication _runWithMainScene:transitionContext:completion:] + 1684
19 UIKit 0x18665f674 -[UIApplication workspaceDidEndTransaction:] + 168
20 FrontBoardServices 0x182c0f7ac __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ + 36
21 FrontBoardServices 0x182c0f618 -[FBSSerialQueue _performNext] + 168
22 FrontBoardServices 0x182c0f9c8 -[FBSSerialQueue _performNextFromRunLoopSource] + 56
23 CoreFoundation 0x181225124 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FU NCTION__ + 24
24 CoreFoundation 0x181224bb8 __CFRunLoopDoSources0 + 540
25 CoreFoundation 0x1812228b8 __CFRunLoopRun + 724
26 CoreFoundation 0x18114cd10 CFRunLoopRunSpecific + 384
27 UIKit 0x186427834 -[UIApplication _run] + 460
28 UIKit 0x186421f70 UIApplicationMain + 204
29 Travel 0x1000835a8 main (main.m:17)
30 libdispatch.dylib 0x180cea8b8 (Missing)

Oleksii
27.04.2016, 09:37
@michalzelinka are you sure? I found this thread from stackowerflow post with completely different stacktrace. And there Adela provided link to this hotfix as solution. http://stackoverflow.com/questions/36221061/skobbler-ios-crash-during-navigation
And I have logs which look exactly the same, except last address shift. I asked my question because for me due to Crashlytics it always happens in background, not during navigation.

std::__1::__tree<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int>, std::__1::__map_value_compare<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int>, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, true>, std::__1::allocator<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int> > >::destroy(std::__1::__tree_node<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int>, void*>*) + 36

Adela_Silvia
27.04.2016, 09:55
We managed to reproduce the issue on our consumer apps which addresses the hotfix by force closing the app while in the background. So please test with the latest build.

michalzelinka
27.04.2016, 09:56
Well the crash I reported doesn't occur any often, but since a release of our app update (3 hours back) over 15 crash logs have been reported to Crashlytics.

Adela_Silvia
27.04.2016, 10:45
@Michal, can you please send us the logs so that we can report to our development team?
For the other users the GLStateMachine issues were fixed- but still, we are not sure how many of this kind of issues were fixed

high5fly
07.06.2016, 10:00
Hi Adela,

We have encountered a crash and I would like to ask if the pods have all hot fixes? Also here is our crash report from the Crashlytics:


#0
Crashed: Thread
EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0xe000000000000000
Raw
0
std::__1::unordered_map<unsigned int, std::__1::vector<std::__1::shared_ptr<CurvedText>, std::__1::allocator<std::__1::shared_ptr<CurvedText> > >, std::__1::hash<unsigned int>, std::__1::equal_to<unsigned int>, std::__1::allocator<std::__1::pair<unsigned int const, std::__1::vector<std::__1::shared_ptr<CurvedText>, std::__1::allocator<std::__1::shared_ptr<CurvedText> > > > > >::operator[](unsigned int const&) + 4299236912
1
MapStylerBase::processFeatures(int, RoadRenderTile&, std::__1::set<unsigned int, std::__1::less<unsigned int>, std::__1::allocator<unsigned int> > const&, RoadTile const&, int, std::__1::unordered_map<unsigned short, TypeGeometry, std::__1::hash<unsigned short>, std::__1::equal_to<unsigned short>, std::__1::allocator<std::__1::pair<unsigned short const, TypeGeometry> > >&, bool, float) + 4298304728
2
RoadRenderTile::Style(int, RoadTile const&, MapStylerBase&, MapViewInterplay const&) + 4298128384
3
MapRenderer::loadTiles(std::__1::vector<TileId, std::__1::allocator<TileId> > const&, MapViewInterplay const&, bool) + 4299115552
4
TileLoader<MapRenderer>::update(MapViewInterplay const&, std::__1::set<TileLoader<MapRenderer>::TileItem, TileLoader<MapRenderer>::TileItem::ComparePriority, std::__1::allocator<TileLoader<MapRenderer>::TileItem> >&, bool) + 4297922068
5
TileLoader<MapRenderer>::run() + 4297919808
6
TileLoader<MapRenderer>::runHelper(void*) + 4299284564
7
libsystem_pthread.dylib
_pthread_body + 156
9
libsystem_pthread.dylib
thread_start + 4


KR,
Miro

high5fly
20.06.2016, 11:06
Hi, we go another disturbing crash:


#0
Crashed: com.apple.main-thread
EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x8000000012866f7b
Raw
0
std::__1::__tree<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int>, std::__1::__map_value_compare<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int>, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, true>, std::__1::allocator<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int> > >::destroy(std::__1::__tree_node<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int>, void*>*) + 4300369632
1
std::__1::__tree<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int>, std::__1::__map_value_compare<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int>, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, true>, std::__1::allocator<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int> > >::destroy(std::__1::__tree_node<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int>, void*>*) + 4300369644
2
std::__1::__tree<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int>, std::__1::__map_value_compare<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int>, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, true>, std::__1::allocator<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int> > >::destroy(std::__1::__tree_node<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int>, void*>*) + 4300369644
3
std::__1::__tree<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int>, std::__1::__map_value_compare<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int>, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, true>, std::__1::allocator<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int> > >::destroy(std::__1::__tree_node<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int>, void*>*) + 4300369644
4
std::__1::__tree<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int>, std::__1::__map_value_compare<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int>, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, true>, std::__1::allocator<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int> > >::destroy(std::__1::__tree_node<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int>, void*>*) + 4300369644
5
opengl::GLProgram::~GLProgram() + 4300678564
6
std::__1::__tree<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int>, std::__1::__map_value_compare<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int>, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, true>, std::__1::allocator<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int> > >::destroy(std::__1::__tree_node<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int>, void*>*) + 4300369644
7
opengl::GLProgram::~GLProgram() + 4300678992
8
opengl::detail::GLStateMachine::~GLStateMachine() + 4300631720
9
opengl::detail::GLStateMachine::~GLStateMachine() + 4300626828
10
libsystem_c.dylib
__cxa_finalize_ranges + 428
22
UIKit
UIApplicationMain + 204
23
main.m line 16
main
24 libdispatch.dylib
(Missing)

michalzelinka
20.06.2016, 11:25
We've got a couple of them:

2551

It makes a majority of crash reports we have logged on Fabric. Here's a batch of them taken from Xcode Organiser:

Dropbox link (https://www.dropbox.com/s/fzcubquqz5ffoa1/map-related-crashes.zip?dl=1)

There are some obscure things, like instant crashes right during app initialisation (related to MapSearch, what the hell, during init?) and a couple of MapSearch-, POIManager- and other C++-related stuff.

high5fly
20.06.2016, 11:27
Same here. Hopefully a hot fix will be provided through pods, because it is not really nice :(

HBu
22.06.2016, 14:09
I'd like to know if the pods have all the hot fixes too.

Best,
Holger

michalzelinka
22.06.2016, 14:17
Guys, stop vitally rely on CocoaPods. You need to handle the case when needed.

If you sacrifice 2 minutes of your time, you can take a look at a podspec file (do you guys even know how CocoaPods work, or do you just follow README manuals?), download the linked binary archive and find that CocoaPods-distributed binary is dated Thursday 1 October 2015. That means it's over half a year old, so most possibly, NO, they are not updated at all.

When did programmers stop to research stuff, try to solve complications and begin to rely on product forums and wait until somebody does the job you should do in the first instance?

high5fly
22.06.2016, 14:22
As it is a product distributed by pods we expect to put patches and fixes on pods. But I take your point.

dandronic
24.06.2016, 08:00
No - the pod does not have the hotfixes

high5fly
24.06.2016, 10:43
Is it planned to be applied at some point in pods?

Adela_Silvia
28.06.2016, 14:16
Once we'll release the 3.0 SDK (next month) we'll update also the pods that would come with this fix.

high5fly
28.06.2016, 14:37
Thank you very much. This is great news!

high5fly
01.08.2016, 12:06
Hi Adela and dandronic,

Sorry for the spam, but I would like to ask for the upcoming release of the 3.0 SDK, do you have any information when will be in Cocoa pods available?

KR,
Miro

Adela_Silvia
02.08.2016, 13:24
hi high5fly, the cocoapods for 3.0 should be available by the end of this week.

high5fly
02.08.2016, 14:21
Hi Adela,

These are great news!

Thank you.