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

Crash in objc_release called from PlayerCore.fileStarted #3822

Closed
1 task
low-batt opened this issue Jun 13, 2022 · 3 comments · Fixed by #4334
Closed
1 task

Crash in objc_release called from PlayerCore.fileStarted #3822

low-batt opened this issue Jun 13, 2022 · 3 comments · Fixed by #4334

Comments

@low-batt
Copy link
Contributor

System and IINA version:

  • macOS 12.4
  • IINA 1.3.0

Expected behavior:
IINA does not crash.

Actual behavior:
IINA crashed before playing the file.

Crash report:
-------------------------------------
Translated Report (Full Report Below)
-------------------------------------

Process:               IINA [8753]
Path:                  /Applications/IINA.app/Contents/MacOS/IINA
Identifier:            com.colliderli.iina
Version:               1.3.0 (132)
Code Type:             ARM-64 (Native)
Parent Process:        launchd [1]
User ID:               503

Date/Time:             2022-06-12 16:06:02.9693 -0400
OS Version:            macOS 12.4 (21F79)
Report Version:        12
Anonymous UUID:        C8F97525-3322-572C-B9CE-A91EB243AC3C

Sleep/Wake UUID:       7E20F5A1-8C1B-4DE3-AFC7-D94A7567A16D

Time Awake Since Boot: 130000 seconds
Time Since Wake:       6415 seconds

System Integrity Protection: enabled

Crashed Thread:        5  Dispatch queue: IINAPlayerCoreTask

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x000069ec504c0980
Exception Codes:       0x0000000000000001, 0x000069ec504c0980
Exception Note:        EXC_CORPSE_NOTIFY

Termination Reason:    Namespace SIGNAL, Code 11 Segmentation fault: 11
Terminating Process:   exc handler [8753]

VM Region Info: 0x69ec504c0980 is not in any region.  Bytes after previous region: 10910027221377  
      REGION TYPE                    START - END         [ VSIZE] PRT/MAX SHRMOD  REGION DETAIL
      MALLOC_NANO (reserved)   600018000000-600020000000 [128.0M] rw-/rwx SM=NUL  ...(unallocated)
--->  
      UNUSED SPACE AT END

Thread 0::  Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib        	       0x189d0a8b0 mach_msg_trap + 8
1   libsystem_kernel.dylib        	       0x189d0ad20 mach_msg + 76
2   CoreFoundation                	       0x189e152b0 __CFRunLoopServiceMachPort + 372
3   CoreFoundation                	       0x189e13760 __CFRunLoopRun + 1180
4   CoreFoundation                	       0x189e12b24 CFRunLoopRunSpecific + 600
5   HIToolbox                     	       0x192a4b338 RunCurrentEventLoopInMode + 292
6   HIToolbox                     	       0x192a4b0b4 ReceiveNextEventCommon + 564
7   HIToolbox                     	       0x192a4ae68 _BlockUntilNextEventMatchingListInModeWithFilter + 72
8   AppKit                        	       0x18c97978c _DPSNextEvent + 860
9   AppKit                        	       0x18c978084 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1328
10  AppKit                        	       0x18c96a250 -[NSApplication run] + 596
11  AppKit                        	       0x18c93b96c NSApplicationMain + 1132
12  IINA                          	       0x104fd2b40 main + 12
13  dyld                          	       0x10578108c start + 520

Thread 1:
0   libsystem_pthread.dylib       	       0x189d43078 start_wqthread + 0

Thread 2::  Dispatch queue: com.colliderli.iina.mpvgl
0   libsystem_kernel.dylib        	       0x189d0e270 __psynch_cvwait + 8
1   libsystem_pthread.dylib       	       0x189d4883c _pthread_cond_wait + 1236
2   libmpv.1.dylib                	       0x10619b380 mpv_render_context_render + 788
3   IINA                          	       0x1050c391c specialized closure #1 in closure #1 in ViewLayer.draw(inCGLContext:pixelFormat:forLayerTime:displayTime:) + 144
4   IINA                          	       0x1050c218c closure #1 in ViewLayer.draw(inCGLContext:pixelFormat:forLayerTime:displayTime:) + 156
5   IINA                          	       0x1050c3a88 specialized ViewLayer.draw(inCGLContext:pixelFormat:forLayerTime:displayTime:) + 340
6   IINA                          	       0x1050c21e8 @objc ViewLayer.draw(inCGLContext:pixelFormat:forLayerTime:displayTime:) + 28
7   QuartzCore                    	       0x190d426c4 CAOpenGLLayerDraw(CAOpenGLLayer*, double, CVTimeStamp const*, unsigned int) + 1520
8   QuartzCore                    	       0x190d41ee8 -[CAOpenGLLayer _display] + 584
9   IINA                          	       0x1050c253c @objc ViewLayer.display() + 60
10  IINA                          	       0x1050c2264 ViewLayer.draw(forced:) + 108
11  IINA                          	       0x10512866c partial apply for closure #1 in mpvUpdateCallback(_:) + 24
12  IINA                          	       0x10511b038 thunk for @escaping @callee_guaranteed () -> () + 28
13  libdispatch.dylib             	       0x189b825f0 _dispatch_call_block_and_release + 32
14  libdispatch.dylib             	       0x189b841b4 _dispatch_client_callout + 20
15  libdispatch.dylib             	       0x189b8b8a8 _dispatch_lane_serial_drain + 668
16  libdispatch.dylib             	       0x189b8c404 _dispatch_lane_invoke + 392
17  libdispatch.dylib             	       0x189b96c98 _dispatch_workloop_worker_thread + 648
18  libsystem_pthread.dylib       	       0x189d44360 _pthread_wqthread + 288
19  libsystem_pthread.dylib       	       0x189d43080 start_wqthread + 8

Thread 3::  Dispatch queue: com.colliderli.iina.controller
0   IINA                          	       0x1051005fc PlayerCore.getTrackInfo() + 588
1   IINA                          	       0x105101af0 PlayerCore.getTrackInfo() + 5952
2   IINA                          	       0x1050fc1ec PlayerCore.trackListChanged() + 112
3   IINA                          	       0x105123508 MPVController.handlePropertyChange(_:_:) + 9144
4   IINA                          	       0x105120278 MPVController.handleEvent(_:) + 1572
5   IINA                          	       0x105126fd0 partial apply for closure #1 in MPVController.readEvents() + 32
6   IINA                          	       0x10511b038 thunk for @escaping @callee_guaranteed () -> () + 28
7   libdispatch.dylib             	       0x189b825f0 _dispatch_call_block_and_release + 32
8   libdispatch.dylib             	       0x189b841b4 _dispatch_client_callout + 20
9   libdispatch.dylib             	       0x189b8b8a8 _dispatch_lane_serial_drain + 668
10  libdispatch.dylib             	       0x189b8c404 _dispatch_lane_invoke + 392
11  libdispatch.dylib             	       0x189b96c98 _dispatch_workloop_worker_thread + 648
12  libsystem_pthread.dylib       	       0x189d44360 _pthread_wqthread + 288
13  libsystem_pthread.dylib       	       0x189d43080 start_wqthread + 8

Thread 4:
0   libsystem_pthread.dylib       	       0x189d43078 start_wqthread + 0

Thread 5 Crashed::  Dispatch queue: IINAPlayerCoreTask
0   libobjc.A.dylib               	       0x189bd09c0 objc_release + 16
1   IINA                          	       0x1050faffc closure #3 in PlayerCore.fileStarted(path:) + 1608
2   IINA                          	       0x10511b038 thunk for @escaping @callee_guaranteed () -> () + 28
3   libdispatch.dylib             	       0x189b825f0 _dispatch_call_block_and_release + 32
4   libdispatch.dylib             	       0x189b841b4 _dispatch_client_callout + 20
5   libdispatch.dylib             	       0x189b8b8a8 _dispatch_lane_serial_drain + 668
6   libdispatch.dylib             	       0x189b8c404 _dispatch_lane_invoke + 392
7   libdispatch.dylib             	       0x189b96c98 _dispatch_workloop_worker_thread + 648
8   libsystem_pthread.dylib       	       0x189d44360 _pthread_wqthread + 288
9   libsystem_pthread.dylib       	       0x189d43080 start_wqthread + 8

Thread 6:: */mpv core
0   libsystem_kernel.dylib        	       0x189d0e270 __psynch_cvwait + 8
1   libsystem_pthread.dylib       	       0x189d4883c _pthread_cond_wait + 1236
2   libmpv.1.dylib                	       0x106119a34 mp_dispatch_queue_process + 140
3   libmpv.1.dylib                	       0x106150ca8 mp_wait_events + 80
4   libmpv.1.dylib                	       0x106152df0 run_playloop + 2344
5   libmpv.1.dylib                	       0x106149c4c mp_play_files + 6628
6   libmpv.1.dylib                	       0x10612ff1c core_thread + 72
7   libsystem_pthread.dylib       	       0x189d4826c _pthread_start + 148
8   libsystem_pthread.dylib       	       0x189d4308c thread_start + 8

Thread 7:
0   libsystem_pthread.dylib       	       0x189d43078 start_wqthread + 0

Thread 8:
0   libsystem_pthread.dylib       	       0x189d43078 start_wqthread + 0

Thread 9:
0   libsystem_pthread.dylib       	       0x189d43078 start_wqthread + 0

Thread 10:
0   libsystem_pthread.dylib       	       0x189d43078 start_wqthread + 0

Thread 11:: */log-file
0   libsystem_kernel.dylib        	       0x189d0e270 __psynch_cvwait + 8
1   libsystem_pthread.dylib       	       0x189d4883c _pthread_cond_wait + 1236
2   libmpv.1.dylib                	       0x1060e2b38 log_file_thread + 120
3   libsystem_pthread.dylib       	       0x189d4826c _pthread_start + 148
4   libsystem_pthread.dylib       	       0x189d4308c thread_start + 8

Thread 12:: */lua script (ytdl_hook)
0   libsystem_kernel.dylib        	       0x189d0e270 __psynch_cvwait + 8
1   libsystem_pthread.dylib       	       0x189d4883c _pthread_cond_wait + 1236
2   libmpv.1.dylib                	       0x10612f7b4 wait_wakeup + 88
3   libmpv.1.dylib                	       0x10613011c mpv_wait_event + 420
4   libmpv.1.dylib                	       0x10614b970 script_raw_wait_event + 120
5   libluajit-5.1.2.dylib         	       0x105fda838 lj_BC_FUNCC + 44
6   libluajit-5.1.2.dylib         	       0x105fe7490 lua_pcall + 148
7   libluajit-5.1.2.dylib         	       0x105fda838 lj_BC_FUNCC + 44
8   libmpv.1.dylib                	       0x10614b444 load_scripts + 376
9   libluajit-5.1.2.dylib         	       0x105fda838 lj_BC_FUNCC + 44
10  libluajit-5.1.2.dylib         	       0x105fe7490 lua_pcall + 148
11  libluajit-5.1.2.dylib         	       0x105fda838 lj_BC_FUNCC + 44
12  libluajit-5.1.2.dylib         	       0x105fe74d0 lua_cpcall + 28
13  libmpv.1.dylib                	       0x1061556a4 run_script + 100
14  libmpv.1.dylib                	       0x106155728 script_thread + 32
15  libsystem_pthread.dylib       	       0x189d4826c _pthread_start + 148
16  libsystem_pthread.dylib       	       0x189d4308c thread_start + 8

Thread 13:: */lua script (stats)
0   libsystem_kernel.dylib        	       0x189d0e270 __psynch_cvwait + 8
1   libsystem_pthread.dylib       	       0x189d4883c _pthread_cond_wait + 1236
2   libmpv.1.dylib                	       0x10612f7b4 wait_wakeup + 88
3   libmpv.1.dylib                	       0x10613011c mpv_wait_event + 420
4   libmpv.1.dylib                	       0x10614b970 script_raw_wait_event + 120
5   libluajit-5.1.2.dylib         	       0x105fda838 lj_BC_FUNCC + 44
6   libluajit-5.1.2.dylib         	       0x105fe7490 lua_pcall + 148
7   libluajit-5.1.2.dylib         	       0x105fda838 lj_BC_FUNCC + 44
8   libmpv.1.dylib                	       0x10614b444 load_scripts + 376
9   libluajit-5.1.2.dylib         	       0x105fda838 lj_BC_FUNCC + 44
10  libluajit-5.1.2.dylib         	       0x105fe7490 lua_pcall + 148
11  libluajit-5.1.2.dylib         	       0x105fda838 lj_BC_FUNCC + 44
12  libluajit-5.1.2.dylib         	       0x105fe74d0 lua_cpcall + 28
13  libmpv.1.dylib                	       0x1061556a4 run_script + 100
14  libmpv.1.dylib                	       0x106155728 script_thread + 32
15  libsystem_pthread.dylib       	       0x189d4826c _pthread_start + 148
16  libsystem_pthread.dylib       	       0x189d4308c thread_start + 8

Thread 14:: */lua script (console)
0   libsystem_kernel.dylib        	       0x189d0e270 __psynch_cvwait + 8
1   libsystem_pthread.dylib       	       0x189d4883c _pthread_cond_wait + 1236
2   libmpv.1.dylib                	       0x10612f7b4 wait_wakeup + 88
3   libmpv.1.dylib                	       0x10613011c mpv_wait_event + 420
4   libmpv.1.dylib                	       0x10614b970 script_raw_wait_event + 120
5   libluajit-5.1.2.dylib         	       0x105fda838 lj_BC_FUNCC + 44
6   libluajit-5.1.2.dylib         	       0x105fe7490 lua_pcall + 148
7   libluajit-5.1.2.dylib         	       0x105fda838 lj_BC_FUNCC + 44
8   libmpv.1.dylib                	       0x10614b444 load_scripts + 376
9   libluajit-5.1.2.dylib         	       0x105fda838 lj_BC_FUNCC + 44
10  libluajit-5.1.2.dylib         	       0x105fe7490 lua_pcall + 148
11  libluajit-5.1.2.dylib         	       0x105fda838 lj_BC_FUNCC + 44
12  libluajit-5.1.2.dylib         	       0x105fe74d0 lua_cpcall + 28
13  libmpv.1.dylib                	       0x1061556a4 run_script + 100
14  libmpv.1.dylib                	       0x106155728 script_thread + 32
15  libsystem_pthread.dylib       	       0x189d4826c _pthread_start + 148
16  libsystem_pthread.dylib       	       0x189d4308c thread_start + 8

Thread 15:: */ipc socket listener
0   libsystem_kernel.dylib        	       0x189d12eb0 poll + 8
1   libmpv.1.dylib                	       0x106116f48 ipc_thread + 368
2   libsystem_pthread.dylib       	       0x189d4826c _pthread_start + 148
3   libsystem_pthread.dylib       	       0x189d4308c thread_start + 8

Thread 16:: AMCP Logging Spool
0   libsystem_kernel.dylib        	       0x189d0a8ec semaphore_wait_trap + 8
1   caulk                         	       0x1927b6a2c caulk::mach::semaphore::wait_or_error() + 28
2   caulk                         	       0x19279a7ac caulk::concurrent::details::worker_thread::run() + 56
3   caulk                         	       0x19279a3cc void* caulk::thread_proxy<std::__1::tuple<caulk::thread::attributes, void (caulk::concurrent::details::worker_thread::*)(), std::__1::tuple<caulk::concurrent::details::worker_thread*> > >(void*) + 96
4   libsystem_pthread.dylib       	       0x189d4826c _pthread_start + 148
5   libsystem_pthread.dylib       	       0x189d4308c thread_start + 8

Thread 17:
0   libsystem_pthread.dylib       	       0x189d43078 start_wqthread + 0

Thread 18:
0   libsystem_pthread.dylib       	       0x189d43078 start_wqthread + 0

Thread 19:: com.apple.NSEventThread
0   libsystem_kernel.dylib        	       0x189d0a8b0 mach_msg_trap + 8
1   libsystem_kernel.dylib        	       0x189d0ad20 mach_msg + 76
2   CoreFoundation                	       0x189e152b0 __CFRunLoopServiceMachPort + 372
3   CoreFoundation                	       0x189e13760 __CFRunLoopRun + 1180
4   CoreFoundation                	       0x189e12b24 CFRunLoopRunSpecific + 600
5   AppKit                        	       0x18cae6374 _NSEventThread + 196
6   libsystem_pthread.dylib       	       0x189d4826c _pthread_start + 148
7   libsystem_pthread.dylib       	       0x189d4308c thread_start + 8

Thread 20:: */demux
0   libsystem_kernel.dylib        	       0x189d0e270 __psynch_cvwait + 8
1   libsystem_pthread.dylib       	       0x189d4883c _pthread_cond_wait + 1236
2   libmpv.1.dylib                	       0x1060e8050 demux_thread + 236
3   libsystem_pthread.dylib       	       0x189d4826c _pthread_start + 148
4   libsystem_pthread.dylib       	       0x189d4308c thread_start + 8

Thread 21:: */worker
0   libsystem_kernel.dylib        	       0x189d0e270 __psynch_cvwait + 8
1   libsystem_pthread.dylib       	       0x189d4883c _pthread_cond_wait + 1236
2   libmpv.1.dylib                	       0x10611b4e8 worker_thread + 80
3   libsystem_pthread.dylib       	       0x189d4826c _pthread_start + 148
4   libsystem_pthread.dylib       	       0x189d4308c thread_start + 8

