Crash in com.apple.mediaplayer.ResultSetEntities

Originator:timburks
Number:rdar://22820846 Date Originated:2015-09-23
Status:Open Resolved:
Product:iOS Product Version:iOS 9
Classification:Crash Reproducible:Rarely
 
Summary:
We are receiving many reports from Crashlytics of similar-looking crashes deep in the MediaPlayer framework. 

All are for iOS 9 and we did not see this crash before testing on iOS 9.

Steps to Reproduce:
We have not yet found a way to reproduce this internally.

Expected Results:
No Crash.

Actual Results:
Here are three stack traces from different crash reports.

As you can see, once the traces go into Apple code they are essentially identical.

Crash Report #1:

Thread : Crashed: com.apple.mediaplayer.ResultSetEntities
0  MediaPlayer                    0x0000000186d747d4 void std::__1::__tree_left_rotate<std::__1::__tree_node_base<void*>*>(std::__1::__tree_node_base<void*>*) + 4
1  MediaPlayer                    0x0000000186d746c4 std::__1::__tree<std::__1::__value_type<long long, MPMediaEntity<MPCacheableConcreteMediaEntity>* __weak>, std::__1::__map_value_compare<long long, std::__1::__value_type<long long, MPMediaEntity<MPCacheableConcreteMediaEntity>* __weak>, std::__1::less<long long>, true>, std::__1::allocator<std::__1::__value_type<long long, MPMediaEntity<MPCacheableConcreteMediaEntity>* __weak> > >::__insert_node_at(std::__1::__tree_node_base<void*>*, std::__1::__tree_node_base<void*>*&, std::__1::__tree_node_base<void*>*) + 64
2  MediaPlayer                    0x0000000186d745fc std::__1::map<long long, MPMediaEntity<MPCacheableConcreteMediaEntity>* __weak, std::__1::less<long long>, std::__1::allocator<std::__1::pair<long long const, MPMediaEntity<MPCacheableConcreteMediaEntity>* __weak> > >::operator[](long long const&) + 92
3  MediaPlayer                    0x0000000186d73cc4 __99-[MPMediaEntityCache _entityWithIdentifier:mediaEntityType:collectionGroupingType:loadEntityBlock:]_block_invoke + 44
4  MediaPlayer                    0x0000000186d7451c -[MPMediaEntityCache _performWithSharedAccess:] + 60
5  MediaPlayer                    0x0000000186d739b4 -[MPMediaEntityCache _entityWithIdentifier:mediaEntityType:collectionGroupingType:loadEntityBlock:] + 272
6  MediaPlayer                    0x0000000186d73628 -[MPMediaEntityCache itemWithIdentifier:loadEntityBlock:] + 36
7  MediaPlayer                    0x0000000186cc3170 +[MPConcreteMediaItem concreteMediaItemWithPersistentID:library:] + 172
8  MediaPlayer                    0x0000000186ccbca4 __45-[MPMediaEntityResultSetArray objectAtIndex:]_block_invoke + 820
9  libdispatch.dylib              0x0000000199a41770 _dispatch_client_callout + 16
10 libdispatch.dylib              0x0000000199a4c9c4 _dispatch_barrier_sync_f_invoke + 100
11 MediaPlayer                    0x0000000186ccb92c -[MPMediaEntityResultSetArray objectAtIndex:] + 160
12 CoreFoundation                 0x00000001845a5474 -[NSArray getObjects:range:] + 124
13 CoreFoundation                 0x00000001845a533c -[NSArray countByEnumeratingWithState:objects:count:] + 168
14 justDrive                      0x0000000101017590 -[XXXX propertiesForMediaPlaylist:] + 3090768
15 justDrive                      0x00000001010178e0 -[XXXX getAllPlaylistsAndItems] + 3091616
16 justDrive                      0x0000000101016040 __51-[XXXX processChangesWithSyncURL:]_block_invoke + 3085312
17 libdispatch.dylib              0x0000000199a417b0 _dispatch_call_block_and_release + 24
18 libdispatch.dylib              0x0000000199a41770 _dispatch_client_callout + 16
19 libdispatch.dylib              0x0000000199a4fbb0 _dispatch_root_queue_drain + 2140
20 libdispatch.dylib              0x0000000199a4f34c _dispatch_worker_thread3 + 112
21 libsystem_pthread.dylib        0x0000000199c55478 _pthread_wqthread + 1092
22 libsystem_pthread.dylib        0x0000000199c55028 start_wqthread + 4


Crash Report #2:

