Crashed when exporting to ProRes
Apple Feedback Assistant ID: FB13545557
DESCRIBE THE BUG:
Crashed when exporting ProRes timeline.
CRASH REPORT:
Full crash report: https://gist.github.com/latenitefilms/df20eaabde8661b7ff4a6bec33988b15
-------------------------------------
Translated Report (Full Report Below)
-------------------------------------
Process: Final Cut Pro [94521]
Path: /Applications/Final Cut Pro.app/Contents/MacOS/Final Cut Pro
Identifier: com.apple.FinalCut
Version: 10.7.1 (410082)
Build Info: ProEditor-41000082016000000~12 (1D1004)
App Item ID: 424389933
App External ID: 861999800
Code Type: ARM-64 (Native)
Parent Process: launchd [1]
User ID: 501
Date/Time: 2024-01-17 15:08:45.1721 +1100
OS Version: macOS 14.1.2 (23B92)
Report Version: 12
Anonymous UUID: CF7BEE6E-B8B3-12C6-A359-37A97C616B4B
Sleep/Wake UUID: 6915414B-CE11-4248-9A5A-82831E9E5C8A
Time Awake Since Boot: 110000 seconds
Time Since Wake: 867 seconds
System Integrity Protection: enabled
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x000000000000003e
Exception Codes: 0x0000000000000001, 0x000000000000003e
Termination Reason: Namespace SIGNAL, Code 11 Segmentation fault: 11
Terminating Process: exc handler [94521]
VM Region Info: 0x3e is not in any region. Bytes before following region: 4362256322
REGION TYPE START - END [ VSIZE] PRT/MAX SHRMOD REGION DETAIL
UNUSED SPACE AT START
--->
__TEXT 10402c000-104108000 [ 880K] r-x/r-x SM=COW ...Final Cut Pro
Kernel Triage:
VM - (arg = 0x3) mach_vm_allocate_kernel failed within call to vm_map_enter
VM - (arg = 0x3) mach_vm_allocate_kernel failed within call to vm_map_enter
VM - (arg = 0x3) mach_vm_allocate_kernel failed within call to vm_map_enter
VM - (arg = 0x3) mach_vm_allocate_kernel failed within call to vm_map_enter
VM - (arg = 0x3) mach_vm_allocate_kernel failed within call to vm_map_enter
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libobjc.A.dylib 0x187ed9434 objc_msgSend + 52
1 Flexo 0x10bc04ea4 -[FFAnchoredCollection invalidateSourceRange:forType:withUserInfo:] + 460
2 Flexo 0x10ba38884 -[FFAnchoredObject invalidateSourceRange:forType:withUserInfo:] + 232
3 Flexo 0x10bc18230 -[FFAnchoredMediaComponent invalidateSourceRange:forType:withUserInfo:] + 96
4 Flexo 0x10bc18a40 -[FFAnchoredMediaComponent _rangeInvalidated:] + 428
5 Flexo 0x10b66ca20 Observers::Notify((anonymous namespace)::Notification const&) + 344
6 Flexo 0x10b66c81c +[FFNotificationCenter postNotification:] + 72
7 Flexo 0x10b66caf8 +[FFNotificationCenter postNotificationName:object:userInfo:] + 60
8 Flexo 0x10bf373dc -[FFMediaRef sourceRangeInvalidated:] + 260
9 Flexo 0x10b66ca20 Observers::Notify((anonymous namespace)::Notification const&) + 344
10 Flexo 0x10b66c81c +[FFNotificationCenter postNotification:] + 72
11 Flexo 0x10b66caf8 +[FFNotificationCenter postNotificationName:object:userInfo:] + 60
12 Flexo 0x10b7cd86c -[FFMedia invalidateSourceRange:] + 80
13 Flexo 0x10b7b2170 -[FFAsset _updateVideoProps:] + 220
14 Flexo 0x10b7b2334 -[FFAsset addMediaRepForURL:repType:manageFileType:project:showRepAsMissing:] + 408
15 Flexo 0x10b7b6918 -[FFAsset relinkMedia:repType:manageFileType:fileContentChanged:error:] + 76
16 Flexo 0x10baff88c __155-[FFMediaEventController _updateModifiedMediaRep:forRequest:finishedDownload:forceUpdateForProjUpdate:retryIfFileIsChanging:forceRelink:completionHandler:]_block_invoke.82 + 2008
17 Flexo 0x10bb00210 __155-[FFMediaEventController _updateModifiedMediaRep:forRequest:finishedDownload:forceUpdateForProjUpdate:retryIfFileIsChanging:forceRelink:completionHandler:]_block_invoke_2.131 + 20
18 Flexo 0x10b9df764 -[FFUndoHandler performNonUndoableAction:withBlock:] + 188
19 Flexo 0x10bb001ec __155-[FFMediaEventController _updateModifiedMediaRep:forRequest:finishedDownload:forceUpdateForProjUpdate:retryIfFileIsChanging:forceRelink:completionHandler:]_block_invoke.129 + 100
20 libdispatch.dylib 0x1046f8f14 _dispatch_call_block_and_release + 32
21 libdispatch.dylib 0x1046fab4c _dispatch_client_callout + 20
22 libdispatch.dylib 0x10470ddcc _dispatch_main_queue_drain + 1100
23 libdispatch.dylib 0x10470d970 _dispatch_main_queue_callback_4CF + 44
24 CoreFoundation 0x1883bf15c __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 16
25 CoreFoundation 0x18837ca80 __CFRunLoopRun + 1996
26 CoreFoundation 0x18837bc5c CFRunLoopRunSpecific + 608
27 HIToolbox 0x1928f8448 RunCurrentEventLoopInMode + 292
28 HIToolbox 0x1928f8284 ReceiveNextEventCommon + 648
29 HIToolbox 0x1928f7fdc _BlockUntilNextEventMatchingListInModeWithFilter + 76
30 AppKit 0x18bb56c54 _DPSNextEvent + 660
31 AppKit 0x18c32cebc -[NSApplication(NSEventRouting) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 716
32 AppKit 0x18bb4a100 -[NSApplication run] + 476
33 LunaKit 0x1048c3cb0 LKApplicationMain + 204
34 dyld 0x187f250e0 start + 2360
SPECS:
- 2021 16-inch MacBook Pro (M1 Max, 64GB RAM, 8TB SSD)
- macOS Sonoma 14.1.2
- Final Cut Pro 10.7.1
I'm a little suspicious about frames 19-12 which might imply the media file was changing underneath FCP during the export. But that's just a guess. Was the export to a local APFS or HFS+ disk file on a volume with plenty of space? Was it exported to a NAS location?
Immediately after one of these happens, it would be interesting to use OPT+Help>Gather App Diagnostics and examine the logs.
If that doesn't reveal anything, it's possible to export a more verbose FCP log using this command:
sudo log show --process "Final Cut Pro" > ~/Documents/LogShowFCP.txt
The text file can be large, so using BBEdit or similar is best. Look for items nearby the timestamp of the crash.
If that doesn't reveal anything, it's possible to extract a range of the entire MacOS log if done right after the crash. This can be very large, so should be handled with BBEdit or similar, and may require multiple filtering passes.
Syntax to extract all events from prior 60 seconds of MacOS log to a text file. Assumes the event of interest (such as FCP crash) happened within that period:
sudo log show --last 60s > ~/Documents/LogShow60s.txt
Extract last 5 minutes of MacOS log (even larger):
sudo log show --last 5m > ~/Documents/LogShow5m.txt
If the event of interest happened before that, it's possible to give a start/end range for 'log show'. The below extracts to a text file all events in the MacOS log over a 5 minute period starting at 08:00. Note: the log is greatly pruned after a few hours from present time. So you can't see highly detailed data from the prior day.
log show --start '2024-01-22 14:00:00' --end '2024-01-22 14:05:00' > ~/Documents/LogShow1400_plus5m_yesterday.txt
If the log is too verbose to make sense of, it's possible in BBEdit to use "progressive exclusion", whereby all lines matching an iterative series of search strings will be excluded. Procedure:
- In BBEdit search dialog, enable "grep" and "show matches" text boxes.
- Enter this in Find box, where 'exclusion_string1', etc are strings contained in the lines you wish to discard. You can add more exclusion strings, separating each by a | (SHIFT+backslash key, which is a logical 'OR')
^(?![^\n]*(exclusion_string_1|exclusion_string_2)).+$
- BBEdit will immediately color-code in orange the lines matching the exclusion list, IOW those you want to discard.
- Therefore to discard the matched lines (which preserves all unexcluded lines), press 'Extract' button.
- Repeat above procedure, on each successive extract, adding new exclusion strings to omit those lines from subsequent extracts.
- BBEdit dynamically shows you in real time the matched vs unmatched lines as you type the grep command, therefore before pressing the "Exclude" button, you already know what to expect.
- You can copy/paste strings from the extract results to the Find dialog, to avoid making a typo.
- If you save the grep strings corresponding to common "noise" log messages, those can all be concatenated to a single larger compound exclusion term which you can copy/paste to a new BBEdit log filtering session.
Amazing! Thanks Joe! I will add all this information to the FCP Cafe Bug Tracker page!