VLCMediaMetaData crashes
When using the new metadata API to request information for albums, URLs and track numbers, we see frequent crashes in our beta deployments. This is probably caused by media that cannot provide the information we are asking for.
0 libsystem_kernel.dylib 0x00000001b75f6b38 __pthread_kill + 8 (:-1)
1 libsystem_pthread.dylib 0x00000001f0de73bc pthread_kill + 268 (pthread.c:1668)
2 libsystem_c.dylib 0x000000018b7ca524 abort + 168 (abort.c:118)
3 libsystem_malloc.dylib 0x000000019298aa04 malloc_vreport + 552 (malloc_printf.c:183)
4 libsystem_malloc.dylib 0x000000019298abdc malloc_report + 64 (malloc_printf.c:192)
5 libsystem_malloc.dylib 0x000000019296fe38 free + 300 (malloc.c:1963)
6 CoreFoundation 0x000000018068785c mdict_rehashd + 284 (NSDictionaryM_Common.h:102)
7 CoreFoundation 0x0000000180648fc0 -[__NSDictionaryM setObject:forKeyedSubscript:] + 620 (NSDictionaryM_Common.h:194)
8 MobileVLCKit 0x0000000105c519a4 -[VLCMediaMetaData fetchMetaDataForKey:] + 196 (VLCMediaMetaData.m:0)
9 MobileVLCKit 0x0000000105c51a60 -[VLCMediaMetaData stringForKey:] + 120 (VLCMediaMetaData.m:401)
10 VLC for iOS 0x0000000104860f6c -[VLCMetaData fillFromMetaDict:] + 216 (VLCMetadata.m:133)
11 VLC for iOS 0x0000000104860540 -[VLCMetaData updateMetadataFromMedia:mediaPlayer:] + 108 (VLCMetadata.m:53)
12 VLC for iOS 0x000000010485a584 __44-[VLCPlaybackService setNeedsMetadataUpdate]_block_invoke + 216 (VLCPlaybackService.m:1302)
13 libdispatch.dylib 0x000000018031be6c _dispatch_call_block_and_release + 32 (init.c:1517)
14 libdispatch.dylib 0x000000018031da30 _dispatch_client_callout + 20 (object.m:560)
15 libdispatch.dylib 0x000000018032f280 _dispatch_root_queue_drain + 680 (inline_internal.h:2622)
16 libdispatch.dylib 0x000000018032f96c _dispatch_worker_thread2 + 164 (queue.c:6935)
17 libsystem_pthread.dylib 0x00000001f0de1080 _pthread_wqthread + 228 (pthread.c:2612)
18 libsystem_pthread.dylib 0x00000001f0de0e5c start_wqthread + 8 (:-1)
0 libobjc.A.dylib 0x00000001997a1f28 objc_msgSend + 8
1 CoreFoundation 0x0000000180a00218 -[__NSDictionaryM objectForKeyedSubscript:] + 184 (NSDictionaryM_Common.h:36)
2 MobileVLCKit 0x0000000104155c34 -[VLCMediaMetaData unsignedForKey:] + 84 (VLCMediaMetaData.m:427)
3 VLC for iOS 0x0000000100b40fac -[VLCMetaData fillFromMetaDict:] + 280 (VLCMetadata.m:134)
4 VLC for iOS 0x0000000100b40540 -[VLCMetaData updateMetadataFromMedia:mediaPlayer:] + 108 (VLCMetadata.m:53)
5 VLC for iOS 0x0000000100b3a584 __44-[VLCPlaybackService setNeedsMetadataUpdate]_block_invoke + 216 (VLCPlaybackService.m:1302)
6 libdispatch.dylib 0x00000001806e7e6c _dispatch_call_block_and_release + 32 (init.c:1517)
7 libdispatch.dylib 0x00000001806e9a30 _dispatch_client_callout + 20 (object.m:560)
8 libdispatch.dylib 0x00000001806fb280 _dispatch_root_queue_drain + 680 (inline_internal.h:2622)
9 libdispatch.dylib 0x00000001806fb96c _dispatch_worker_thread2 + 164 (queue.c:6935)
10 libsystem_pthread.dylib 0x00000001f11ad080 _pthread_wqthread + 228 (pthread.c:2612)
11 libsystem_pthread.dylib 0x00000001f11ace5c start_wqthread + 8 (:-1)
0 libobjc.A.dylib 0x0000000193166008 objc_msgSend + 8
1 CoreFoundation 0x0000000194d20030 -[__NSDictionaryM objectForKeyedSubscript:] + 160 (NSDictionaryM_Common.h:32)
2 MobileVLCKit 0x0000000101ed1b6c -[VLCMediaMetaData urlForKey:] + 136 (VLCMediaMetaData.m:416)
3 VLC for iOS 0x0000000100c41010 -[VLCMetaData fillFromMetaDict:] + 380 (VLCMetadata.m:137)
4 VLC for iOS 0x0000000100c40540 -[VLCMetaData updateMetadataFromMedia:mediaPlayer:] + 108 (VLCMetadata.m:53)
5 VLC for iOS 0x0000000100c3a584 __44-[VLCPlaybackService setNeedsMetadataUpdate]_block_invoke + 216 (VLCPlaybackService.m:1302)
6 libdispatch.dylib 0x00000001a0a4d850 _dispatch_call_block_and_release + 24 (init.c:1518)
7 libdispatch.dylib 0x00000001a0a4e7c8 _dispatch_client_callout + 16 (object.m:560)
8 libdispatch.dylib 0x00000001a0a32e68 _dispatch_root_queue_drain + 616 (inline_internal.h:2632)
9 libdispatch.dylib 0x00000001a0a33514 _dispatch_worker_thread2 + 160 (queue.c:7052)
10 libsystem_pthread.dylib 0x00000001e14cab14 _pthread_wqthread + 224 (pthread.c:2631)
11 libsystem_pthread.dylib 0x00000001e14ca67c start_wqthread + 8
0 libobjc.A.dylib 0x00000001993d5f40 objc_msgSend + 32 (:-1)
1 CoreFoundation 0x0000000180634218 -[__NSDictionaryM objectForKeyedSubscript:] + 184 (NSDictionaryM_Common.h:36)
2 MobileVLCKit 0x00000001076ada70 -[VLCMediaMetaData stringForKey:] + 136 (VLCMediaMetaData.m:402)
3 VLC for iOS 0x0000000104094efc -[VLCMetaData fillFromMetaDict:] + 104 (VLCMetadata.m:131)
4 VLC for iOS 0x0000000104094540 -[VLCMetaData updateMetadataFromMedia:mediaPlayer:] + 108 (VLCMetadata.m:53)
5 VLC for iOS 0x000000010408e584 __44-[VLCPlaybackService setNeedsMetadataUpdate]_block_invoke + 216 (VLCPlaybackService.m:1302)
6 libdispatch.dylib 0x000000018031be6c _dispatch_call_block_and_release + 32 (init.c:1517)
7 libdispatch.dylib 0x000000018031da30 _dispatch_client_callout + 20 (object.m:560)
8 libdispatch.dylib 0x000000018032f280 _dispatch_root_queue_drain + 680 (inline_internal.h:2622)
9 libdispatch.dylib 0x000000018032f96c _dispatch_worker_thread2 + 164 (queue.c:6935)
10 libsystem_pthread.dylib 0x00000001f0de1080 _pthread_wqthread + 228 (pthread.c:2612)
11 libsystem_pthread.dylib 0x00000001f0de0e5c start_wqthread + 8 (:-1)
For the reference, VLC-iOS calls the metadata API exclusively on a background queue.