Thread : Crashed: Main thread (com.apple.mediaplayer.ResultSetEntities)
0  MediaPlayer                    0x0000000186d747d4 void std::__1::__tree_left_rotate<std::__1::__tree_node_base<void*>*>(std::__1::__tree_node_base<void*>*) + 4
1  MediaPlayer                    0x0000000186d747b0 void std::__1::__tree_balance_after_insert<std::__1::__tree_node_base<void*>*>(std::__1::__tree_node_base<void*>*, std::__1::__tree_node_base<void*>*) + 212
2  MediaPlayer                    0x0000000186d746c4 std::__1::__tree<std::__1::__value_type<long long, MPMediaEntity<MPCacheableConcreteMediaEntity>* __weak>, std::__1::__map_value_compare<long long, std::__1::__value_type<long long, MPMediaEntity<MPCacheableConcreteMediaEntity>* __weak>, std::__1::less<long long>, true>, std::__1::allocator<std::__1::__value_type<long long, MPMediaEntity<MPCacheableConcreteMediaEntity>* __weak> > >::__insert_node_at(std::__1::__tree_node_base<void*>*, std::__1::__tree_node_base<void*>*&, std::__1::__tree_node_base<void*>*) + 64
3  MediaPlayer                    0x0000000186d745fc std::__1::map<long long, MPMediaEntity<MPCacheableConcreteMediaEntity>* __weak, std::__1::less<long long>, std::__1::allocator<std::__1::pair<long long const, MPMediaEntity<MPCacheableConcreteMediaEntity>* __weak> > >::operator[](long long const&) + 92
4  MediaPlayer                    0x0000000186d73cc4 __99-[MPMediaEntityCache _entityWithIdentifier:mediaEntityType:collectionGroupingType:loadEntityBlock:]_block_invoke + 44
5  MediaPlayer                    0x0000000186d7451c -[MPMediaEntityCache _performWithSharedAccess:] + 60
6  MediaPlayer                    0x0000000186d739b4 -[MPMediaEntityCache _entityWithIdentifier:mediaEntityType:collectionGroupingType:loadEntityBlock:] + 272
7  MediaPlayer                    0x0000000186d73628 -[MPMediaEntityCache itemWithIdentifier:loadEntityBlock:] + 36
8  MediaPlayer                    0x0000000186cc3170 +[MPConcreteMediaItem concreteMediaItemWithPersistentID:library:] + 172
9  MediaPlayer                    0x0000000186ccbca4 __45-[MPMediaEntityResultSetArray objectAtIndex:]_block_invoke + 820
10 libdispatch.dylib              0x0000000199a41770 _dispatch_client_callout + 16
11 libdispatch.dylib              0x0000000199a4c9c4 _dispatch_barrier_sync_f_invoke + 100
12 MediaPlayer                    0x0000000186ccb92c -[MPMediaEntityResultSetArray objectAtIndex:] + 160
13 CoreFoundation                 0x00000001845a5474 -[NSArray getObjects:range:] + 124
14 CoreFoundation                 0x00000001845a533c -[NSArray countByEnumeratingWithState:objects:count:] + 168
15 justDrive                      0x0000000100ff02b4 -[XXXX entityForMediaPlaylist:] + 3094132
16 justDrive                      0x0000000100fed38c -[XXXX playlists] + 3082060
17 justDrive                      0x0000000100fab618 -[XXXX init] + 2812376
18 justDrive                      0x0000000100fab234 __33+[XXXX sharedInstance]_block_invoke + 2811380
19 libdispatch.dylib              0x0000000199a41770 _dispatch_client_callout + 16
20 libdispatch.dylib              0x0000000199a425b4 dispatch_once_f + 80
21 justDrive                      0x0000000100fab200 +[XXXX sharedInstance] + 2811328
22 justDrive                      0x000000010005d018 -[AppDelegate setMySpinState:] (AppDelegate.m:310)
23 justDrive                      0x000000010005cbc4 -[AppDelegate applicationDidEnterBackground:] (AppDelegate.m:230)
24 UIKit                          0x0000000189e50a7c __47-[UIApplication _applicationDidEnterBackground]_block_invoke + 228
25 UIKit                          0x0000000189f15190 +[UIViewController _performWithoutDeferringTransitions:] + 128
26 UIKit                          0x0000000189e50944 -[UIApplication _applicationDidEnterBackground] + 100
27 UIKit                          0x0000000189e5a758 -[UIApplication _handleNonLaunchSpecificActions:forScene:withTransitionContext:completion:] + 2708
28 UIKit                          0x0000000189e5ff10 __88-[UIApplication _handleApplicationLifecycleEventWithScene:transitionContext:completion:]_block_invoke + 188
29 UIKit                          0x0000000189e5fdec -[UIApplication _handleApplicationLifecycleEventWithScene:transitionContext:completion:] + 448
30 UIKit                          0x0000000189e4b2c4 __70-[UIApplication scene:didUpdateWithDiff:transitionContext:completion:]_block_invoke + 152
31 UIKit                          0x0000000189e4af4c -[UIApplication scene:didUpdateWithDiff:transitionContext:completion:] + 708
32 FrontBoardServices             0x000000018e39b7ec -[FBSSerialQueue _performNext] + 184
33 FrontBoardServices             0x000000018e39bb6c -[FBSSerialQueue _performNextFromRunLoopSource] + 56
34 CoreFoundation                 0x000000018460c5a4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24
35 CoreFoundation                 0x000000018460c038 __CFRunLoopDoSources0 + 540
36 CoreFoundation                 0x0000000184609d38 __CFRunLoopRun + 724
37 CoreFoundation                 0x0000000184538dc0 CFRunLoopRunSpecific + 384
38 GraphicsServices               0x000000018f68c088 GSEventRunModal + 180
39 UIKit                          0x0000000189c12f60 UIApplicationMain + 204
40 justDrive                      0x0000000100060934 main (main.m:35)
41 libdyld.dylib                  0x0000000199a728b8 start + 4