Thread 22:: */vo
0   libsystem_kernel.dylib        	       0x189d0e270 __psynch_cvwait + 8
1   libsystem_pthread.dylib       	       0x189d4883c _pthread_cond_wait + 1236
2   libmpv.1.dylib                	       0x1061993a8 vo_thread + 1328
3   libsystem_pthread.dylib       	       0x189d4826c _pthread_start + 148
4   libsystem_pthread.dylib       	       0x189d4308c thread_start + 8

Thread 23:: com.apple.coremedia.rootQueue.47
0   libsystem_kernel.dylib        	       0x189d0a904 semaphore_timedwait_trap + 8
1   libdispatch.dylib             	       0x189b847cc _dispatch_sema4_timedwait + 64
2   libdispatch.dylib             	       0x189b84dc0 _dispatch_semaphore_wait_slow + 76
3   libdispatch.dylib             	       0x189b956bc _dispatch_worker_thread + 312
4   libsystem_pthread.dylib       	       0x189d4826c _pthread_start + 148
5   libsystem_pthread.dylib       	       0x189d4308c thread_start + 8

Thread 24:: com.apple.coremedia.rootQueue.47
0   libsystem_kernel.dylib        	       0x189d0a904 semaphore_timedwait_trap + 8
1   libdispatch.dylib             	       0x189b847cc _dispatch_sema4_timedwait + 64
2   libdispatch.dylib             	       0x189b84dc0 _dispatch_semaphore_wait_slow + 76
3   libdispatch.dylib             	       0x189b956bc _dispatch_worker_thread + 312
4   libsystem_pthread.dylib       	       0x189d4826c _pthread_start + 148
5   libsystem_pthread.dylib       	       0x189d4308c thread_start + 8

Thread 25:: CVDisplayLink
0   libsystem_kernel.dylib        	       0x189d0e270 __psynch_cvwait + 8
1   libsystem_pthread.dylib       	       0x189d48868 _pthread_cond_wait + 1280
2   CoreVideo                     	       0x1913eeb4c CVDisplayLink::waitUntil(unsigned long long) + 324
3   CoreVideo                     	       0x1913ede7c CVDisplayLink::runIOThread() + 488
4   libsystem_pthread.dylib       	       0x189d4826c _pthread_start + 148
5   libsystem_pthread.dylib       	       0x189d4308c thread_start + 8

Thread 26:: com.apple.audio.IOThread.client
0   libsystem_kernel.dylib        	       0x189d0a8b0 mach_msg_trap + 8
1   libsystem_kernel.dylib        	       0x189d0ad20 mach_msg + 76
2   CoreAudio                     	       0x18ba59ef4 HALB_MachPort::SendSimpleMessageWithSimpleReply(unsigned int, unsigned int, int, int&, bool, unsigned int) + 104
3   CoreAudio                     	       0x18b8e7238 HALC_ProxyIOContext::IOWorkLoop() + 3396
4   CoreAudio                     	       0x18b8e5efc invocation function for block in HALC_ProxyIOContext::HALC_ProxyIOContext(unsigned int, unsigned int) + 100
5   CoreAudio                     	       0x18bab2304 HALB_IOThread::Entry(void*) + 88
6   libsystem_pthread.dylib       	       0x189d4826c _pthread_start + 148
7   libsystem_pthread.dylib       	       0x189d4308c thread_start + 8


Thread 5 crashed with ARM Thread State (64-bit):
    x0: 0x0000600003900960   x1: 0x000000019723cebc   x2: 0x0000000000000009   x3: 0x0000000000000086
    x4: 0x0000000000000000   x5: 0xf00000000000008b   x6: 0x0000600003314780   x7: 0x0000000000000000
    x8: 0x000069ec504c0960   x9: 0x000069ec504c0960  x10: 0xfffffffe00000000  x11: 0x000000030000000d
   x12: 0x000000010000000d  x13: 0x00000000bcc12843  x14: 0x00000000bce13000  x15: 0x0000000000000026
   x16: 0x0000000189bd09b0  x17: 0x000000003ce00000  x18: 0x0000000000000000  x19: 0x0000000000000004
   x20: 0x400060000371a080  x21: 0x0000000000000003  x22: 0x0000000000000000  x23: 0x0000000000000000
   x24: 0x0000000000000000  x25: 0x0000600003314780  x26: 0x0000000000000001  x27: 0x00006000013fc400
   x28: 0x0000600003900960   fp: 0x000000016b0ee8b0   lr: 0x00000001050faffc
    sp: 0x000000016b0ee700   pc: 0x0000000189bd09c0 cpsr: 0x20001000
   far: 0x000069ec504c0980  esr: 0x92000005 (Data Abort) byte read Translation fault

Binary Images:
       0x189d09000 -        0x189d40fff libsystem_kernel.dylib (*) <03f48dc5-caa7-3678-af61-1a3c7fa8b06e> /usr/lib/system/libsystem_kernel.dylib
       0x189d90000 -        0x18a2d6fff com.apple.CoreFoundation (6.9) <994db908-11a1-3e43-b7df-25c09d51368a> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
       0x192a19000 -        0x192d4cfff com.apple.HIToolbox (2.1.1) <f842b96a-54f3-36f3-9b94-b258fae1b7eb> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox
       0x18c938000 -        0x18d7effff com.apple.AppKit (6.9) <a773dd23-b1c8-3c9b-9175-9a71d210ace0> /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit
       0x104fc8000 -        0x1051fffff com.colliderli.iina (1.3.0) <f7a5a99b-6f8a-3f45-b5a3-47523f809c97> /Applications/IINA.app/Contents/MacOS/IINA
       0x10577c000 -        0x1057dbfff dyld (*) <d9c2a46e-8dc4-3950-9d6a-f799e8ccb683> /usr/lib/dyld
       0x189d41000 -        0x189d4dfff libsystem_pthread.dylib (*) <42166a2c-89a9-3c38-a215-f028544cea23> /usr/lib/system/libsystem_pthread.dylib
       0x1060c0000 -        0x10639bfff libmpv.1.dylib (*) <e8089b8a-8ba0-3583-a8f2-e724a48fa25f> /Applications/IINA.app/Contents/Frameworks/libmpv.1.dylib
       0x190c87000 -        0x190fb4fff com.apple.QuartzCore (1.11) <7a5838a0-104b-3896-9c99-66ee81786497> /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore
       0x189b80000 -        0x189bc6fff libdispatch.dylib (*) <f9300d47-d3db-3349-8a6d-acb68cd9983b> /usr/lib/system/libdispatch.dylib
       0x189bc7000 -        0x189c04fff libobjc.A.dylib (*) <6ffccf84-5e0f-34b2-bcbb-bcf98407ea05> /usr/lib/libobjc.A.dylib
       0x105fd4000 -        0x106047fff libluajit-5.1.2.dylib (*) <c08d77bb-69f3-3500-9f10-4ed3807b985f> /Applications/IINA.app/Contents/Frameworks/libluajit-5.1.2.dylib
       0x192798000 -        0x1927befff com.apple.audio.caulk (1.0) <af5b85d3-350b-3b8f-9d21-5d4b431dbcd9> /System/Library/PrivateFrameworks/caulk.framework/Versions/A/caulk
       0x1913eb000 -        0x191448fff com.apple.CoreVideo (1.8) <66746bae-3892-303b-8144-e8568a7904e7> /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo
       0x18b725000 -        0x18be48fff com.apple.audio.CoreAudio (5.0) <4a0bb421-67c9-3849-a01e-a67d27fc1604> /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio
               0x0 - 0xffffffffffffffff ??? (*) <00000000-0000-0000-0000-000000000000> ???

External Modification Summary:
  Calls made by other processes targeting this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by all processes on this machine:
    task_for_pid: 34
    thread_create: 0
    thread_set_state: 1378

VM Region Summary:
ReadOnly portion of Libraries: Total=1.1G resident=0K(0%) swapped_out_or_unallocated=1.1G(100%)
Writable regions: Total=1.7G written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=1.7G(100%)

                                VIRTUAL   REGION 
REGION TYPE                        SIZE    COUNT (non-coalesced) 
===========                     =======  ======= 
Accelerate framework               384K        3 
Activity Tracing                   256K        1 
CG backing stores                 4032K        4 
CG image                          1504K       19 
ColorSync                          576K       29 
CoreAnimation                     8064K      105 
CoreGraphics                        32K        2 
CoreMedia memory pool              160K        4 
CoreServices                       144K        1 
CoreUI image data                 3616K       27 
Foundation                          16K        1 
Kernel Alloc Once                   32K        1 
MALLOC                           321.8M       61 
MALLOC guard page                  192K       12 
MALLOC_MEDIUM (reserved)         952.0M        8         reserved VM address space (unallocated)
MALLOC_NANO (reserved)           384.0M        1         reserved VM address space (unallocated)
OpenGL GLSL                        384K        5 
STACK GUARD                       56.4M       27 
Stack                             21.8M       27 
VM_ALLOCATE                       1584K       30 
VM_ALLOCATE (reserved)              32K        1         reserved VM address space (unallocated)
__AUTH                            2586K      310 
__AUTH_CONST                      20.5M      505 
__CTF                               756        1 
__DATA                            25.3M      570 
__DATA_CONST                      20.4M      578 
__DATA_DIRTY                      1801K      209 
__FONT_DATA                          4K        1 
__GLSLBUILTINS                    5176K        1 
__LINKEDIT                       587.6M       72 
__OBJC_CONST                      3608K      275 
__OBJC_RO                         83.0M        1 
__OBJC_RW                         3152K        1 
__TEXT                           540.0M      596 
__UNICODE                          592K        1 
dyld private memory               1024K        1 
mapped file                      162.2M       28 
shared memory                      848K       15 
===========                     =======  ======= 
TOTAL                              3.1G     3534 
TOTAL, minus reserved VM space     1.8G     3534 



