-
-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Description
System and IINA version:
- macOS 10.14.6
- IINA 1.3.0
Expected behavior:
INA terminates cleanly.
Actual behavior:
IINA crashed during termination due to the following fatal assertion in mpv:
Assertion failed: (!queue->in_process), function mp_dispatch_queue_process, file dispatch.c, line 276.
This was reported by @pleasejustgo in issue #3823 and seemed like it deserved its own issue as #3823 was triggered using Xcode sanity checks whereas this crash occurred with the production version of IINA 1.3.0.
Note that in this crash we can see that the main thread was writing to a watch later file when the crash occurred:
5 libmpv.1.dylib 0x000000010d5664c5 mp_write_watch_later_conf + 69
6 libmpv.1.dylib 0x000000010d558f2b cmd_quit + 43
7 libmpv.1.dylib 0x000000010d5587a5 run_command + 693
This is more confirmation that problems coordinating termination sometimes result in the loss of watch later settings.
See issue #3590 for an analysis of the problems seen during quit. Must confirm this issue is fixed as a part of correcting IINA to properly coordinate shutdown.
Crash report:
Process: IINA [901]
Path: /Applications/IINA.app/Contents/MacOS/IINA
Identifier: com.colliderli.iina
Version: 1.3.0 (132)
Code Type: X86-64 (Native)
Parent Process: ??? [1]
Responsible: IINA [901]
User ID: 501
Date/Time: 2022-06-13 03:34:18.579 -0400
OS Version: Mac OS X 10.14.6 (18G9323)
Report Version: 12
Anonymous UUID: C2E9CA91-1693-B046-E559-5846A4FE4C83
Time Awake Since Boot: 10000 seconds
System Integrity Protection: enabled
Crashed Thread: 1 Dispatch queue: com.colliderli.iina.mpvgl
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Application Specific Information:
Performing @selector(terminate:) from sender NSMenuItem 0x600000a0fde0
Assertion failed: (!queue->in_process), function mp_dispatch_queue_process, file dispatch.c, line 276.
Thread 0:: Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0x00007fff5a51718a __open_nocancel + 10
1 libsystem_c.dylib 0x00007fff5a4537a4 __getcwd + 56
2 libsystem_c.dylib 0x00007fff5a453333 __private_getcwd + 140
3 libmpv.1.dylib 0x000000010d55115a mp_getcwd + 122
4 libmpv.1.dylib 0x000000010d566a09 mp_get_playback_resume_config_filename + 121
5 libmpv.1.dylib 0x000000010d5664c5 mp_write_watch_later_conf + 69
6 libmpv.1.dylib 0x000000010d558f2b cmd_quit + 43
7 libmpv.1.dylib 0x000000010d5587a5 run_command + 693
8 libmpv.1.dylib 0x000000010d555514 run_client_command + 292
9 com.colliderli.iina 0x000000010cf59b85 MPVController.command(_:args:checkError:returnValueCallback:) + 421
10 com.colliderli.iina 0x000000010ceac628 specialized AppDelegate.applicationShouldTerminate(_:) + 712
11 com.apple.AppKit 0x00007fff2bc16b9f -[NSApplication _docController:shouldTerminate:] + 88
12 com.apple.AppKit 0x00007fff2bc16a5e __91-[NSDocumentController(NSInternal) _closeAllDocumentsWithDelegate:shouldTerminateSelector:]_block_invoke + 534
13 com.apple.AppKit 0x00007fff2bc166b5 -[NSDocumentController(NSInternal) _closeAllDocumentsWithDelegate:shouldTerminateSelector:] + 1227
14 com.apple.AppKit 0x00007fff2bc161c3 -[NSDocumentController(NSInternal) __closeAllDocumentsWithDelegate:shouldTerminateSelector:] + 291
15 com.apple.AppKit 0x00007fff2bc15e0f -[NSApplication _shouldTerminate] + 973
16 com.apple.AppKit 0x00007fff2bae9dc7 -[NSApplication terminate:] + 774
17 com.apple.AppKit 0x00007fff2bbd9318 -[NSApplication(NSResponder) sendAction:to:from:] + 312
18 com.apple.AppKit 0x00007fff2bc35543 -[NSMenuItem _corePerformAction] + 323
19 com.apple.AppKit 0x00007fff2bc352b4 -[NSCarbonMenuImpl performActionWithHighlightingForItemAtIndex:] + 114
20 com.apple.AppKit 0x00007fff2bc34126 -[NSMenu performKeyEquivalent:] + 363
21 com.apple.AppKit 0x00007fff2c0b9d8f routeKeyEquivalent + 860
22 com.apple.AppKit 0x00007fff2b8f2834 -[NSApplication(NSEvent) sendEvent:] + 1064
23 com.apple.AppKit 0x00007fff2b8e0ccc -[NSApplication run] + 755
24 com.apple.AppKit 0x00007fff2b8d01c0 NSApplicationMain + 777
25 com.colliderli.iina 0x000000010cdef5b9 main + 9
26 libdyld.dylib 0x00007fff5a3e13d5 start + 1
Thread 1 Crashed:: Dispatch queue: com.colliderli.iina.mpvgl
0 libsystem_kernel.dylib 0x00007fff5a51c2c2 __pthread_kill + 10
1 libsystem_pthread.dylib 0x00007fff5a5d7bf1 pthread_kill + 284
2 libsystem_c.dylib 0x00007fff5a4866a6 abort + 127
3 libsystem_c.dylib 0x00007fff5a44f20d __assert_rtn + 324
4 libmpv.1.dylib 0x000000010d5e6da3 mp_dispatch_queue_process.cold.4 + 35
5 libmpv.1.dylib 0x000000010d53bbd4 mp_dispatch_queue_process + 436
6 libmpv.1.dylib 0x000000010d5cd0c9 mpv_render_context_update + 25
7 com.colliderli.iina 0x000000010cef7619 specialized ViewLayer.canDraw(inCGLContext:pixelFormat:forLayerTime:displayTime:) + 185
8 com.colliderli.iina 0x000000010cef5cbb @objc ViewLayer.canDraw(inCGLContext:pixelFormat:forLayerTime:displayTime:) + 27
9 com.apple.QuartzCore 0x00007fff38e359f7 CAOpenGLLayerDraw(CAOpenGLLayer*, double, CVTimeStamp const*, unsigned int) + 690
10 com.apple.QuartzCore 0x00007fff38e354da -[CAOpenGLLayer _display] + 580
11 com.colliderli.iina 0x000000010cef614a @objc ViewLayer.display() + 58
12 com.colliderli.iina 0x000000010cef5e2f ViewLayer.draw(forced:) + 95
13 com.colliderli.iina 0x000000010cf64232 partial apply for closure #1 in mpvUpdateCallback(_:) + 18
14 com.colliderli.iina 0x000000010cf56369 thunk for @escaping @callee_guaranteed () -> () + 25
15 libdispatch.dylib 0x00007fff5a3935f8 _dispatch_call_block_and_release + 12
16 libdispatch.dylib 0x00007fff5a39463d _dispatch_client_callout + 8
17 libdispatch.dylib 0x00007fff5a39a8e0 _dispatch_lane_serial_drain + 602
18 libdispatch.dylib 0x00007fff5a39b396 _dispatch_lane_invoke + 385
19 libdispatch.dylib 0x00007fff5a3a36ed _dispatch_workloop_worker_thread + 598
20 libsystem_pthread.dylib 0x00007fff5a5d4611 _pthread_wqthread + 421
21 libsystem_pthread.dylib 0x00007fff5a5d43fd start_wqthread + 13
Thread 2:
0 libsystem_pthread.dylib 0x00007fff5a5d43f0 start_wqthread + 0
Thread 3:
0 libsystem_pthread.dylib 0x00007fff5a5d43f0 start_wqthread + 0
Thread 4:
0 libsystem_pthread.dylib 0x00007fff5a5d43f0 start_wqthread + 0
Thread 5:
0 libsystem_pthread.dylib 0x00007fff5a5d43f0 start_wqthread + 0
Thread 6:
0 libsystem_pthread.dylib 0x00007fff5a5d43f0 start_wqthread + 0
Thread 7:: mpv/mpv core
0 libsystem_kernel.dylib 0x00007fff5a519866 __psynch_cvwait + 10
1 libsystem_pthread.dylib 0x00007fff5a5d856e _pthread_cond_wait + 722
2 libmpv.1.dylib 0x000000010d53babb mp_dispatch_queue_process + 155
3 libmpv.1.dylib 0x000000010d577d48 mp_wait_events + 88
4 libmpv.1.dylib 0x000000010d57a465 run_playloop + 3205
5 libmpv.1.dylib 0x000000010d5704ad mp_play_files + 8173
6 libmpv.1.dylib 0x000000010d5545fe core_thread + 62
7 libsystem_pthread.dylib 0x00007fff5a5d52eb _pthread_body + 126
8 libsystem_pthread.dylib 0x00007fff5a5d8249 _pthread_start + 66
9 libsystem_pthread.dylib 0x00007fff5a5d440d thread_start + 13
Thread 8:: Dispatch queue: com.colliderli.iina.controller
0 libsystem_kernel.dylib 0x00007fff5a5189da __ulock_wait + 10
1 libdispatch.dylib 0x00007fff5a394e19 _dispatch_ulock_wait + 47
2 libdispatch.dylib 0x00007fff5a394ef8 _dispatch_thread_event_wait_slow + 33
3 libdispatch.dylib 0x00007fff5a3a037f __DISPATCH_WAIT_FOR_QUEUE__ + 286
4 libdispatch.dylib 0x00007fff5a39ffce _dispatch_sync_f_slow + 171
5 com.colliderli.iina 0x000000010cf5c5d7 MPVController.onVideoReconfig() + 839
6 com.colliderli.iina 0x000000010cf6294a partial apply for closure #1 in MPVController.readEvents() + 42
7 com.colliderli.iina 0x000000010cf56369 thunk for @escaping @callee_guaranteed () -> () + 25
8 libdispatch.dylib 0x00007fff5a3935f8 _dispatch_call_block_and_release + 12
9 libdispatch.dylib 0x00007fff5a39463d _dispatch_client_callout + 8
10 libdispatch.dylib 0x00007fff5a39a8e0 _dispatch_lane_serial_drain + 602
11 libdispatch.dylib 0x00007fff5a39b396 _dispatch_lane_invoke + 385
12 libdispatch.dylib 0x00007fff5a3a36ed _dispatch_workloop_worker_thread + 598
13 libsystem_pthread.dylib 0x00007fff5a5d4611 _pthread_wqthread + 421
14 libsystem_pthread.dylib 0x00007fff5a5d43fd start_wqthread + 13
Thread 9:
0 libsystem_pthread.dylib 0x00007fff5a5d43f0 start_wqthread + 0
Thread 10:: mpv/lua script (stats)
0 libsystem_kernel.dylib 0x00007fff5a519866 __psynch_cvwait + 10
1 libsystem_pthread.dylib 0x00007fff5a5d856e _pthread_cond_wait + 722
2 libmpv.1.dylib 0x000000010d553dcf wait_wakeup + 95
3 libmpv.1.dylib 0x000000010d5548a5 mpv_wait_event + 597
4 libmpv.1.dylib 0x000000010d5723f7 script_raw_wait_event + 103
5 libluajit-5.1.2.dylib 0x000000010f37a1b6 lj_BC_FUNCC + 68
Thread 11:: mpv/lua script (console)
0 libsystem_kernel.dylib 0x00007fff5a519866 __psynch_cvwait + 10
1 libsystem_pthread.dylib 0x00007fff5a5d856e _pthread_cond_wait + 722
2 libmpv.1.dylib 0x000000010d553dcf wait_wakeup + 95
3 libmpv.1.dylib 0x000000010d5548a5 mpv_wait_event + 597
4 libmpv.1.dylib 0x000000010d5723f7 script_raw_wait_event + 103
5 libluajit-5.1.2.dylib 0x000000010f37a1b6 lj_BC_FUNCC + 68
Thread 12:
0 libsystem_kernel.dylib 0x00007fff5a51626e semaphore_timedwait_trap + 10
1 libdispatch.dylib 0x00007fff5a394c99 _dispatch_sema4_timedwait + 76
2 libdispatch.dylib 0x00007fff5a395377 _dispatch_semaphore_wait_slow + 58
3 libdispatch.dylib 0x00007fff5a3a21fd _dispatch_worker_thread + 317
4 libsystem_pthread.dylib 0x00007fff5a5d52eb _pthread_body + 126
5 libsystem_pthread.dylib 0x00007fff5a5d8249 _pthread_start + 66
6 libsystem_pthread.dylib 0x00007fff5a5d440d thread_start + 13
Thread 13:: com.apple.NSEventThread
0 libsystem_kernel.dylib 0x00007fff5a51621a mach_msg_trap + 10
1 libsystem_kernel.dylib 0x00007fff5a516768 mach_msg + 60
2 com.apple.CoreFoundation 0x00007fff2e2f2e0e __CFRunLoopServiceMachPort + 328
3 com.apple.CoreFoundation 0x00007fff2e2f237c __CFRunLoopRun + 1612
4 com.apple.CoreFoundation 0x00007fff2e2f1ade CFRunLoopRunSpecific + 455
5 com.apple.AppKit 0x00007fff2b8efbae _NSEventThread + 175
6 libsystem_pthread.dylib 0x00007fff5a5d52eb _pthread_body + 126
7 libsystem_pthread.dylib 0x00007fff5a5d8249 _pthread_start + 66
8 libsystem_pthread.dylib 0x00007fff5a5d440d thread_start + 13
Thread 14:: mpv/demux
0 libsystem_kernel.dylib 0x00007fff5a519866 __psynch_cvwait + 10
1 libsystem_pthread.dylib 0x00007fff5a5d856e _pthread_cond_wait + 722
2 libmpv.1.dylib 0x000000010d503163 demux_thread + 259
3 libsystem_pthread.dylib 0x00007fff5a5d52eb _pthread_body + 126
4 libsystem_pthread.dylib 0x00007fff5a5d8249 _pthread_start + 66
5 libsystem_pthread.dylib 0x00007fff5a5d440d thread_start + 13
Thread 15:: mpv/worker
0 libsystem_kernel.dylib 0x00007fff5a519866 __psynch_cvwait + 10
1 libsystem_pthread.dylib 0x00007fff5a5d856e _pthread_cond_wait + 722
2 libmpv.1.dylib 0x000000010d53d6fc worker_thread + 76
3 libsystem_pthread.dylib 0x00007fff5a5d52eb _pthread_body + 126
4 libsystem_pthread.dylib 0x00007fff5a5d8249 _pthread_start + 66
5 libsystem_pthread.dylib 0x00007fff5a5d440d thread_start + 13
Thread 16:: com.apple.audio.IOThread.client
0 libsystem_kernel.dylib 0x00007fff5a51621a mach_msg_trap + 10
1 libsystem_kernel.dylib 0x00007fff5a516768 mach_msg + 60
2 com.apple.audio.CoreAudio 0x00007fff2dd61dba HALB_MachPort::SendMessageWithReply(unsigned int, unsigned int, unsigned int, unsigned int, mach_msg_header_t*, bool, unsigned int) + 122
3 com.apple.audio.CoreAudio 0x00007fff2dd61d2f HALB_MachPort::SendSimpleMessageWithSimpleReply(unsigned int, unsigned int, int, int&, bool, unsigned int) + 45
4 com.apple.audio.CoreAudio 0x00007fff2dd5e27f HALC_ProxyIOContext::IOWorkLoop() + 1017
5 com.apple.audio.CoreAudio 0x00007fff2dd5dcd4 HALC_ProxyIOContext::IOThreadEntry(void*) + 122
6 com.apple.audio.CoreAudio 0x00007fff2dd5d836 HALB_IOThread::Entry(void*) + 72
7 libsystem_pthread.dylib 0x00007fff5a5d52eb _pthread_body + 126
8 libsystem_pthread.dylib 0x00007fff5a5d8249 _pthread_start + 66
9 libsystem_pthread.dylib 0x00007fff5a5d440d thread_start + 13
Thread 1 crashed with X86 Thread State (64-bit):
rax: 0x0000000000000000 rbx: 0x000070000c110000 rcx: 0x000070000c10f558 rdx: 0x0000000000000000
rdi: 0x0000000000001303 rsi: 0x0000000000000006 rbp: 0x000070000c10f590 rsp: 0x000070000c10f558
r8: 0x0000000000000114 r9: 0xcccccccccccccccd r10: 0x0000000000000000 r11: 0x0000000000000206
r12: 0x0000000000001303 r13: 0x0000000114316000 r14: 0x0000000000000006 r15: 0x000000000000002d
rip: 0x00007fff5a51c2c2 rfl: 0x0000000000000206 cr2: 0x00007fff90a06188
Logical CPU: 0
Error Code: 0x02000148
Trap Number: 133
...
Report truncated to meet GitHub comment limits...
Steps to reproduce:
- Play a video
- Click the
Quit IINA
menu item - Rarely this failure will occur
- MPV does not have this problem.
Unknown, but IINA definitely needs to be fixed to properly coordinate termination.
How often does this happen?
Rarely. This is a race condition during termination.