Crash Report #3:

Thread : Crashed: com.apple.mediaplayer.ResultSetEntities
0  MediaPlayer                    0x0000000186d747d4 void std::__1::__tree_left_rotate<std::__1::__tree_node_base<void*>*>(std::__1::__tree_node_base<void*>*) + 4
1  MediaPlayer                    0x0000000186d746c4 std::__1::__tree<std::__1::__value_type<long long, MPMediaEntity<MPCacheableConcreteMediaEntity>* __weak>, std::__1::__map_value_compare<long long, std::__1::__value_type<long long, MPMediaEntity<MPCacheableConcreteMediaEntity>* __weak>, std::__1::less<long long>, true>, std::__1::allocator<std::__1::__value_type<long long, MPMediaEntity<MPCacheableConcreteMediaEntity>* __weak> > >::__insert_node_at(std::__1::__tree_node_base<void*>*, std::__1::__tree_node_base<void*>*&, std::__1::__tree_node_base<void*>*) + 64
2  MediaPlayer                    0x0000000186d745fc std::__1::map<long long, MPMediaEntity<MPCacheableConcreteMediaEntity>* __weak, std::__1::less<long long>, std::__1::allocator<std::__1::pair<long long const, MPMediaEntity<MPCacheableConcreteMediaEntity>* __weak> > >::operator[](long long const&) + 92
3  MediaPlayer                    0x0000000186d73cc4 __99-[MPMediaEntityCache _entityWithIdentifier:mediaEntityType:collectionGroupingType:loadEntityBlock:]_block_invoke + 44
4  MediaPlayer                    0x0000000186d7451c -[MPMediaEntityCache _performWithSharedAccess:] + 60
5  MediaPlayer                    0x0000000186d739b4 -[MPMediaEntityCache _entityWithIdentifier:mediaEntityType:collectionGroupingType:loadEntityBlock:] + 272
6  MediaPlayer                    0x0000000186d73628 -[MPMediaEntityCache itemWithIdentifier:loadEntityBlock:] + 36
7  MediaPlayer                    0x0000000186cc3170 +[MPConcreteMediaItem concreteMediaItemWithPersistentID:library:] + 172
8  MediaPlayer                    0x0000000186ccbca4 __45-[MPMediaEntityResultSetArray objectAtIndex:]_block_invoke + 820
9  libdispatch.dylib              0x0000000199a41770 _dispatch_client_callout + 16
10 libdispatch.dylib              0x0000000199a4c9c4 _dispatch_barrier_sync_f_invoke + 100
11 MediaPlayer                    0x0000000186ccb92c -[MPMediaEntityResultSetArray objectAtIndex:] + 160
12 CoreFoundation                 0x00000001845a5474 -[NSArray getObjects:range:] + 124
13 CoreFoundation                 0x00000001845a533c -[NSArray countByEnumeratingWithState:objects:count:] + 168
14 justDrive                      0x000000010105ba54 -[XXXX getAllPlaylistsAndItems] + 3091988
15 justDrive                      0x000000010105a040 __51-[XXXX processChangesWithSyncURL:]_block_invoke + 3085312
16 libdispatch.dylib              0x0000000199a417b0 _dispatch_call_block_and_release + 24
17 libdispatch.dylib              0x0000000199a41770 _dispatch_client_callout + 16
18 libdispatch.dylib              0x0000000199a4fbb0 _dispatch_root_queue_drain + 2140
19 libdispatch.dylib              0x0000000199a4f34c _dispatch_worker_thread3 + 112
20 libsystem_pthread.dylib        0x0000000199c55478 _pthread_wqthread + 1092
21 libsystem_pthread.dylib        0x0000000199c55028 start_wqthread + 4



Version:
iOS 9

Notes:


Configuration:
Crashes have occurred on multiple devices, all reports indicate iPhone 6

Attachments:

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!