Skip to content

Deadlock on master, reproduced with 4.0.0a6 and recently 4.0.0a8

Given I launch the VLC iOS app and I have one video media in library, the app's user interface gets stuck and one can't navigate or play anything. When this happen and pause the program from lldb, I get this backtrace :

Click to expand
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
  * frame #0: 0x00000001df1eb08c libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001f2fdf6e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x000000010b460d9c VLCKit`vlc_atomic_wait(addr=0x000000010870a378, value=2) at wait.c:86:9
    frame #3: 0x000000010b44b464 VLCKit`vlc_mutex_lock(mtx=0x000000010870a378) at threads.c:109:9
    frame #4: 0x000000010b3db5cc VLCKit`vlc_player_Lock(player=0x000000010870a360) at player.c:950:5
    frame #5: 0x000000010b356944 VLCKit`libvlc_media_player_get_rate(p_mi=0x0000000303a9c3c0) at media_player.c:1726:5
    frame #6: 0x000000010ada4568 VLCKit`-[VLCMediaPlayer rate](self=0x0000000303398d00, _cmd="rate") at VLCMediaPlayer.m:780:12
    frame #7: 0x0000000104e7560c VLC for iOS`-[VLCMetaData updatePlaybackRate:](self=0x00000003024a7b10, _cmd="updatePlaybackRate:", mediaPlayer=0x0000000303398d00) at VLCMetadata.m:113:39
    frame #8: 0x0000000104e7539c VLC for iOS`-[VLCMetaData updateMetadataFromMedia:mediaPlayer:](self=0x00000003024a7b10, _cmd="updateMetadataFromMedia:mediaPlayer:", media=0x0000000302112800, mediaPlayer=0x0000000303398d00) at VLCMetadata.m:77:5
    frame #9: 0x0000000104e6becc VLC for iOS`-[VLCPlaybackService setNeedsMetadataUpdate](self=0x0000000107e1a920, _cmd="setNeedsMetadataUpdate") at VLCPlaybackService.m:1544:5
    frame #10: 0x0000000104e68fbc VLC for iOS`__46-[VLCPlaybackService mediaPlayerStateChanged:]_block_invoke.155(.block_descriptor=0x00000003001ff540) at VLCPlaybackService.m:932:9
    frame #11: 0x0000000107d00b98 libdispatch.dylib`_dispatch_call_block_and_release + 32
    frame #12: 0x0000000107d027bc libdispatch.dylib`_dispatch_client_callout + 20
    frame #13: 0x0000000107d12d58 libdispatch.dylib`_dispatch_main_queue_drain + 1084
    frame #14: 0x0000000107d1290c libdispatch.dylib`_dispatch_main_queue_callback_4CF + 44
    frame #15: 0x0000000196563710 CoreFoundation`__CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 16
    frame #16: 0x0000000196560914 CoreFoundation`__CFRunLoopRun + 1996
    frame #17: 0x000000019655fcd8 CoreFoundation`CFRunLoopRunSpecific + 608
    frame #18: 0x00000001dafad1a8 GraphicsServices`GSEventRunModal + 164
    frame #19: 0x0000000198b99ae8 UIKitCore`-[UIApplication _run] + 888
    frame #20: 0x0000000198c4dd98 UIKitCore`UIApplicationMain + 340
    frame #21: 0x0000000104e3ff44 VLC for iOS`main(argc=1, argv=0x000000016afd3518) at main.m:20:16
    frame #22: 0x00000001b9d37154 dyld`start + 2356
  thread #2
    frame #0: 0x00000001f2fdd0c4 libsystem_pthread.dylib`start_wqthread
  thread #5
    frame #0: 0x00000001f2fdd0c4 libsystem_pthread.dylib`start_wqthread
  thread #6, name = 'com.apple.uikit.eventfetch-thread'
    frame #0: 0x00000001df1e56c8 libsystem_kernel.dylib`mach_msg2_trap + 8
    frame #1: 0x00000001df1e8ec8 libsystem_kernel.dylib`mach_msg2_internal + 80
    frame #2: 0x00000001df1e8de0 libsystem_kernel.dylib`mach_msg_overwrite + 436
    frame #3: 0x00000001df1e8c20 libsystem_kernel.dylib`mach_msg + 24
    frame #4: 0x0000000196560f5c CoreFoundation`__CFRunLoopServiceMachPort + 160
    frame #5: 0x0000000196560600 CoreFoundation`__CFRunLoopRun + 1208
    frame #6: 0x000000019655fcd8 CoreFoundation`CFRunLoopRunSpecific + 608
    frame #7: 0x0000000195480b5c Foundation`-[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 212
    frame #8: 0x00000001954809ac Foundation`-[NSRunLoop(NSRunLoop) runUntilDate:] + 64
    frame #9: 0x0000000198bad81c UIKitCore`-[UIEventFetcher threadMain] + 420
    frame #10: 0x0000000195497428 Foundation`__NSThread__start__ + 732
    frame #11: 0x00000001f2fe206c libsystem_pthread.dylib`_pthread_start + 136
  thread #7, queue = 'com.apple.libtrace.state.block-list'
    frame #0: 0x00000001df1ebbcc libsystem_kernel.dylib`__ulock_wait + 8
    frame #1: 0x0000000107d03338 libdispatch.dylib`_dlock_wait + 56
    frame #2: 0x0000000107d030ec libdispatch.dylib`_dispatch_thread_event_wait_slow + 56
    frame #3: 0x0000000107d141f8 libdispatch.dylib`__DISPATCH_WAIT_FOR_QUEUE__ + 384
    frame #4: 0x0000000107d13b30 libdispatch.dylib`_dispatch_sync_f_slow + 184
    frame #5: 0x00000001b06c4c8c libsystem_trace.dylib`___os_state_request_for_self_block_invoke + 372
    frame #6: 0x0000000107d00b98 libdispatch.dylib`_dispatch_call_block_and_release + 32
    frame #7: 0x0000000107d027bc libdispatch.dylib`_dispatch_client_callout + 20
    frame #8: 0x0000000107d0a66c libdispatch.dylib`_dispatch_lane_serial_drain + 832
    frame #9: 0x0000000107d0b43c libdispatch.dylib`_dispatch_lane_invoke + 460
    frame #10: 0x0000000107d18404 libdispatch.dylib`_dispatch_root_queue_drain_deferred_wlh + 328
    frame #11: 0x0000000107d17a38 libdispatch.dylib`_dispatch_workloop_worker_thread + 444
    frame #12: 0x00000001f2fe0934 libsystem_pthread.dylib`_pthread_wqthread + 288
  thread #9
    frame #0: 0x00000001df1e5450 libsystem_kernel.dylib`__workq_kernreturn + 8
  thread #11
    frame #0: 0x00000001df1eb08c libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001f2fdf6e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x00000001a694d504 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock&) + 28
    frame #3: 0x0000000108974b2c VLCMediaLibraryKit`medialibrary::ModificationNotifier::run() [inlined] void std::__1::condition_variable::wait(this=0x0000000109874e20, __lk=0x000000016b546948, __pred=(unnamed class) @ x25) at condition_variable.h:148:5 [opt]
    frame #4: 0x0000000108974b20 VLCMediaLibraryKit`medialibrary::ModificationNotifier::run(this=) at ModificationsNotifier.cpp:268:28 [opt]
    frame #5: 0x0000000108979d50 VLCMediaLibraryKit`void* std::__1::__thread_proxy[abi:ue170006]>, void (medialibrary::ModificationNotifier::*)(), medialibrary::ModificationNotifier*>>(void*) [inlined] decltype(*std::declval().*std::declval()()) std::__1::__invoke[abi:ue170006](__f=0x0000000300fb0ea8, __a0=0x0000000300fb0eb8) at invoke.h:308:25 [opt]
    frame #6: 0x0000000108979d34 VLCMediaLibraryKit`void* std::__1::__thread_proxy[abi:ue170006]>, void (medialibrary::ModificationNotifier::*)(), medialibrary::ModificationNotifier*>>(void*) [inlined] void std::__1::__thread_execute[abi:ue170006]>, void (medialibrary::ModificationNotifier::*)(), medialibrary::ModificationNotifier*, 2ul>(__t=size=3, (null)=) at thread.h:227:5 [opt]
    frame #7: 0x0000000108979d34 VLCMediaLibraryKit`void* std::__1::__thread_proxy[abi:ue170006]>, void (medialibrary::ModificationNotifier::*)(), medialibrary::ModificationNotifier*>>(__vp=0x0000000300fb0ea0) at thread.h:238:5 [opt]
    frame #8: 0x00000001f2fe206c libsystem_pthread.dylib`_pthread_start + 136
  thread #12
    frame #0: 0x00000001df1eb08c libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001f2fdf6e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x00000001a694d504 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock&) + 28
    frame #3: 0x000000010892a990 VLCMediaLibraryKit`medialibrary::DiscovererWorker::run() [inlined] void std::__1::condition_variable::wait(this=0x0000000109019d38, __lk=0x000000016b5d2f28, __pred=(unnamed class) @ x19) at condition_variable.h:148:5 [opt]
    frame #4: 0x000000010892a974 VLCMediaLibraryKit`medialibrary::DiscovererWorker::run(this=0x0000000109019cc8) at DiscovererWorker.cpp:445:28 [opt]
    frame #5: 0x000000010892c650 VLCMediaLibraryKit`void* std::__1::__thread_proxy[abi:ue170006]>, void (medialibrary::DiscovererWorker::*)(), medialibrary::DiscovererWorker*>>(void*) [inlined] decltype(*std::declval().*std::declval()()) std::__1::__invoke[abi:ue170006](__f=0x0000000300fc0c68, __a0=0x0000000300fc0c78) at invoke.h:308:25 [opt]
    frame #6: 0x000000010892c634 VLCMediaLibraryKit`void* std::__1::__thread_proxy[abi:ue170006]>, void (medialibrary::DiscovererWorker::*)(), medialibrary::DiscovererWorker*>>(void*) [inlined] void std::__1::__thread_execute[abi:ue170006]>, void (medialibrary::DiscovererWorker::*)(), medialibrary::DiscovererWorker*, 2ul>(__t=size=3, (null)=) at thread.h:227:5 [opt]
    frame #7: 0x000000010892c634 VLCMediaLibraryKit`void* std::__1::__thread_proxy[abi:ue170006]>, void (medialibrary::DiscovererWorker::*)(), medialibrary::DiscovererWorker*>>(__vp=0x0000000300fc0c60) at thread.h:238:5 [opt]
    frame #8: 0x00000001f2fe206c libsystem_pthread.dylib`_pthread_start + 136
  thread #13
    frame #0: 0x00000001df1eb08c libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001f2fdf6e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x000000010b460d9c VLCKit`vlc_atomic_wait(addr=0x000000016b6def50, value=0) at wait.c:86:9
    frame #3: 0x000000010b44bb58 VLCKit`vlc_cond_wait(cond=0x00000003021bc1d8, mutex=0x00000003021bc180) at threads.c:288:5
    frame #4: 0x000000010b43b8a4 VLCKit`QueueTake(executor=0x00000003021bc180) at executor.c:98:9
    frame #5: 0x000000010b43b6d0 VLCKit`ThreadRun(userdata=0x000000030010f270) at executor.c:128:24
    frame #6: 0x00000001f2fe206c libsystem_pthread.dylib`_pthread_start + 136
  thread #14
    frame #0: 0x00000001df1eb08c libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001f2fdf6e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x000000010b460d9c VLCKit`vlc_atomic_wait(addr=0x000000016b7eaf50, value=0) at wait.c:86:9
    frame #3: 0x000000010b44bb58 VLCKit`vlc_cond_wait(cond=0x00000003021b00d8, mutex=0x00000003021b0080) at threads.c:288:5
    frame #4: 0x000000010b43b8a4 VLCKit`QueueTake(executor=0x00000003021b0080) at executor.c:98:9
    frame #5: 0x000000010b43b6d0 VLCKit`ThreadRun(userdata=0x000000030010a0a0) at executor.c:128:24
    frame #6: 0x00000001f2fe206c libsystem_pthread.dylib`_pthread_start + 136
  thread #15
    frame #0: 0x00000001df1eb08c libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001f2fdf6e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x000000010b460d9c VLCKit`vlc_atomic_wait(addr=0x000000016b8f6f50, value=0) at wait.c:86:9
    frame #3: 0x000000010b44bb58 VLCKit`vlc_cond_wait(cond=0x00000003021b0158, mutex=0x00000003021b0100) at threads.c:288:5
    frame #4: 0x000000010b43b8a4 VLCKit`QueueTake(executor=0x00000003021b0100) at executor.c:98:9
    frame #5: 0x000000010b43b6d0 VLCKit`ThreadRun(userdata=0x000000030010a010) at executor.c:128:24
    frame #6: 0x00000001f2fe206c libsystem_pthread.dylib`_pthread_start + 136
  thread #16
    frame #0: 0x00000001df1eb08c libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001f2fdf6e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x000000010b460d9c VLCKit`vlc_atomic_wait(addr=0x000000016ba02f50, value=0) at wait.c:86:9
    frame #3: 0x000000010b44bb58 VLCKit`vlc_cond_wait(cond=0x00000003021b01d8, mutex=0x00000003021b0180) at threads.c:288:5
    frame #4: 0x000000010b43b8a4 VLCKit`QueueTake(executor=0x00000003021b0180) at executor.c:98:9
    frame #5: 0x000000010b43b6d0 VLCKit`ThreadRun(userdata=0x0000000300109f80) at executor.c:128:24
    frame #6: 0x00000001f2fe206c libsystem_pthread.dylib`_pthread_start + 136
  thread #18
    frame #0: 0x00000001df1eb08c libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001f2fdf6e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x000000010b460d9c VLCKit`vlc_atomic_wait(addr=0x000000016bb0ef10, value=0) at wait.c:86:9
    frame #3: 0x000000010b44bb58 VLCKit`vlc_cond_wait(cond=0x0000000107e20040, mutex=0x0000000107e1ff38) at threads.c:288:5
    frame #4: 0x000000010b3df56c VLCKit`vlc_player_destructor_Thread(data=0x0000000107e1ff20) at player.c:199:13
    frame #5: 0x00000001f2fe206c libsystem_pthread.dylib`_pthread_start + 136
  thread #19
    frame #0: 0x00000001df1eb08c libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001f2fdf6e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x000000010b460d9c VLCKit`vlc_atomic_wait(addr=0x000000016bc1af10, value=0) at wait.c:86:9
    frame #3: 0x000000010b44bb58 VLCKit`vlc_cond_wait(cond=0x000000010870a480, mutex=0x000000010870a378) at threads.c:288:5
    frame #4: 0x000000010b3df56c VLCKit`vlc_player_destructor_Thread(data=0x000000010870a360) at player.c:199:13
    frame #5: 0x00000001f2fe206c libsystem_pthread.dylib`_pthread_start + 136
  thread #20
    frame #0: 0x00000001df1eb08c libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001f2fdf6e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x000000010b460d9c VLCKit`vlc_atomic_wait(addr=0x000000016bd26f90, value=0) at wait.c:86:9
    frame #3: 0x000000010b44bb58 VLCKit`vlc_cond_wait(cond=0x0000000303e904b0, mutex=0x0000000303e904a0) at threads.c:288:5
    frame #4: 0x000000010b35b0d8 VLCKit`playlist_thread(data=0x0000000303e90460) at media_list_player.c:346:9
    frame #5: 0x00000001f2fe206c libsystem_pthread.dylib`_pthread_start + 136
  thread #21
    frame #0: 0x00000001df1eb08c libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001f2fdf6e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x000000010b460d9c VLCKit`vlc_atomic_wait(addr=0x000000010870a378, value=2) at wait.c:86:9
    frame #3: 0x000000010b44b464 VLCKit`vlc_mutex_lock(mtx=0x000000010870a378) at threads.c:109:9
    frame #4: 0x000000010b3db5cc VLCKit`vlc_player_Lock(player=0x000000010870a360) at player.c:950:5
    frame #5: 0x000000010b356944 VLCKit`libvlc_media_player_get_rate(p_mi=0x0000000303a9c3c0) at media_player.c:1726:5
    frame #6: 0x000000010ada4568 VLCKit`-[VLCMediaPlayer rate](self=0x0000000303398d00, _cmd="rate") at VLCMediaPlayer.m:780:12
    frame #7: 0x0000000104e7560c VLC for iOS`-[VLCMetaData updatePlaybackRate:](self=0x00000003024a7b10, _cmd="updatePlaybackRate:", mediaPlayer=0x0000000303398d00) at VLCMetadata.m:113:39
    frame #8: 0x0000000104e7539c VLC for iOS`-[VLCMetaData updateMetadataFromMedia:mediaPlayer:](self=0x00000003024a7b10, _cmd="updateMetadataFromMedia:mediaPlayer:", media=0x00000003021bd800, mediaPlayer=0x0000000303398d00) at VLCMetadata.m:77:5
    frame #9: 0x0000000104e6becc VLC for iOS`-[VLCPlaybackService setNeedsMetadataUpdate](self=0x0000000107e1a920, _cmd="setNeedsMetadataUpdate") at VLCPlaybackService.m:1544:5
    frame #10: 0x0000000104e6bd68 VLC for iOS`-[VLCPlaybackService mediaMetaDataDidChange:](self=0x0000000107e1a920, _cmd="mediaMetaDataDidChange:", aMedia=0x0000000302ca5810) at VLCPlaybackService.m:1537:5
    frame #11: 0x000000010ad9e598 VLCKit`-[VLCMedia metaChanged:](self=0x0000000302ca5810, _cmd="metaChanged:", metaType=libvlc_meta_Title) at VLCMedia.m:542:9
    frame #12: 0x000000010ada0c38 VLCKit`__HandleMediaMetaChanged_block_invoke(.block_descriptor=0x00000003001e2100, object=0x0000000302ca5810) at VLCMedia.m:125:13
    frame #13: 0x000000010adaec60 VLCKit`__32-[VLCEventsHandler handleEvent:]_block_invoke(.block_descriptor=0x0000000301ad0e40) at VLCEventsHandler.m:61:9
    frame #14: 0x000000010adaeb18 VLCKit`-[VLCEventsHandler handleEvent:](self=0x0000000300fbba80, _cmd="handleEvent:", handle=0x000000010ada0bdc) at VLCEventsHandler.m:75:9
    frame #15: 0x000000010ada09c0 VLCKit`HandleMediaMetaChanged(event=0x000000016be32ea0, opaque=0x0000000300fbba80) at VLCMedia.m:123:9
    frame #16: 0x000000010b34e848 VLCKit`libvlc_event_send(p_em=0x0000000302b94480, p_event=0x000000016be32ea0) at event.c:117:13
    frame #17: 0x000000010b3508ec VLCKit`send_parsed_changed(p_md=0x0000000302b94480, new_status=libvlc_media_parsed_status_done) at media.c:288:5
    frame #18: 0x000000010b351fcc VLCKit`input_item_preparse_ended(item=0x00000003034981a0, status=0, user_data=0x0000000302b94480) at media.c:330:5
    frame #19: 0x000000010b396a64 VLCKit`NotifyPreparseEnded(task=0x000000030389c630) at preparser.c:184:5
    frame #20: 0x000000010b395110 VLCKit`ParserRun(userdata=0x000000030389c630) at preparser.c:328:5
    frame #21: 0x000000010b43b710 VLCKit`ThreadRun(userdata=0x00000003001f9a40) at executor.c:134:9
    frame #22: 0x00000001f2fe206c libsystem_pthread.dylib`_pthread_start + 136
  thread #22
    frame #0: 0x00000001df1eb08c libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001f2fdf6e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x000000010b460d9c VLCKit`vlc_atomic_wait(addr=0x000000016bf3ef50, value=0) at wait.c:86:9
    frame #3: 0x000000010b44bb58 VLCKit`vlc_cond_wait(cond=0x0000000302181758, mutex=0x0000000302181700) at threads.c:288:5
    frame #4: 0x000000010b43b8a4 VLCKit`QueueTake(executor=0x0000000302181700) at executor.c:98:9
    frame #5: 0x000000010b43b6d0 VLCKit`ThreadRun(userdata=0x00000003001f9a70) at executor.c:128:24
    frame #6: 0x00000001f2fe206c libsystem_pthread.dylib`_pthread_start + 136
  thread #23
    frame #0: 0x00000001df1eb08c libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001f2fdf6e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x000000010b460d9c VLCKit`vlc_atomic_wait(addr=0x000000016c04af50, value=0) at wait.c:86:9
    frame #3: 0x000000010b44bb58 VLCKit`vlc_cond_wait(cond=0x00000003021817d8, mutex=0x0000000302181780) at threads.c:288:5
    frame #4: 0x000000010b43b8a4 VLCKit`QueueTake(executor=0x0000000302181780) at executor.c:98:9
    frame #5: 0x000000010b43b6d0 VLCKit`ThreadRun(userdata=0x00000003001f9aa0) at executor.c:128:24
    frame #6: 0x00000001f2fe206c libsystem_pthread.dylib`_pthread_start + 136
  thread #24
    frame #0: 0x00000001df1eb08c libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001f2fdf6e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x000000010b460d9c VLCKit`vlc_atomic_wait(addr=0x000000016c156f50, value=0) at wait.c:86:9
    frame #3: 0x000000010b44bb58 VLCKit`vlc_cond_wait(cond=0x0000000302181858, mutex=0x0000000302181800) at threads.c:288:5
    frame #4: 0x000000010b43b8a4 VLCKit`QueueTake(executor=0x0000000302181800) at executor.c:98:9
    frame #5: 0x000000010b43b6d0 VLCKit`ThreadRun(userdata=0x00000003001f9ad0) at executor.c:128:24
    frame #6: 0x00000001f2fe206c libsystem_pthread.dylib`_pthread_start + 136
  thread #25
    frame #0: 0x00000001df1eb08c libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001f2fdf6e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x000000010b460d9c VLCKit`vlc_atomic_wait(addr=0x0000000302b94498, value=2) at wait.c:86:9
    frame #3: 0x000000010b44b464 VLCKit`vlc_mutex_lock(mtx=0x0000000302b94498) at threads.c:109:9
    frame #4: 0x000000010b34e7cc VLCKit`libvlc_event_send(p_em=0x0000000302b94480, p_event=0x000000016c36dd40) at event.c:110:5
    frame #5: 0x000000010b3595cc VLCKit`on_media_meta_changed(player=0x000000010870a360, media=0x00000003034981a0, data=0x0000000303a9c3c0) at media_player.c:450:5
    frame #6: 0x000000010b3e1d1c VLCKit`input_thread_Events(input_thread=0x000000010a00fc00, event=0x000000016c36e0f0, user_data=0x0000000108507330) at input.c:1019:13
    frame #7: 0x000000010b3b7704 VLCKit`input_SendEvent(p_input=0x000000010a00fc00, event=0x000000016c36e0f0) at event.h:35:9
    frame #8: 0x000000010b3bea9c VLCKit`input_SendEventMetaInfo(p_input=0x000000010a00fc00) at event.h:161:5
    frame #9: 0x000000010b3be590 VLCKit`EsOutUpdateInfo(p_sys=0x00000001086064b0, es=0x000000010870edb0, p_meta=0x0000000000000000) at es_out.c:4632:5
    frame #10: 0x000000010b3c1fb0 VLCKit`EsOutAddLocked(p_sys=0x00000001086064b0, source=0x000000030219f480, fmt=0x000000010f01d020, p_master=0x0000000000000000) at es_out.c:2236:5
    frame #11: 0x000000010b3c0e84 VLCKit`EsOutAdd(out=0x0000000108606640, source=0x000000030219f480, fmt=0x000000010f01d020) at es_out.c:2253:23
    frame #12: 0x000000010b3c6fa8 VLCKit`CmdExecuteAdd(p_sys=0x00000003024871e0, p_cmd=0x000000016c36e617) at es_out_timeshift.c:1529:25
    frame #13: 0x000000010b3c7b98 VLCKit`Add(p_out=0x0000000302487238, in=0x0000000000000000, p_fmt=0x000000010f01d020) at es_out_timeshift.c:408:9
    frame #14: 0x000000010b114814 VLCKit`es_out_Add + 52
    frame #15: 0x000000010b11431c VLCKit`MP4_CreateES + 48
    frame #16: 0x000000010b11e2a4 VLCKit`TrackCreateES + 1908
    frame #17: 0x000000010b10f1a0 VLCKit`MP4_TrackSetup + 4096
    frame #18: 0x000000010b10c538 VLCKit`Open + 5008
    frame #19: 0x000000010b3aeeac VLCKit`demux_Probe(func=0x000000010b10b1a8, forced=true, ap="\x90v`\b\U00000001") at demux.c:112:15
    frame #20: 0x000000010b383734 VLCKit`vlc_module_load(log=0x0000000300da8188, capability="demux", name="ext-mp4", strict=false, probe=(VLCKit`demux_Probe at demux.c:98)) at modules.c:230:15
    frame #21: 0x000000010b3aea34 VLCKit`demux_NewAdvanced(p_obj=0x000000010a00fc00, p_input=0x000000010a00fc00, module="ext-mp4", url="file:///var/mobile/Containers/Data/Application/8B3622AB-383E-4C4A-AE1C-663B90EDE60A/Documents/Kazoo%20Kid%20-%20Trap%20Remix-g-sgw9bPV4A.mp4", s=0x0000000303680380, out=0x0000000302487238, b_preparsing=false) at demux.c:196:20
    frame #22: 0x000000010b3d2d60 VLCKit`InputDemuxNew(p_input=0x000000010a00fc00, p_es_out=0x0000000302487238, p_source=0x000000030219f480, url="file:///var/mobile/Containers/Data/Application/8B3622AB-383E-4C4A-AE1C-663B90EDE60A/Documents/Kazoo%20Kid%20-%20Trap%20Remix-g-sgw9bPV4A.mp4", psz_demux="any", psz_anchor="") at input.c:2572:22
    frame #23: 0x000000010b3cdc90 VLCKit`InputSourceInit(in=0x000000030219f480, p_input=0x000000010a00fc00, psz_mrl="file:///var/mobile/Containers/Data/Application/8B3622AB-383E-4C4A-AE1C-663B90EDE60A/Documents/Kazoo%20Kid%20-%20Trap%20Remix-g-sgw9bPV4A.mp4", psz_forced_demux=0x0000000000000000, b_in_can_fail=false) at input.c:2700:27
    frame #24: 0x000000010b3cada0 VLCKit`Init(p_input=0x000000010a00fc00) at input.c:1322:15
    frame #25: 0x000000010b3c8ee0 VLCKit`Run(data=0x000000010a00fc00) at input.c:409:10
    frame #26: 0x00000001f2fe206c libsystem_pthread.dylib`_pthread_start + 136

It seems two parallel media metadata parsing event can happen concurrently and cause unexpected race conditions blocking the main thread

Edited by Maxime Chapelet
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information