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

New MacStudio Ultra 60 core 128 GB Ram #348

Open
stevef243 opened this issue Mar 27, 2024 · 8 comments
Open

New MacStudio Ultra 60 core 128 GB Ram #348

stevef243 opened this issue Mar 27, 2024 · 8 comments

Comments

@stevef243
Copy link

stevef243 commented Mar 27, 2024

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:

CleanShot 2024-03-27 at 23 54 24@2x


SPECS:
Apple M1 Ultra Sonoma 14.4.1
128GB Ram


ADDITIONAL COMMENTS:
Spindump.txt.zip

@stevef243
Copy link
Author

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

@joema4
Copy link

joema4 commented Mar 27, 2024

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.

@stevef243
Copy link
Author

stevef243 commented Mar 27, 2024

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

CleanShot 2024-03-28 at 08 43 25@2x

@stevef243
Copy link
Author

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]

@stevef243
Copy link
Author

Spindump29.3.24.txt.zip
CleanShot 2024-03-29 at 21 10 37@2x

very disheartening after a clean re-install of everything and on a Mac Ultra with 128 GB ram

@joema4
Copy link

joema4 commented Mar 29, 2024

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

@joema4
Copy link

joema4 commented Mar 29, 2024

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.

@stevef243
Copy link
Author

stevef243 commented Mar 29, 2024

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants