Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Assert from mpv, !queue->in_process, during quit #3824

Closed
1 task
low-batt opened this issue Jun 13, 2022 · 1 comment · Fixed by #3961
Closed
1 task

Assert from mpv, !queue->in_process, during quit #3824

low-batt opened this issue Jun 13, 2022 · 1 comment · Fixed by #3961

Comments

@low-batt
Copy link
Contributor

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.

@low-batt
Copy link
Contributor Author

low-batt commented Jan 2, 2024

This is fixed in the released version of IINA.

@low-batt low-batt closed this as completed Jan 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant