App Termination when playing lists and cycling from one item to the other
This does not happen all the time, but sometimes only. Still the N°1 crash on the iOS app.
Full trace:
(lldb) bt all
thread #1, queue = 'com.apple.main-thread'
frame #0: 0x00000001910f041c libobjc.A.dylib`lookUpImpOrForward + 72
frame #1: 0x00000001910eacc4 libobjc.A.dylib`_objc_msgSend_uncached + 68
frame #2: 0x00000001050d8f0c VLC for iOS`AudioPlayerViewController.mediaPlayerStateChanged(currentState=ended, isPlaying=false, currentMediaHasTrackToChooseFrom=false, currentMediaHasChapters=false, playbackService=0x00000002831cf930, self=0x00000001091bc000) at AudioPlayerViewController.swift:382:33
frame #3: 0x00000001050d9250 VLC for iOS`@objc AudioPlayerViewController.mediaPlayerStateChanged(_:isPlaying:currentMediaHasTrackToChooseFrom:currentMediaHasChapters:for:) at <compiler-generated>:0
frame #4: 0x0000000104e71b24 VLC for iOS`-[VLCPlaybackService mediaPlayerStateChanged:](self=0x00000002831cf930, _cmd="mediaPlayerStateChanged:", aNotification=@"VLCMediaPlayerStateChanged") at VLCPlaybackService.m:816:9
frame #5: 0x0000000109f05a08 MobileVLCKit`__HandleMediaInstanceStateChanged_block_invoke(.block_descriptor=<unavailable>, object=<unavailable>) at VLCMediaPlayer.m:181:17 [opt]
frame #6: 0x0000000109f0aa98 MobileVLCKit`__32-[VLCEventsHandler handleEvent:]_block_invoke(.block_descriptor=0x000000028144d280) at VLCEventsHandler.m:61:9 [opt]
frame #7: 0x0000000107834520 libdispatch.dylib`_dispatch_call_block_and_release + 32
frame #8: 0x0000000107836038 libdispatch.dylib`_dispatch_client_callout + 20
frame #9: 0x0000000107846798 libdispatch.dylib`_dispatch_main_queue_drain + 1196
frame #10: 0x00000001078462dc libdispatch.dylib`_dispatch_main_queue_callback_4CF + 44
frame #11: 0x00000001980f3c28 CoreFoundation`__CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 16
frame #12: 0x00000001980d5560 CoreFoundation`__CFRunLoopRun + 1992
frame #13: 0x00000001980da3ec CoreFoundation`CFRunLoopRunSpecific + 612
frame #14: 0x00000001d35f035c GraphicsServices`GSEventRunModal + 164
frame #15: 0x000000019a466f58 UIKitCore`-[UIApplication _run] + 888
frame #16: 0x000000019a466bbc UIKitCore`UIApplicationMain + 340
frame #17: 0x0000000104e50dc0 VLC for iOS`main(argc=1, argv=0x000000016afb7650) at main.m:20:16
frame #18: 0x00000001b760cdec dyld`start + 2220
thread #3, name = 'gputools.smt_poll.0x280ee85e0'
frame #0: 0x00000001d701b164 libsystem_kernel.dylib`__semwait_signal + 8
frame #1: 0x000000019f574888 libsystem_c.dylib`nanosleep + 220
frame #2: 0x000000019f575554 libsystem_c.dylib`usleep + 68
frame #3: 0x0000000107a17b6c GPUToolsCapture`smt_poll_thread_entry(void*) + 108
frame #4: 0x00000001f7e966b8 libsystem_pthread.dylib`_pthread_start + 148
thread #8, name = 'com.apple.uikit.eventfetch-thread'
frame #0: 0x00000001d701aca4 libsystem_kernel.dylib`mach_msg2_trap + 8
frame #1: 0x00000001d702db74 libsystem_kernel.dylib`mach_msg2_internal + 80
frame #2: 0x00000001d702de4c libsystem_kernel.dylib`mach_msg_overwrite + 540
frame #3: 0x00000001d701b1e8 libsystem_kernel.dylib`mach_msg + 24
frame #4: 0x00000001980d4024 CoreFoundation`__CFRunLoopServiceMachPort + 160
frame #5: 0x00000001980d5250 CoreFoundation`__CFRunLoopRun + 1208
frame #6: 0x00000001980da3ec CoreFoundation`CFRunLoopRunSpecific + 612
frame #7: 0x0000000192356fb4 Foundation`-[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 212
frame #8: 0x0000000192356e9c Foundation`-[NSRunLoop(NSRunLoop) runUntilDate:] + 64
frame #9: 0x000000019a599cc8 UIKitCore`-[UIEventFetcher threadMain] + 416
frame #10: 0x0000000192370524 Foundation`__NSThread__start__ + 716
frame #11: 0x00000001f7e966b8 libsystem_pthread.dylib`_pthread_start + 148
thread #10
frame #0: 0x00000001d701b578 libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001f7e9d078 libsystem_pthread.dylib`_pthread_cond_wait + 1232
frame #2: 0x00000001a66b4ef8 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 28
frame #3: 0x00000001082e7dd0 VLCMediaLibraryKit`medialibrary::ModificationNotifier::run() [inlined] void std::__1::condition_variable::wait<medialibrary::ModificationNotifier::run()::$_1>(this=0x000000010902d590, __lk=0x000000016b49e9e8, __pred=(unnamed class) @ x23)::$_1) at __mutex_base:404:9 [opt]
frame #4: 0x00000001082e7db4 VLCMediaLibraryKit`medialibrary::ModificationNotifier::run(this=<unavailable>) at ModificationsNotifier.cpp:252:28 [opt]
frame #5: 0x00000001082ecfec VLCMediaLibraryKit`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (medialibrary::ModificationNotifier::*)(), medialibrary::ModificationNotifier*> >(void*) [inlined] decltype(__f=<unavailable>, __a0=0x0000000280e82538).*fp()) std::__1::__invoke<void (medialibrary::ModificationNotifier::*)(), medialibrary::ModificationNotifier*, void>(void (medialibrary::ModificationNotifier::*&&)(), medialibrary::ModificationNotifier*&&) at type_traits:3859:1 [opt]
frame #6: 0x00000001082ecfd4 VLCMediaLibraryKit`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (medialibrary::ModificationNotifier::*)(), medialibrary::ModificationNotifier*> >(void*) [inlined] void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (medialibrary::ModificationNotifier::*)(), medialibrary::ModificationNotifier*, 2ul>(__t=size=3, (null)=<unavailable>)(), medialibrary::ModificationNotifier*>&, std::__1::__tuple_indices<2ul>) at thread:287:5 [opt]
frame #7: 0x00000001082ecfd0 VLCMediaLibraryKit`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (medialibrary::ModificationNotifier::*)(), medialibrary::ModificationNotifier*> >(__vp=0x0000000280e82520) at thread:298:5 [opt]
frame #8: 0x00000001f7e966b8 libsystem_pthread.dylib`_pthread_start + 148
thread #11
frame #0: 0x00000001d701b578 libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001f7e9d078 libsystem_pthread.dylib`_pthread_cond_wait + 1232
frame #2: 0x00000001a66b4ef8 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 28
frame #3: 0x00000001082a3744 VLCMediaLibraryKit`medialibrary::DiscovererWorker::run() [inlined] void std::__1::condition_variable::wait<medialibrary::DiscovererWorker::run()::$_2>(this=0x0000000107912f50, __lk=0x000000016b52af38, __pred=(unnamed class) @ x19)::$_2) at __mutex_base:404:9 [opt]
frame #4: 0x00000001082a3728 VLCMediaLibraryKit`medialibrary::DiscovererWorker::run(this=0x0000000107912ee0) at DiscovererWorker.cpp:445:28 [opt]
frame #5: 0x00000001082a5504 VLCMediaLibraryKit`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (medialibrary::DiscovererWorker::*)(), medialibrary::DiscovererWorker*> >(void*) [inlined] decltype(__f=<unavailable>, __a0=0x0000000280e99318).*fp()) std::__1::__invoke<void (medialibrary::DiscovererWorker::*)(), medialibrary::DiscovererWorker*, void>(void (medialibrary::DiscovererWorker::*&&)(), medialibrary::DiscovererWorker*&&) at type_traits:3859:1 [opt]
frame #6: 0x00000001082a54ec VLCMediaLibraryKit`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (medialibrary::DiscovererWorker::*)(), medialibrary::DiscovererWorker*> >(void*) [inlined] void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (medialibrary::DiscovererWorker::*)(), medialibrary::DiscovererWorker*, 2ul>(__t=size=3, (null)=<unavailable>)(), medialibrary::DiscovererWorker*>&, std::__1::__tuple_indices<2ul>) at thread:287:5 [opt]
frame #7: 0x00000001082a54e8 VLCMediaLibraryKit`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (medialibrary::DiscovererWorker::*)(), medialibrary::DiscovererWorker*> >(__vp=0x0000000280e99300) at thread:298:5 [opt]
frame #8: 0x00000001f7e966b8 libsystem_pthread.dylib`_pthread_start + 148
thread #14
frame #0: 0x00000001d701b578 libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001f7e9d078 libsystem_pthread.dylib`_pthread_cond_wait + 1232
frame #2: 0x0000000109f1378c MobileVLCKit`worker_thread(data=0x0000000107e43c50) at media_player.c:1212:9 [opt]
frame #3: 0x00000001f7e966b8 libsystem_pthread.dylib`_pthread_start + 148
thread #16, name = 'com.apple.CFSocket.private'
frame #0: 0x00000001d701b808 libsystem_kernel.dylib`__select + 8
frame #1: 0x000000019812399c CoreFoundation`__CFSocketManager + 636
frame #2: 0x00000001f7e966b8 libsystem_pthread.dylib`_pthread_start + 148
thread #45
frame #0: 0x000000010a77c324 MobileVLCKit`av_opt_free(obj=0x0000000108998400) at opt.c:1615:20 [opt]
frame #1: 0x000000010b4b4360 MobileVLCKit`avcodec_close(avctx=0x0000000108998400) at avcodec.c:631:5 [opt]
frame #2: 0x000000010ae01114 MobileVLCKit`avcodec_free_context + 28
frame #3: 0x000000010b41103c MobileVLCKit`EndAudioDec(obj=<unavailable>) at audio.c:205:5 [opt]
frame #4: 0x0000000109f2e374 MobileVLCKit`generic_stop(func=<unavailable>, ap=<unavailable>) at modules.c:365:5 [opt]
frame #5: 0x0000000109f2e210 MobileVLCKit`vlc_module_unload(obj=0x00000001079eae00, module=0x00000002825d2ed0, deinit=<unavailable>) at modules.c:344:9 [opt]
frame #6: 0x0000000109f2e32c MobileVLCKit`module_unneed(obj=0x00000001079eae00, module=0x00000002825d2ed0) at modules.c:379:5 [opt]
frame #7: 0x0000000109f3e350 MobileVLCKit`DeleteDecoder [inlined] UnloadDecoder(p_dec=0x00000001079eae00) at decoder.c:201:9 [opt]
frame #8: 0x0000000109f3e340 MobileVLCKit`DeleteDecoder(p_dec=0x00000001079eae00) at decoder.c:1823:5 [opt]
frame #9: 0x0000000109f3e108 MobileVLCKit`input_DecoderDelete(p_dec=<unavailable>) at decoder.c:2025:5 [opt] [artificial]
frame #10: 0x0000000109f47b14 MobileVLCKit`EsUnselect [inlined] EsDestroyDecoder(out=<unavailable>, p_es=0x0000000111c0c820) at es_out.c:1703:5 [opt]
frame #11: 0x0000000109f47b08 MobileVLCKit`EsUnselect(out=0x0000000280188570, es=0x0000000111c0c820, b_update=true) at es_out.c:1834:9 [opt]
frame #12: 0x0000000109f43d58 MobileVLCKit`EsOutControl at es_out.c:2341:17 [opt]
frame #13: 0x0000000109f431ec MobileVLCKit`EsOutControl(out=0x0000000280188570, i_query=<unavailable>, args=<unavailable>) at es_out.c:2940:13 [opt]
frame #14: 0x0000000109f4a3f8 MobileVLCKit`es_out_Control [inlined] es_out_vaControl(out=<unavailable>, i_query=<unavailable>, args=<unavailable>) at vlc_es_out.h:141:12 [opt]
frame #15: 0x0000000109f4a3ec MobileVLCKit`es_out_Control(out=<unavailable>, i_query=<unavailable>) at vlc_es_out.h:150:16 [opt]
frame #16: 0x0000000109f4a1ec MobileVLCKit`CmdExecuteControl(p_out=<unavailable>, p_cmd=0x000000016bd8aed0) at es_out_timeshift.c:0 [opt]
frame #17: 0x0000000109f495d8 MobileVLCKit`Control at es_out_timeshift.c:664:16 [opt]
frame #18: 0x0000000109f490ac MobileVLCKit`Control(p_out=<unavailable>, i_query=<unavailable>, args="") at es_out_timeshift.c:764:13 [opt]
frame #19: 0x0000000109f4fc74 MobileVLCKit`es_out_Control [inlined] es_out_vaControl(out=<unavailable>, i_query=<unavailable>, args=<unavailable>) at vlc_es_out.h:141:12 [opt]
frame #20: 0x0000000109f4fc68 MobileVLCKit`es_out_Control(out=<unavailable>, i_query=<unavailable>) at vlc_es_out.h:150:16 [opt]
frame #21: 0x0000000109f4e34c MobileVLCKit`End [inlined] es_out_SetMode(p_out=<unavailable>, i_mode=0) at es_out.h:95:17 [opt]
frame #22: 0x0000000109f4e340 MobileVLCKit`End(p_input=0x00000001089238f0) at input.c:1508:5 [opt]
frame #23: 0x0000000109f4e6d0 MobileVLCKit`Run(data=0x00000001089238f0) at input.c:507:9 [opt]
frame #24: 0x00000001f7e966b8 libsystem_pthread.dylib`_pthread_start + 148
thread #49, name = 'AURemoteIO::IOThread'
frame #0: 0x00000001d701aca4 libsystem_kernel.dylib`mach_msg2_trap + 8
frame #1: 0x00000001d702db74 libsystem_kernel.dylib`mach_msg2_internal + 80
frame #2: 0x00000001d702de4c libsystem_kernel.dylib`mach_msg_overwrite + 540
frame #3: 0x00000001d701b1e8 libsystem_kernel.dylib`mach_msg + 24
frame #4: 0x0000000202d6e148 libEmbeddedSystemAUs.dylib`void* caulk::thread_proxy<std::__1::tuple<caulk::thread::attributes, AURemoteIO::IOThread::IOThread(AURemoteIO&, caulk::thread::attributes const&, caulk::mach::os_workgroup_managed const&)::'lambda'(), std::__1::tuple<> > >(void*) + 556
frame #5: 0x00000001f7e966b8 libsystem_pthread.dylib`_pthread_start + 148
thread #52
frame #0: 0x00000001f7e95b74 libsystem_pthread.dylib`start_wqthread
thread #53
frame #0: 0x00000001d701b7dc libsystem_kernel.dylib`__ulock_wait + 8
frame #1: 0x00000001f7e988b8 libsystem_pthread.dylib`_pthread_join + 440
frame #2: 0x0000000109f4e878 MobileVLCKit`input_Close(p_input=0x00000001089238f0) at input.c:224:9 [opt]
frame #3: 0x0000000109f137a4 MobileVLCKit`worker_thread(data=0x0000000109910e20) at media_player.c:1220:9 [opt]
frame #4: 0x00000001f7e966b8 libsystem_pthread.dylib`_pthread_start + 148
* thread #54, stop reason = EXC_BAD_ACCESS (code=1, address=0xf8)
frame #0: 0x00000001f7e98024 libsystem_pthread.dylib`pthread_mutex_lock + 12
frame #1: 0x0000000109f11c44 MobileVLCKit`libvlc_media_subitems [inlined] media_get_subitems(p_md=0x0000000000000000, b_create=true) at media.c:133:5 [opt]
frame #2: 0x0000000109f11c38 MobileVLCKit`libvlc_media_subitems(p_md=0x0000000000000000) at media.c:729:39 [opt]
frame #3: 0x0000000109f181ec MobileVLCKit`set_relative_playlist_position_and_play at media_list_path.h:176:27 [opt]
* frame #4: 0x0000000109f181a8 MobileVLCKit`set_relative_playlist_position_and_play(p_mlp=<unavailable>, i_relative_position=<unavailable>) at media_list_player.c:832:29 [opt]
frame #5: 0x0000000109f17db4 MobileVLCKit`playlist_thread(data=0x0000000109910bf0) at media_list_player.c:344:9 [opt]
frame #6: 0x00000001f7e966b8 libsystem_pthread.dylib`_pthread_start + 148
thread #58
frame #0: 0x00000001d701b1ac libsystem_kernel.dylib`__workq_kernreturn + 8
(lldb)
Edited by Felix Paul Kühne