New MacStudio Ultra 60 core 128 GB Ram
Apple Feedback Assistant ID: MISSING
DESCRIBE THE BUG: FCP is hanging when loading a project I previously finalised on a new machine. Everything installed from scratch no migration
TO REPRODUCE: Open project and try to do anything in project FCP will hang and needs to be forced quite
EXPECTED BEHAVIOUR: not to crash
SCREENSHOTS:
SPECS: Apple M1 Ultra Sonoma 14.4.1 128GB Ram
ADDITIONAL COMMENTS: Spindump.txt.zip
Twice I could re-produce it 3rd time I filmed and it would not hang
https://drive.google.com/file/d/15OhDWAWkbJ9eVm1ciU6IqGJzCrE-fJlM/view?usp=sharing
Can you list all the codecs in use in the project which hangs? It might be easier and more informative to just get the MediaInfo or Invisor output of each one and attach that to this bug report. Also in FCP do OPT+Help>Gather App Diagnostics and attach that. It puts the .gz file on your desktop.
The Resolve people are reporting red "Missing Media" warnings on some H.264 and HEVC codecs on M3 machines. Today I reproduced one problem on my M1 Ultra using both Resolve and FCP when playing or transcoding a 4k/23.98 8-bit 4:2:0 100 mbps clip from a DJI Inspire 2. That was FCP 10.7.1, Sonoma 14.3.1 and Resolve 18.6.6.
I'm still investigating that, but in the event your case is related to the M1 Ultra parallel decoders, we need to know the codecs.
I examined the spindump. Comments: Final Cut Pro is hanging or stuck in a deadlock situation involving multiple threads waiting on locks or resources held by other threads. Observations:
The main thread (Thread 0x16248d) is stuck in a dispatched block, ie GCD, waiting on a shared lock via the -[FFSharedLock _readLock:] method. This lock seems to be heavily contended.
Several other key threads are also stuck waiting on the same -[FFSharedLock _readLock:] call in various parts of the codebase:
Thread 0x162d3d - in +[FFMotionEffect _processEffectsNeedingVideoStreamClose:] Thread 0x1627ad - in -[FFSharedAudioUnitPoolEntry updateAudioUnitAllocationForFormatKey:timeLimit:] Thread 0x1627ac - in -[FFPlayerScheduledData _precalculateMD5_magicFrame_andCheckForLoadingFX:retCancelForWL:] Thread 0x162d50 - also in -[FFPlayerScheduledData _precalculateMD5_magicFrame_andCheckForLoadingFX:retCancelForWL:] Thread 0x162d3b - in -[FFThumbnailRequestManager _notifyRequestCompleted:withImage:] Thread 0x162d28 - in _FFModelLocker::_FFModelLocker(FFSharedLock*, FFModelLockAction) Thread 0x162de5 named "PRDecode1" appears to be stuck in a dispatch group wait related to ProRes decoding via the AppleProResCodecEmbedded framework.
FFPlayer is the FCP playback engine. FF=Flexo Framework, the main FCP private framework. FFplayer render threads 0x162ccf and 0x162cde are mostly idle, periodically waking up to do some work but getting stuck on condition variable waits.
In summary, it seems there is a deadlock around the heavily used FFSharedLock where multiple threads are stuck waiting to acquire a read lock on it. The contention spans areas like motion effects, audio unit allocation, frame thumbnail generation, ProRes decoding etc.
How can I find all codecs I have some mixed old archive footage there Can I take codes from FCP Inspector?
This is what in the FCP Codec field HEVC, MPEG-4 AAC HEVC, Linear PCM = Sony ZVE1 AVC1 = DJI Drone AVC Coding, Linear PCM 'avc1', AAC 'avc1', MPEG-4 AAC AAC, AVC encoder H.264, MPEG-4 AAC
In hindsight, I say the vast majority of crashes in FCP happen when trying to do something and often when loading new Libraries Projects and being too quick wanting to do something in FCP
and another one trying to export a project
Date/Time: 2024-03-29 21:06:36.868 +1100 End time: 2024-03-29 21:06:46.873 +1100 OS Version: macOS 14.4.1 (Build 23E224) Architecture: arm64e Report Version: 47
Data Source: Stackshots Shared Cache: A53B7D2F-A773-3524-8828-248B33EF0B4E slid base address 0x19d6e0000, slide 0x1d6e0000 (System Primary) Shared Cache: B8D5FF9B-B3B6-327C-A409-07449B1E60DA slid base address 0x7ff8031cc000, slide 0x31cc000 (Rosetta) Shared Cache: 13098735-1E37-3110-AEE0-E2292607B05F slid base address 0x196c60000, slide 0x16c60000 (DriverKit)
Duration: 10.00s Steps: 1001 (10ms sampling interval)
Hardware model: Mac13,2 Active cpus: 20 HW page size: 16384 VM page size: 16384
Time Since Boot: 44716s Time Awake Since Boot: 44716s Time Since Wake: n/a (machine hasn't slept)
Fan speed: 1325 rpm Total CPU Time: 17.987s (44.5G cycles, 108.5G instructions, 0.41c/i) Advisory levels: Battery -> 2, User -> 2, ThermalPressure -> 0, Combined -> 2 Free disk space: 497.84 GB/926.35 GB, low space threshold 3072 MB Vnodes Available: 77.22% (203225/263168)
Launchd throttled processes: gui/501/com.ACDSystems.ACDSeeCommander10 throttled after exit(): throttled samples 1-819, not throttled samples 820-821, throttled samples 822-1001
Preferred User Language: en-AU Country Code: AU Keyboards: Australian OS Cryptex File Extents: 1
Heavy format: stacks are sorted by count
Process: 1Password [587] UUID: 4C4C44BF-5555-3144-A18A-64CC9C6F27FA Path: /Applications/1Password.app/Contents/MacOS/1Password Identifier: com.1password.1password Version: 8.10.28 (8.10.28.209682) Team ID: 2BUA8C4S2C Is First Party: No Beta Identifier: 77025FF4-90D5-5CFB-92D5-DEC3BB3BF72D Shared Cache: A53B7D2F-A773-3524-8828-248B33EF0B4E slid base address 0x19d6e0000, slide 0x1d6e0000 (System Primary) Architecture: arm64 Parent: launchd [1] UID: 501 Footprint: 133.66 MB Time Since Fork: 44692s Num samples: 1001 (1-1001) CPU Time: 0.001s (1880.2K cycles, 1854.8K instructions, 1.01c/i) Num threads: 84 Note: 3 idle work queue threads omitted
Thread 0x1cd2 DispatchQueue "com.apple.main-thread"(1) Thread name "CrBrowserMain" 1001 samples (1-1001) priority 46 (base 46) cpu time <0.001s (1489.0K cycles, 1631.3K instructions, 0.91c/i) 1001 start + 2360 (dyld + 24800) [0x19d79e0e0] 1001 ElectronMain + 128 (Electron Framework + 2442188) [0x10d4683cc] 1001 v8::internal::compiler::BasicBlock::set_loop_header(v8::internal::compiler::BasicBlock*) + 12216 (Electron Framework + 5556148) [0x10d7607b4] 1001 v8::internal::compiler::BasicBlock::set_loop_header(v8::internal::compiler::BasicBlock*) + 11944 (Electron Framework + 5555876) [0x10d7606a4] 1001 v8::internal::compiler::BasicBlock::set_loop_header(v8::internal::compiler::BasicBlock*) + 17120 (Electron Framework + 5561052) [0x10d761adc] 1001 v8::internal::compiler::BasicBlock::set_loop_header(v8::internal::compiler::BasicBlock*) + 17552 (Electron Framework + 5561484) [0x10d761c8c] 1001 v8::internal::compiler::BasicBlock::set_loop_header(v8::internal::compiler::BasicBlock*) + 13756 (Electron Framework + 5557688) [0x10d760db8] 1001 v8::internal::SetupIsolateDelegate::SetupBuiltins(v8::internal::Isolate*, bool) + 3894536 (Electron Framework + 38469556) [0x10f6c3fb4] 1001 v8::internal::SetupIsolateDelegate::SetupBuiltins(v8::internal::Isolate*, bool) + 3910492 (Electron Framework + 38485512) [0x10f6c7e08] 1001 v8::internal::SetupIsolateDelegate::SetupBuiltins(v8::internal::Isolate*, bool) + 3903924 (Electron Framework + 38478944) [0x10f6c6460] 1001 v8::internal::SetupIsolateDelegate::SetupBuiltins(v8::internal::Isolate*, bool) + 18698804 (Electron Framework + 53273824) [0x1104e24e0] 1001 v8::internal::SetupIsolateDelegate::SetupBuiltins(v8::internal::Isolate*, bool) + 18911012 (Electron Framework + 53486032) [0x1105161d0] 1001 v8::internal::SetupIsolateDelegate::SetupBuiltins(v8::internal::Isolate*, bool) + 19181556 (Electron Framework + 53756576) [0x1105582a0] 1001 v8::internal::SetupIsolateDelegate::SetupBuiltins(v8::internal::Isolate*, bool) + 19189500 (Electron Framework + 53764520) [0x11055a1a8] 1001 -[NSApplication run] + 476 (AppKit + 187576) [0x1a144fcb8] 1001 -[NSApplication(NSEventRouting) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 700 (AppKit + 8572396) [0x1a1c4edec] 1001 _DPSNextEvent + 660 (AppKit + 239984) [0x1a145c970] 1001 _BlockUntilNextEventMatchingListInModeWithFilter + 76 (HIToolbox + 207764) [0x1a839eb94] 1001 ReceiveNextEventCommon + 648 (HIToolbox + 208444) [0x1a839ee3c] 1001 RunCurrentEventLoopInMode + 292 (HIToolbox + 208896) [0x1a839f000] 1001 CFRunLoopRunSpecific + 608 (CoreFoundation + 507404) [0x19dc03e0c] 1000 __CFRunLoopRun + 1208 (CoreFoundation + 510236) [0x19dc0491c] 1000 __CFRunLoopServiceMachPort + 160 (CoreFoundation + 516184) [0x19dc06058] 1000 mach_msg + 24 (libsystem_kernel.dylib + 5496) [0x19dae6578] 1000 mach_msg_overwrite + 476 (libsystem_kernel.dylib + 40500) [0x19daeee34] 1000 mach_msg2_trap + 8 (libsystem_kernel.dylib + 4596) [0x19dae61f4] 1000 ??? (kernel.release.t6000 + 231452) [0xfffffe000857481c] 1 __CFRunLoopRun + 1996 (CoreFoundation + 511024) [0x19dc04c30] 1 CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE + 16 (CoreFoundation + 783532) [0x19dc474ac] 1 _dispatch_main_queue_callback_4CF + 44 (libdispatch.dylib + 75724) [0x19d9847cc] 1 _dispatch_main_queue_drain + 748 (libdispatch.dylib + 76488) [0x19d984ac8] 1 _dispatch_source_invoke + 832 (libdispatch.dylib + 107444) [0x19d98c3b4] 1 _dispatch_source_latch_and_call + 420 (libdispatch.dylib + 112624) [0x19d98d7f0] 1 _dispatch_continuation_pop + 600 (libdispatch.dylib + 30956) [0x19d9798ec] 1 _dispatch_client_callout + 20 (libdispatch.dylib + 17384) [0x19d9763e8] 1 dispatch_mig_server + 432 (libdispatch.dylib + 140064) [0x19d994320] 1 _IODispatchCalloutWithDispatch + 44 (IOKit + 22956) [0x1a12db9ac] 1 IODispatchCalloutFromCFMessage + 328 (IOKit + 23300) [0x1a12dbb04] 1 v8::internal::CodeCommentsIterator::size() const + 67448 (Electron Framework + 2661496) [0x10d49dc78] 1 v8::internal::SetupIsolateDelegate::SetupBuiltins(v8::internal::Isolate, bool) + 19242524 (Electron Framework + 53817544) [0x1105670c8] 1 v8::internal::SetupIsolateDelegate::SetupBuiltins(v8::internal::Isolate*, bool) + 19241756 (Electron Framework + 53816776) [0x110566dc8] 1 IORegistryEntryCreateCFProperties + 152 (IOKit + 14944) [0x1a12d9a60] 1 io_registry_entry_get_properties_bin_buf + 164 (IOKit + 713244) [0x1a138421c] 1 mach_msg2_trap + 8 (libsystem_kernel.dylib + 4596) [0x19dae61f4] *1 ??? (kernel.release.t6000 + 31600) [0xfffffe0008543b70] *1 ??? (kernel.release.t6000 + 31656) [0xfffffe0008543ba8] *1 ??? (kernel.release.t6000 + 1728476) [0xfffffe00086e1fdc] *1 ??? (kernel.release.t6000 + 1684064) [0xfffffe00086d7260] *1 ??? (kernel.release.t6000 + 311464) [0xfffffe00085880a8] *1 ??? (kernel.release.t6000 + 310276) [0xfffffe0008587c04] *1 ??? (kernel.release.t6000 + 208532) [0xfffffe000856ee94] *1 ??? (kernel.release.t6000 + 395756) [0xfffffe000859c9ec] *1 ??? (kernel.release.t6000 + 1511084) [0xfffffe00086aceac]
very disheartening after a clean re-install of everything and on a Mac Ultra with 128 GB ram
I examined your latest spindump. There are several threads hung on AU (Audio Unit) functions. Are you using any third-party audio plugins? You are also using CoreMelt plugins. Are those all updated to the latest version?
I am working on a simple utility to extract the metadata from all files used in your timeline. That is needed for this case and in general. Attached is a process list extracted from your spindump, in case that helps subsequent troubleshooting. SpindumpProcessList.txt
A few more comments: The process list shows several instances of VTDecoderXPCService. That could imply the hang happens on the decode phase, before ever reaching the encode phase. Have you tried fully rendering the timeline before exporting it? IOW select all clips with CMD+A, then render them to cache with CTRL+R. The results might tell us something.
The PFS processes are likely Pixel Film Studios plugins. There have long been reliability problems with those but I don't have first hand current information.
The process list also implies you are running the Chrome browser. There was previously an issue whereby Chrome would misuse the MacOS Video Toolbox framework, thereby destabilizing FCP. I think was supposedly fixed around 2020 or 2021, but the people on the Apple Support FCP forum frequently tell users to remove Chrome and they have a whole procedure for that. You could try disabling hardware acceleration in Chrome:
- Go to Chrome's settings (chrome://settings/).
- Click on "Advanced" and then "System."
- Disable the "Use hardware acceleration when available" option.
Current versions of FCP and third-party plugins use the FxPlug 4.x framework, which runs plugin code in external host processes. This was intended to be more reliable than the previous FxPlug 3.x method of running those within the FCP process. However there are still lingering cases where a misbehaved plugin can destabilize or crash FCP.
There are also cases where developers of audio plugins have not updated their produces to Apple Silicon. Since Rosetta 2 does not support mixed x86/ARM code, that would normally make it impossible to run those x86 plugins on Apple Silicon. However those developers sometimes recommend a procedure of forcing the x86 plugin to run under Rosetta in a separate process. I'm not sure what Apple's position on that is.
Hi Joe,
Thanks for the help. Yes, on this crash, I did not Render just clicked export, and yes, I did use one non apple audio plug in a Clarity Waves De-verb plug-in, which seems like it does not support FCP anymore. I deleted them now.
I've been using Opera as my main Browser for quite some time. I think it's based on Chrome. I have now disabled the Graphic acceleration.
I restarted FCP rendered first and it did not crash.
FCP is so sensible and finicky