-----------
Full Report
-----------

{"app_name":"IINA","timestamp":"2022-06-12 16:06:05.00 -0400","app_version":"1.3.0","slice_uuid":"f7a5a99b-6f8a-3f45-b5a3-47523f809c97","build_version":"132","platform":1,"bundleID":"com.colliderli.iina","share_with_app_devs":0,"is_first_party":0,"bug_type":"309","os_version":"macOS 12.4 (21F79)","incident_id":"766EDC57-8A98-4B48-A4EB-F61ED960FBA1","name":"IINA"}
{
  "uptime" : 130000,
  "procLaunch" : "2022-06-12 16:05:59.8431 -0400",
  "procRole" : "Foreground",
  "version" : 2,
  "userID" : 503,
  "deployVersion" : 210,
  "modelCode" : "MacBookPro18,2",
  "procStartAbsTime" : 3265666054133,
  "coalitionID" : 11124,
  "osVersion" : {
    "train" : "macOS 12.4",
    "build" : "21F79",
    "releaseType" : "User"
  },
  "captureTime" : "2022-06-12 16:06:02.9693 -0400",
  "incident" : "766EDC57-8A98-4B48-A4EB-F61ED960FBA1",
  "bug_type" : "309",
  "pid" : 8753,
  "procExitAbsTime" : 3265740872633,
  "translated" : false,
  "cpuType" : "ARM-64",
  "procName" : "IINA",
  "procPath" : "\/Applications\/IINA.app\/Contents\/MacOS\/IINA",
  "bundleInfo" : {"CFBundleShortVersionString":"1.3.0","CFBundleVersion":"132","CFBundleIdentifier":"com.colliderli.iina"},
  "storeInfo" : {"deviceIdentifierForVendor":"02535DB4-7C5B-59A5-8C77-DAE0F69E2F3F","thirdParty":true},
  "parentProc" : "launchd",
  "parentPid" : 1,
  "coalitionName" : "com.colliderli.iina",
  "crashReporterKey" : "C8F97525-3322-572C-B9CE-A91EB243AC3C",
  "wakeTime" : 6415,
  "sleepWakeUUID" : "7E20F5A1-8C1B-4DE3-AFC7-D94A7567A16D",
  "sip" : "enabled",
  "vmRegionInfo" : "0x69ec504c0980 is not in any region.  Bytes after previous region: 10910027221377  \n      REGION TYPE                    START - END         [ VSIZE] PRT\/MAX SHRMOD  REGION DETAIL\n      MALLOC_NANO (reserved)   600018000000-600020000000 [128.0M] rw-\/rwx SM=NUL  ...(unallocated)\n--->  \n      UNUSED SPACE AT END",
  "isCorpse" : 1,
  "exception" : {"codes":"0x0000000000000001, 0x000069ec504c0980","rawCodes":[1,116463680358784],"type":"EXC_BAD_ACCESS","signal":"SIGSEGV","subtype":"KERN_INVALID_ADDRESS at 0x000069ec504c0980"},
  "termination" : {"flags":0,"code":11,"namespace":"SIGNAL","indicator":"Segmentation fault: 11","byProc":"exc handler","byPid":8753},
  "vmregioninfo" : "0x69ec504c0980 is not in any region.  Bytes after previous region: 10910027221377  \n      REGION TYPE                    START - END         [ VSIZE] PRT\/MAX SHRMOD  REGION DETAIL\n      MALLOC_NANO (reserved)   600018000000-600020000000 [128.0M] rw-\/rwx SM=NUL  ...(unallocated)\n--->  \n      UNUSED SPACE AT END",
  "extMods" : {"caller":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"system":{"thread_create":0,"thread_set_state":1378,"task_for_pid":34},"targeted":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"warnings":0},
  "faultingThread" : 5,
  "threads" : [{"id":1769598,"queue":"com.apple.main-thread","frames":[{"imageOffset":6320,"symbol":"mach_msg_trap","symbolLocation":8,"imageIndex":0},{"imageOffset":7456,"symbol":"mach_msg","symbolLocation":76,"imageIndex":0},{"imageOffset":545456,"symbol":"__CFRunLoopServiceMachPort","symbolLocation":372,"imageIndex":1},{"imageOffset":538464,"symbol":"__CFRunLoopRun","symbolLocation":1180,"imageIndex":1},{"imageOffset":535332,"symbol":"CFRunLoopRunSpecific","symbolLocation":600,"imageIndex":1},{"imageOffset":205624,"symbol":"RunCurrentEventLoopInMode","symbolLocation":292,"imageIndex":2},{"imageOffset":204980,"symbol":"ReceiveNextEventCommon","symbolLocation":564,"imageIndex":2},{"imageOffset":204392,"symbol":"_BlockUntilNextEventMatchingListInModeWithFilter","symbolLocation":72,"imageIndex":2},{"imageOffset":268172,"symbol":"_DPSNextEvent","symbolLocation":860,"imageIndex":3},{"imageOffset":262276,"symbol":"-[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:]","symbolLocation":1328,"imageIndex":3},{"imageOffset":205392,"symbol":"-[NSApplication run]","symbolLocation":596,"imageIndex":3},{"imageOffset":14700,"symbol":"NSApplicationMain","symbolLocation":1132,"imageIndex":3},{"imageOffset":43840,"symbol":"main","symbolLocation":12,"imageIndex":4},{"imageOffset":20620,"symbol":"start","symbolLocation":520,"imageIndex":5}]},{"id":1769618,"frames":[{"imageOffset":8312,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":6}]},{"id":1769619,"queue":"com.colliderli.iina.mpvgl","frames":[{"imageOffset":21104,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":0},{"imageOffset":30780,"symbol":"_pthread_cond_wait","symbolLocation":1236,"imageIndex":6},{"imageOffset":897920,"symbol":"mpv_render_context_render","symbolLocation":788,"imageIndex":7},{"imageOffset":1030428,"symbol":"specialized closure #1 in closure #1 in ViewLayer.draw(inCGLContext:pixelFormat:forLayerTime:displayTime:)","symbolLocation":144,"imageIndex":4},{"imageOffset":1024396,"symbol":"closure #1 in ViewLayer.draw(inCGLContext:pixelFormat:forLayerTime:displayTime:)","symbolLocation":156,"imageIndex":4},{"imageOffset":1030792,"symbol":"specialized ViewLayer.draw(inCGLContext:pixelFormat:forLayerTime:displayTime:)","symbolLocation":340,"imageIndex":4},{"imageOffset":1024488,"symbol":"@objc ViewLayer.draw(inCGLContext:pixelFormat:forLayerTime:displayTime:)","symbolLocation":28,"imageIndex":4},{"imageOffset":767684,"symbol":"CAOpenGLLayerDraw(CAOpenGLLayer*, double, CVTimeStamp const*, unsigned int)","symbolLocation":1520,"imageIndex":8},{"imageOffset":765672,"symbol":"-[CAOpenGLLayer _display]","symbolLocation":584,"imageIndex":8},{"imageOffset":1025340,"symbol":"@objc ViewLayer.display()","symbolLocation":60,"imageIndex":4},{"imageOffset":1024612,"symbol":"ViewLayer.draw(forced:)","symbolLocation":108,"imageIndex":4},{"imageOffset":1443436,"symbol":"partial apply for closure #1 in mpvUpdateCallback(_:)","symbolLocation":24,"imageIndex":4},{"imageOffset":1388600,"symbol":"thunk for @escaping @callee_guaranteed () -> ()","symbolLocation":28,"imageIndex":4},{"imageOffset":9712,"symbol":"_dispatch_call_block_and_release","symbolLocation":32,"imageIndex":9},{"imageOffset":16820,"symbol":"_dispatch_client_callout","symbolLocation":20,"imageIndex":9},{"imageOffset":47272,"symbol":"_dispatch_lane_serial_drain","symbolLocation":668,"imageIndex":9},{"imageOffset":50180,"symbol":"_dispatch_lane_invoke","symbolLocation":392,"imageIndex":9},{"imageOffset":93336,"symbol":"_dispatch_workloop_worker_thread","symbolLocation":648,"imageIndex":9},{"imageOffset":13152,"symbol":"_pthread_wqthread","symbolLocation":288,"imageIndex":6},{"imageOffset":8320,"symbol":"start_wqthread","symbolLocation":8,"imageIndex":6}]},{"id":1769622,"queue":"com.colliderli.iina.controller","frames":[{"imageOffset":1279484,"symbol":"PlayerCore.getTrackInfo()","symbolLocation":588,"imageIndex":4},{"imageOffset":1284848,"symbol":"PlayerCore.getTrackInfo()","symbolLocation":5952,"imageIndex":4},{"imageOffset":1262060,"symbol":"PlayerCore.trackListChanged()","symbolLocation":112,"imageIndex":4},{"imageOffset":1422600,"symbol":"MPVController.handlePropertyChange(_:_:)","symbolLocation":9144,"imageIndex":4},{"imageOffset":1409656,"symbol":"MPVController.handleEvent(_:)","symbolLocation":1572,"imageIndex":4},{"imageOffset":1437648,"symbol":"partial apply for closure #1 in MPVController.readEvents()","symbolLocation":32,"imageIndex":4},{"imageOffset":1388600,"symbol":"thunk for @escaping @callee_guaranteed () -> ()","symbolLocation":28,"imageIndex":4},{"imageOffset":9712,"symbol":"_dispatch_call_block_and_release","symbolLocation":32,"imageIndex":9},{"imageOffset":16820,"symbol":"_dispatch_client_callout","symbolLocation":20,"imageIndex":9},{"imageOffset":47272,"symbol":"_dispatch_lane_serial_drain","symbolLocation":668,"imageIndex":9},{"imageOffset":50180,"symbol":"_dispatch_lane_invoke","symbolLocation":392,"imageIndex":9},{"imageOffset":93336,"symbol":"_dispatch_workloop_worker_thread","symbolLocation":648,"imageIndex":9},{"imageOffset":13152,"symbol":"_pthread_wqthread","symbolLocation":288,"imageIndex":6},{"imageOffset":8320,"symbol":"start_wqthread","symbolLocation":8,"imageIndex":6}]},{"id":1769623,"frames":[{"imageOffset":8312,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":6}]},{"triggered":true,"id":1769638,"threadState":{"x":[{"value":105553176037728},{"value":6830673596,"symbolLocation":0,"symbol":"_swift_release_"},{"value":9},{"value":134},{"value":0},{"value":17293822569102704779},{"value":105553169827712},{"value":0},{"value":116463680358752},{"value":116463680358752},{"value":18446744065119617024},{"value":12884901901},{"value":4294967309},{"value":3166775363},{"value":3168874496},{"value":38},{"value":6605834672,"symbolLocation":0,"symbol":"objc_release"},{"value":1021313024},{"value":0},{"value":4},{"value":4611791571601432704},{"value":3},{"value":0},{"value":0},{"value":0},{"value":105553169827712},{"value":1},{"value":105553137222656},{"value":105553176037728}],"flavor":"ARM_THREAD_STATE64","lr":{"value":4379881468},"cpsr":{"value":536875008},"fp":{"value":6091106480},"sp":{"value":6091106048},"esr":{"value":2449473541,"description":"(Data Abort) byte read Translation fault"},"pc":{"value":6605834688,"matchesCrashFrame":1},"far":{"value":116463680358784}},"queue":"IINAPlayerCoreTask","frames":[{"imageOffset":39360,"symbol":"objc_release","symbolLocation":16,"imageIndex":10},{"imageOffset":1257468,"symbol":"closure #3 in PlayerCore.fileStarted(path:)","symbolLocation":1608,"imageIndex":4},{"imageOffset":1388600,"symbol":"thunk for @escaping @callee_guaranteed () -> ()","symbolLocation":28,"imageIndex":4},{"imageOffset":9712,"symbol":"_dispatch_call_block_and_release","symbolLocation":32,"imageIndex":9},{"imageOffset":16820,"symbol":"_dispatch_client_callout","symbolLocation":20,"imageIndex":9},{"imageOffset":47272,"symbol":"_dispatch_lane_serial_drain","symbolLocation":668,"imageIndex":9},{"imageOffset":50180,"symbol":"_dispatch_lane_invoke","symbolLocation":392,"imageIndex":9},{"imageOffset":93336,"symbol":"_dispatch_workloop_worker_thread","symbolLocation":648,"imageIndex":9},{"imageOffset":13152,"symbol":"_pthread_wqthread","symbolLocation":288,"imageIndex":6},{"imageOffset":8320,"symbol":"start_wqthread","symbolLocation":8,"imageIndex":6}]},{"id":1769639,"name":"*\/mpv core","frames":[{"imageOffset":21104,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":0},{"imageOffset":30780,"symbol":"_pthread_cond_wait","symbolLocation":1236,"imageIndex":6},{"imageOffset":367156,"symbol":"mp_dispatch_queue_process","symbolLocation":140,"imageIndex":7},{"imageOffset":593064,"symbol":"mp_wait_events","symbolLocation":80,"imageIndex":7},{"imageOffset":601584,"symbol":"run_playloop","symbolLocation":2344,"imageIndex":7},{"imageOffset":564300,"symbol":"mp_play_files","symbolLocation":6628,"imageIndex":7},{"imageOffset":458524,"symbol":"core_thread","symbolLocation":72,"imageIndex":7},{"imageOffset":29292,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":6},{"imageOffset":8332,"symbol":"thread_start","symbolLocation":8,"imageIndex":6}]},{"id":1769640,"frames":[{"imageOffset":8312,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":6}]},{"id":1769641,"frames":[{"imageOffset":8312,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":6}]},{"id":1769642,"frames":[{"imageOffset":8312,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":6}]},{"id":1769643,"frames":[{"imageOffset":8312,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":6}]},{"id":1769644,"name":"*\/log-file","frames":[{"imageOffset":21104,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":0},{"imageOffset":30780,"symbol":"_pthread_cond_wait","symbolLocation":1236,"imageIndex":6},{"imageOffset":142136,"symbol":"log_file_thread","symbolLocation":120,"imageIndex":7},{"imageOffset":29292,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":6},{"imageOffset":8332,"symbol":"thread_start","symbolLocation":8,"imageIndex":6}]},{"id":1769645,"name":"*\/lua script (ytdl_hook)","frames":[{"imageOffset":21104,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":0},{"imageOffset":30780,"symbol":"_pthread_cond_wait","symbolLocation":1236,"imageIndex":6},{"imageOffset":456628,"symbol":"wait_wakeup","symbolLocation":88,"imageIndex":7},{"imageOffset":459036,"symbol":"mpv_wait_event","symbolLocation":420,"imageIndex":7},{"imageOffset":571760,"symbol":"script_raw_wait_event","symbolLocation":120,"imageIndex":7},{"imageOffset":26680,"symbol":"lj_BC_FUNCC","symbolLocation":44,"imageIndex":11},{"imageOffset":78992,"symbol":"lua_pcall","symbolLocation":148,"imageIndex":11},{"imageOffset":26680,"symbol":"lj_BC_FUNCC","symbolLocation":44,"imageIndex":11},{"imageOffset":570436,"symbol":"load_scripts","symbolLocation":376,"imageIndex":7},{"imageOffset":26680,"symbol":"lj_BC_FUNCC","symbolLocation":44,"imageIndex":11},{"imageOffset":78992,"symbol":"lua_pcall","symbolLocation":148,"imageIndex":11},{"imageOffset":26680,"symbol":"lj_BC_FUNCC","symbolLocation":44,"imageIndex":11},{"imageOffset":79056,"symbol":"lua_cpcall","symbolLocation":28,"imageIndex":11},{"imageOffset":612004,"symbol":"run_script","symbolLocation":100,"imageIndex":7},{"imageOffset":612136,"symbol":"script_thread","symbolLocation":32,"imageIndex":7},{"imageOffset":29292,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":6},{"imageOffset":8332,"symbol":"thread_start","symbolLocation":8,"imageIndex":6}]},{"id":1769646,"name":"*\/lua script (stats)","frames":[{"imageOffset":21104,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":0},{"imageOffset":30780,"symbol":"_pthread_cond_wait","symbolLocation":1236,"imageIndex":6},{"imageOffset":456628,"symbol":"wait_wakeup","symbolLocation":88,"imageIndex":7},{"imageOffset":459036,"symbol":"mpv_wait_event","symbolLocation":420,"imageIndex":7},{"imageOffset":571760,"symbol":"script_raw_wait_event","symbolLocation":120,"imageIndex":7},{"imageOffset":26680,"symbol":"lj_BC_FUNCC","symbolLocation":44,"imageIndex":11},{"imageOffset":78992,"symbol":"lua_pcall","symbolLocation":148,"imageIndex":11},{"imageOffset":26680,"symbol":"lj_BC_FUNCC","symbolLocation":44,"imageIndex":11},{"imageOffset":570436,"symbol":"load_scripts","symbolLocation":376,"imageIndex":7},{"imageOffset":26680,"symbol":"lj_BC_FUNCC","symbolLocation":44,"imageIndex":11},{"imageOffset":78992,"symbol":"lua_pcall","symbolLocation":148,"imageIndex":11},{"imageOffset":26680,"symbol":"lj_BC_FUNCC","symbolLocation":44,"imageIndex":11},{"imageOffset":79056,"symbol":"lua_cpcall","symbolLocation":28,"imageIndex":11},{"imageOffset":612004,"symbol":"run_script","symbolLocation":100,"imageIndex":7},{"imageOffset":612136,"symbol":"script_thread","symbolLocation":32,"imageIndex":7},{"imageOffset":29292,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":6},{"imageOffset":8332,"symbol":"thread_start","symbolLocation":8,"imageIndex":6}]},{"id":1769647,"name":"*\/lua script (console)","frames":[{"imageOffset":21104,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":0},{"imageOffset":30780,"symbol":"_pthread_cond_wait","symbolLocation":1236,"imageIndex":6},{"imageOffset":456628,"symbol":"wait_wakeup","symbolLocation":88,"imageIndex":7},{"imageOffset":459036,"symbol":"mpv_wait_event","symbolLocation":420,"imageIndex":7},{"imageOffset":571760,"symbol":"script_raw_wait_event","symbolLocation":120,"imageIndex":7},{"imageOffset":26680,"symbol":"lj_BC_FUNCC","symbolLocation":44,"imageIndex":11},{"imageOffset":78992,"symbol":"lua_pcall","symbolLocation":148,"imageIndex":11},{"imageOffset":26680,"symbol":"lj_BC_FUNCC","symbolLocation":44,"imageIndex":11},{"imageOffset":570436,"symbol":"load_scripts","symbolLocation":376,"imageIndex":7},{"imageOffset":26680,"symbol":"lj_BC_FUNCC","symbolLocation":44,"imageIndex":11},{"imageOffset":78992,"symbol":"lua_pcall","symbolLocation":148,"imageIndex":11},{"imageOffset":26680,"symbol":"lj_BC_FUNCC","symbolLocation":44,"imageIndex":11},{"imageOffset":79056,"symbol":"lua_cpcall","symbolLocation":28,"imageIndex":11},{"imageOffset":612004,"symbol":"run_script","symbolLocation":100,"imageIndex":7},{"imageOffset":612136,"symbol":"script_thread","symbolLocation":32,"imageIndex":7},{"imageOffset":29292,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":6},{"imageOffset":8332,"symbol":"thread_start","symbolLocation":8,"imageIndex":6}]},{"id":1769649,"name":"*\/ipc socket listener","frames":[{"imageOffset":40624,"symbol":"poll","symbolLocation":8,"imageIndex":0},{"imageOffset":356168,"symbol":"ipc_thread","symbolLocation":368,"imageIndex":7},{"imageOffset":29292,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":6},{"imageOffset":8332,"symbol":"thread_start","symbolLocation":8,"imageIndex":6}]},{"id":1769650,"name":"AMCP Logging Spool","frames":[{"imageOffset":6380,"symbol":"semaphore_wait_trap","symbolLocation":8,"imageIndex":0},{"imageOffset":125484,"symbol":"caulk::mach::semaphore::wait_or_error()","symbolLocation":28,"imageIndex":12},{"imageOffset":10156,"symbol":"caulk::concurrent::details::worker_thread::run()","symbolLocation":56,"imageIndex":12},{"imageOffset":9164,"symbol":"void* caulk::thread_proxy<std::__1::tuple<caulk::thread::attributes, void (caulk::concurrent::details::worker_thread::*)(), std::__1::tuple<caulk::concurrent::details::worker_thread*> > >(void*)","symbolLocation":96,"imageIndex":12},{"imageOffset":29292,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":6},{"imageOffset":8332,"symbol":"thread_start","symbolLocation":8,"imageIndex":6}]},{"id":1769661,"frames":[{"imageOffset":8312,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":6}]},{"id":1769662,"frames":[{"imageOffset":8312,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":6}]},{"id":1769708,"name":"com.apple.NSEventThread","frames":[{"imageOffset":6320,"symbol":"mach_msg_trap","symbolLocation":8,"imageIndex":0},{"imageOffset":7456,"symbol":"mach_msg","symbolLocation":76,"imageIndex":0},{"imageOffset":545456,"symbol":"__CFRunLoopServiceMachPort","symbolLocation":372,"imageIndex":1},{"imageOffset":538464,"symbol":"__CFRunLoopRun","symbolLocation":1180,"imageIndex":1},{"imageOffset":535332,"symbol":"CFRunLoopRunSpecific","symbolLocation":600,"imageIndex":1},{"imageOffset":1762164,"symbol":"_NSEventThread","symbolLocation":196,"imageIndex":3},{"imageOffset":29292,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":6},{"imageOffset":8332,"symbol":"thread_start","symbolLocation":8,"imageIndex":6}]},{"id":1769755,"name":"*\/demux","frames":[{"imageOffset":21104,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":0},{"imageOffset":30780,"symbol":"_pthread_cond_wait","symbolLocation":1236,"imageIndex":6},{"imageOffset":163920,"symbol":"demux_thread","symbolLocation":236,"imageIndex":7},{"imageOffset":29292,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":6},{"imageOffset":8332,"symbol":"thread_start","symbolLocation":8,"imageIndex":6}]},{"id":1769756,"name":"*\/worker","frames":[{"imageOffset":21104,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":0},{"imageOffset":30780,"symbol":"_pthread_cond_wait","symbolLocation":1236,"imageIndex":6},{"imageOffset":373992,"symbol":"worker_thread","symbolLocation":80,"imageIndex":7},{"imageOffset":29292,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":6},{"imageOffset":8332,"symbol":"thread_start","symbolLocation":8,"imageIndex":6}]},{"id":1769757,"name":"*\/vo","frames":[{"imageOffset":21104,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":0},{"imageOffset":30780,"symbol":"_pthread_cond_wait","symbolLocation":1236,"imageIndex":6},{"imageOffset":889768,"symbol":"vo_thread","symbolLocation":1328,"imageIndex":7},{"imageOffset":29292,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":6},{"imageOffset":8332,"symbol":"thread_start","symbolLocation":8,"imageIndex":6}]},{"id":1769762,"name":"com.apple.coremedia.rootQueue.47","frames":[{"imageOffset":6404,"symbol":"semaphore_timedwait_trap","symbolLocation":8,"imageIndex":0},{"imageOffset":18380,"symbol":"_dispatch_sema4_timedwait","symbolLocation":64,"imageIndex":9},{"imageOffset":19904,"symbol":"_dispatch_semaphore_wait_slow","symbolLocation":76,"imageIndex":9},{"imageOffset":87740,"symbol":"_dispatch_worker_thread","symbolLocation":312,"imageIndex":9},{"imageOffset":29292,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":6},{"imageOffset":8332,"symbol":"thread_start","symbolLocation":8,"imageIndex":6}]},{"id":1769771,"name":"com.apple.coremedia.rootQueue.47","frames":[{"imageOffset":6404,"symbol":"semaphore_timedwait_trap","symbolLocation":8,"imageIndex":0},{"imageOffset":18380,"symbol":"_dispatch_sema4_timedwait","symbolLocation":64,"imageIndex":9},{"imageOffset":19904,"symbol":"_dispatch_semaphore_wait_slow","symbolLocation":76,"imageIndex":9},{"imageOffset":87740,"symbol":"_dispatch_worker_thread","symbolLocation":312,"imageIndex":9},{"imageOffset":29292,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":6},{"imageOffset":8332,"symbol":"thread_start","symbolLocation":8,"imageIndex":6}]},{"id":1769778,"name":"CVDisplayLink","frames":[{"imageOffset":21104,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":0},{"imageOffset":30824,"symbol":"_pthread_cond_wait","symbolLocation":1280,"imageIndex":6},{"imageOffset":15180,"symbol":"CVDisplayLink::waitUntil(unsigned long long)","symbolLocation":324,"imageIndex":13},{"imageOffset":11900,"symbol":"CVDisplayLink::runIOThread()","symbolLocation":488,"imageIndex":13},{"imageOffset":29292,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":6},{"imageOffset":8332,"symbol":"thread_start","symbolLocation":8,"imageIndex":6}]},{"id":1769779,"name":"com.apple.audio.IOThread.client","frames":[{"imageOffset":6320,"symbol":"mach_msg_trap","symbolLocation":8,"imageIndex":0},{"imageOffset":7456,"symbol":"mach_msg","symbolLocation":76,"imageIndex":0},{"imageOffset":3362548,"symbol":"HALB_MachPort::SendSimpleMessageWithSimpleReply(unsigned int, unsigned int, int, int&, bool, unsigned int)","symbolLocation":104,"imageIndex":14},{"imageOffset":1843768,"symbol":"HALC_ProxyIOContext::IOWorkLoop()","symbolLocation":3396,"imageIndex":14},{"imageOffset":1838844,"symbol":"invocation function for block in HALC_ProxyIOContext::HALC_ProxyIOContext(unsigned int, unsigned int)","symbolLocation":100,"imageIndex":14},{"imageOffset":3724036,"symbol":"HALB_IOThread::Entry(void*)","symbolLocation":88,"imageIndex":14},{"imageOffset":29292,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":6},{"imageOffset":8332,"symbol":"thread_start","symbolLocation":8,"imageIndex":6}]}],
  "usedImages" : [
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6607114240,
    "size" : 229376,
    "uuid" : "03f48dc5-caa7-3678-af61-1a3c7fa8b06e",
    "path" : "\/usr\/lib\/system\/libsystem_kernel.dylib",
    "name" : "libsystem_kernel.dylib"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6607667200,
    "CFBundleShortVersionString" : "6.9",
    "CFBundleIdentifier" : "com.apple.CoreFoundation",
    "size" : 5533696,
    "uuid" : "994db908-11a1-3e43-b7df-25c09d51368a",
    "path" : "\/System\/Library\/Frameworks\/CoreFoundation.framework\/Versions\/A\/CoreFoundation",
    "name" : "CoreFoundation",
    "CFBundleVersion" : "1863"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6755028992,
    "CFBundleShortVersionString" : "2.1.1",
    "CFBundleIdentifier" : "com.apple.HIToolbox",
    "size" : 3358720,
    "uuid" : "f842b96a-54f3-36f3-9b94-b258fae1b7eb",
    "path" : "\/System\/Library\/Frameworks\/Carbon.framework\/Versions\/A\/Frameworks\/HIToolbox.framework\/Versions\/A\/HIToolbox",
    "name" : "HIToolbox"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6653444096,
    "CFBundleShortVersionString" : "6.9",
    "CFBundleIdentifier" : "com.apple.AppKit",
    "size" : 15433728,
    "uuid" : "a773dd23-b1c8-3c9b-9175-9a71d210ace0",
    "path" : "\/System\/Library\/Frameworks\/AppKit.framework\/Versions\/C\/AppKit",
    "name" : "AppKit",
    "CFBundleVersion" : "2113.50.132"
  },
  {
    "source" : "P",
    "arch" : "arm64",
    "base" : 4378624000,
    "CFBundleShortVersionString" : "1.3.0",
    "CFBundleIdentifier" : "com.colliderli.iina",
    "size" : 2326528,
    "uuid" : "f7a5a99b-6f8a-3f45-b5a3-47523f809c97",
    "path" : "\/Applications\/IINA.app\/Contents\/MacOS\/IINA",
    "name" : "IINA",
    "CFBundleVersion" : "132"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 4386701312,
    "size" : 393216,
    "uuid" : "d9c2a46e-8dc4-3950-9d6a-f799e8ccb683",
    "path" : "\/usr\/lib\/dyld",
    "name" : "dyld"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6607343616,
    "size" : 53248,
    "uuid" : "42166a2c-89a9-3c38-a215-f028544cea23",
    "path" : "\/usr\/lib\/system\/libsystem_pthread.dylib",
    "name" : "libsystem_pthread.dylib"
  },
  {
    "source" : "P",
    "arch" : "arm64",
    "base" : 4396417024,
    "size" : 2998272,
    "uuid" : "e8089b8a-8ba0-3583-a8f2-e724a48fa25f",
    "path" : "\/Applications\/IINA.app\/Contents\/Frameworks\/libmpv.1.dylib",
    "name" : "libmpv.1.dylib"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6724022272,
    "CFBundleShortVersionString" : "1.11",
    "CFBundleIdentifier" : "com.apple.QuartzCore",
    "size" : 3334144,
    "uuid" : "7a5838a0-104b-3896-9c99-66ee81786497",
    "path" : "\/System\/Library\/Frameworks\/QuartzCore.framework\/Versions\/A\/QuartzCore",
    "name" : "QuartzCore",
    "CFBundleVersion" : "964.28"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6605504512,
    "size" : 290816,
    "uuid" : "f9300d47-d3db-3349-8a6d-acb68cd9983b",
    "path" : "\/usr\/lib\/system\/libdispatch.dylib",
    "name" : "libdispatch.dylib"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6605795328,
    "size" : 253952,
    "uuid" : "6ffccf84-5e0f-34b2-bcbb-bcf98407ea05",
    "path" : "\/usr\/lib\/libobjc.A.dylib",
    "name" : "libobjc.A.dylib"
  },
  {
    "source" : "P",
    "arch" : "arm64",
    "base" : 4395450368,
    "size" : 475136,
    "uuid" : "c08d77bb-69f3-3500-9f10-4ed3807b985f",
    "path" : "\/Applications\/IINA.app\/Contents\/Frameworks\/libluajit-5.1.2.dylib",
    "name" : "libluajit-5.1.2.dylib"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6752403456,
    "CFBundleShortVersionString" : "1.0",
    "CFBundleIdentifier" : "com.apple.audio.caulk",
    "size" : 159744,
    "uuid" : "af5b85d3-350b-3b8f-9d21-5d4b431dbcd9",
    "path" : "\/System\/Library\/PrivateFrameworks\/caulk.framework\/Versions\/A\/caulk",
    "name" : "caulk"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6731771904,
    "CFBundleShortVersionString" : "1.8",
    "CFBundleIdentifier" : "com.apple.CoreVideo",
    "size" : 385024,
    "uuid" : "66746bae-3892-303b-8144-e8568a7904e7",
    "path" : "\/System\/Library\/Frameworks\/CoreVideo.framework\/Versions\/A\/CoreVideo",
    "name" : "CoreVideo",
    "CFBundleVersion" : "475.2"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6634491904,
    "CFBundleShortVersionString" : "5.0",
    "CFBundleIdentifier" : "com.apple.audio.CoreAudio",
    "size" : 7487488,
    "uuid" : "4a0bb421-67c9-3849-a01e-a67d27fc1604",
    "path" : "\/System\/Library\/Frameworks\/CoreAudio.framework\/Versions\/A\/CoreAudio",
    "name" : "CoreAudio",
    "CFBundleVersion" : "5.0"
  },
  {
    "size" : 0,
    "source" : "A",
    "base" : 0,
    "uuid" : "00000000-0000-0000-0000-000000000000"
  }
],
  "sharedCache" : {
  "base" : 6604046336,
  "size" : 3136077824,
  "uuid" : "513553bb-5ca5-3b9e-a613-b0603ffe3038"
},
  "vmSummary" : "ReadOnly portion of Libraries: Total=1.1G resident=0K(0%) swapped_out_or_unallocated=1.1G(100%)\nWritable regions: Total=1.7G written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=1.7G(100%)\n\n                                VIRTUAL   REGION \nREGION TYPE                        SIZE    COUNT (non-coalesced) \n===========                     =======  ======= \nAccelerate framework               384K        3 \nActivity Tracing                   256K        1 \nCG backing stores                 4032K        4 \nCG image                          1504K       19 \nColorSync                          576K       29 \nCoreAnimation                     8064K      105 \nCoreGraphics                        32K        2 \nCoreMedia memory pool              160K        4 \nCoreServices                       144K        1 \nCoreUI image data                 3616K       27 \nFoundation                          16K        1 \nKernel Alloc Once                   32K        1 \nMALLOC                           321.8M       61 \nMALLOC guard page                  192K       12 \nMALLOC_MEDIUM (reserved)         952.0M        8         reserved VM address space (unallocated)\nMALLOC_NANO (reserved)           384.0M        1         reserved VM address space (unallocated)\nOpenGL GLSL                        384K        5 \nSTACK GUARD                       56.4M       27 \nStack                             21.8M       27 \nVM_ALLOCATE                       1584K       30 \nVM_ALLOCATE (reserved)              32K        1         reserved VM address space (unallocated)\n__AUTH                            2586K      310 \n__AUTH_CONST                      20.5M      505 \n__CTF                               756        1 \n__DATA                            25.3M      570 \n__DATA_CONST                      20.4M      578 \n__DATA_DIRTY                      1801K      209 \n__FONT_DATA                          4K        1 \n__GLSLBUILTINS                    5176K        1 \n__LINKEDIT                       587.6M       72 \n__OBJC_CONST                      3608K      275 \n__OBJC_RO                         83.0M        1 \n__OBJC_RW                         3152K        1 \n__TEXT                           540.0M      596 \n__UNICODE                          592K        1 \ndyld private memory               1024K        1 \nmapped file                      162.2M       28 \nshared memory                      848K       15 \n===========                     =======  ======= \nTOTAL                              3.1G     3534 \nTOTAL, minus reserved VM space     1.8G     3534 \n",
  "legacyInfo" : {
  "threadTriggered" : {
    "queue" : "IINAPlayerCoreTask"
  }
},
  "trialInfo" : {
  "rollouts" : [
    {
      "rolloutId" : "60da5e84ab0ca017dace9abf",
      "factorPackIds" : {

      },
      "deploymentId" : 240000008
    },
    {
      "rolloutId" : "61af99aeda72d16a4beb7756",
      "factorPackIds" : {

      },
      "deploymentId" : 240000213
    }
  ],
  "experiments" : [

  ]
}
}

Model: MacBookPro18,2, BootROM 7459.121.3, proc 10:8:2 processors, 64 GB, SMC 
Graphics: Apple M1 Max, Apple M1 Max, Built-In
Display: Color LCD, 3456 x 2234 Retina, Main, MirrorOff, Online
Memory Module: LPDDR5
AirPort: Wi-Fi, wl0: Apr  6 2022 05:55:54 version 20.90.45.0.8.7.118 FWID 01-e7138ff2
Bluetooth: Version (null), 0 services, 0 devices, 0 incoming serial ports
Network Service: Wi-Fi, AirPort, en0
USB Device: USB31Bus
USB Device: USB31Bus
USB Device: USB31Bus
Thunderbolt Bus: MacBook Pro, Apple Inc.
Thunderbolt Bus: MacBook Pro, Apple Inc.
Thunderbolt Bus: MacBook Pro, Apple Inc.

Steps to reproduce:
I've not been able to reproduce this crash. Hopefully the crash report identifies the issue.

  • MPV does not have this problem.

Unknown, but likely not given location of crash.

How often does this happen?
So far only once.

@saagarjha
Copy link
Member

Sounds like something TSan would probably catch

@low-batt
Copy link
Contributor Author

The thread sanitizer did not detect anything. Neither did other sanitizers I tried. Instead they detected an issue during termination. I entered a separate issue for that.

The thread for backgroundQueue crashed. Apparently it was executing within the closure for auto loading files. Maybe some other code corrupted memory? Race condition with multi-thread access to some swift Dictionary?

I will keep an eye out, but this is the first time I've ever seen a crash in this area.

Crashing Closure:
// Auto load
backgroundQueueTicket += 1
let shouldAutoLoadFiles = info.shouldAutoLoadFiles
let currentTicket = backgroundQueueTicket
backgroundQueue.async {
  // add files in same folder
  if shouldAutoLoadFiles {
    Logger.log("Started auto load", subsystem: self.subsystem)
    self.autoLoadFilesInCurrentFolder(ticket: currentTicket)
  }
  // auto load matched subtitles
  if let matchedSubs = self.info.matchedSubs[path] {
    Logger.log("Found \(matchedSubs.count) subs for current file", subsystem: self.subsystem)
    for sub in matchedSubs {
      guard currentTicket == self.backgroundQueueTicket else { return }
      self.loadExternalSubFile(sub)
    }
    // set sub to the first one
    guard currentTicket == self.backgroundQueueTicket, self.mpv.mpv != nil else { return }
    self.setTrack(1, forType: .sub)
  }
  self.autoSearchOnlineSub()
}

@low-batt
Copy link
Contributor Author

I looked into this some more. I suspect the TSan reported data race shown below is to blame. Multiple threads are accessing PlaybackInfo.matchedSubs, a Swift dictionary. That definitely can cause crashes.

I've added this to my list of thread related failures I need to address.

Xcode Console:
==================
WARNING: ThreadSanitizer: Swift access race (pid=18623)
  Modifying access of Swift variable at 0x00010fd64c20 by main thread:
    #0 PlaybackInfo.matchedSubs.modify <compiler-generated> (IINA:arm64+0x10013b90c)
    #1 PlayerCore.stop() PlayerCore.swift:550 (IINA:arm64+0x100641a94)
    #2 MainWindowController.windowWillClose(_:) MainWindowController.swift:1121 (IINA:arm64+0x100241acc)
    #3 @objc MainWindowController.windowWillClose(_:) <compiler-generated> (IINA:arm64+0x100242fec)
    #4 __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ <null>:105292008 (CoreFoundation:arm64e+0x79464)
    #5 @objc AppDelegate.applicationShouldTerminate(_:) <compiler-generated> (IINA:arm64+0x100344340)
    #6 -[NSApplication _docController:shouldTerminate:] <null>:105292008 (AppKit:arm64e+0x2d7250)
    #7 start <null>:105292008 (dyld:arm64e+0x5088)

  Previous read of size 8 at 0x00010fd64c20 by thread T3:
    #0 PlaybackInfo.matchedSubs.getter <compiler-generated> (IINA:arm64+0x10013b7c0)
    #1 closure #3 in PlayerCore.fileStarted(path:) PlayerCore.swift:1337 (IINA:arm64+0x10065f3a4)
    #2 partial apply for closure #3 in PlayerCore.fileStarted(path:) <compiler-generated> (IINA:arm64+0x10067e694)
    #3 thunk for @escaping @callee_guaranteed () -> () <compiler-generated> (IINA:arm64+0x100043930)
    #4 __tsan::invoke_and_release_block(void*) <null>:105292008 (libclang_rt.tsan_osx_dynamic.dylib:arm64e+0x83c88)
    #5 _dispatch_client_callout <null>:105292008 (libdispatch.dylib:arm64e+0x63a4)

  Location is heap block of size 616 at 0x00010fd64a00 allocated by main thread:
    #0 __sanitizer_mz_malloc <null>:105292008 (libclang_rt.tsan_osx_dynamic.dylib:arm64e+0x5c29c)
    #1 _malloc_zone_malloc <null>:105292008 (libsystem_malloc.dylib:arm64e+0x1e744)
    #2 PlayerCore.info.getter PlayerCore.swift:130 (IINA:arm64+0x10062d4a4)
    #3 MPVController.mpvInit() MPVController.swift:247 (IINA:arm64+0x1006bd300)
    #4 PlayerCore.startMPV() PlayerCore.swift:361 (IINA:arm64+0x10063a3a0)
    #5 static PlayerCore.createPlayerCore() PlayerCore.swift:67 (IINA:arm64+0x1006263e8)
    #6 static PlayerCore.newPlayerCore.getter PlayerCore.swift:38 (IINA:arm64+0x100626d9c)
    #7 static PlayerCore.activeOrNew.getter PlayerCore.swift:46 (IINA:arm64+0x100627068)
    #8 HistoryWindowController.doubleAction() HistoryWindowController.swift:121 (IINA:arm64+0x10048c4d8)
    #9 @objc HistoryWindowController.doubleAction() <compiler-generated> (IINA:arm64+0x10048c694)
    #10 -[NSApplication(NSResponder) sendAction:to:from:] <null>:105292008 (AppKit:arm64e+0x2455c4)
    #11 start <null>:105292008 (dyld:arm64e+0x5088)

  Thread T3 (tid=9822487, running) is a GCD worker thread

SUMMARY: ThreadSanitizer: Swift access race <compiler-generated> in PlaybackInfo.matchedSubs.modify
==================

@low-batt low-batt self-assigned this Oct 23, 2022
low-batt added a commit that referenced this issue Apr 9, 2023
This commit will:
- Add Atomic to PlaybackInfo.matchedSubs
- Add a getMatchedSubs method to PlaybackInfo
- Change AutoFileMatcher, PlayerCore and PlaylistViewController to hold
  a lock while accessing matchedSubs
- Add Atomic to PlayerCore.backgroundQueueTicket
- Change PlayerCore.fileStarted to hold a lock while incrementing
  backgroundQueueTicket
- Add code to PlayerCore.stop that increments backgroundQueueTicket

These changes insure the mutable Swift dictionary matchedSubs is only
accessed by one thread at a time. Accessing a mutable dictionary from
multiple threads without such coordination can result in a crash as seen
in issue #3822.

These changes also attempt to insure the background task that finds and
loads subtitle files stops its work if playback is stopped before that
process completes.
@low-batt low-batt linked a pull request Apr 9, 2023 that will close this issue
2 tasks
uiryuu pushed a commit that referenced this issue Apr 23, 2023
This commit will:
- Add Atomic to PlaybackInfo.matchedSubs
- Add a getMatchedSubs method to PlaybackInfo
- Change AutoFileMatcher, PlayerCore and PlaylistViewController to hold
  a lock while accessing matchedSubs
- Add Atomic to PlayerCore.backgroundQueueTicket
- Change PlayerCore.fileStarted to hold a lock while incrementing
  backgroundQueueTicket
- Add code to PlayerCore.stop that increments backgroundQueueTicket

These changes insure the mutable Swift dictionary matchedSubs is only
accessed by one thread at a time. Accessing a mutable dictionary from
multiple threads without such coordination can result in a crash as seen
in issue #3822.

These changes also attempt to insure the background task that finds and
loads subtitle files stops its work if playback is stopped before that
process completes.
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.

2 participants