なんでだろうとおもってプロセスを眺めたり、lldbでattachしたりしてごにょごにょしていると、CrashReportというプロセスがあがってから処理が進まなくなっていることがに気づいた。
/var/log/system.logに怪しいログが。
May 21 07:23:01 MacBook-Air Compressor[514]: objc[514]: Class TSSandboxPrefs is implemented in both /Library/Frameworks/TSLicense.framework/Versions/A/TSLicense and /Library/QuickTime/Flip4Mac WMV Advanced.component/Contents/MacOS/Flip4Mac WMV Advanced. One of the two will be used. Which one is undefined.
Flip4Macを消してからCompressorを起動しなおして、やり直すと今度は別のログが。
May 27 07:54:57 MacBook-Air.local BlurayPublishingServer[4161]: *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSURL initFileURLWithPath:isDirectory:]: nil string parameter'*** Call stack at first throw:(snip)
May 27 07:55:02 MacBook-Air.local ReportCrash[4166]: Saved crash report for BlurayPublishingServer[4161] version 26245.5.45 to /Users/xxxxxx/Library/Logs/DiagnosticReports/BlurayPublishingServer_2015-05-27-075502_MacBook-Air.crash
なるほど、CrashReportってのがあるのね。
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000002, 0x0000000000000000
Application Specific Information:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSURL initFileURLWithPath:isDirectory:]: nil string parameter'
Application Specific Backtrace 1:
0 CoreFoundation 0x92435373 __raiseError + 195
1 libobjc.A.dylib 0x92880a2a objc_exception_throw + 276
2 CoreFoundation 0x9243528d +[NSException raise:format:] + 141
3 Foundation 0x99c0ee5d -[NSURL(NSURL) initFileURLWithPath:isDirectory:] + 126
4 Foundation 0x99c1eb40 +[NSURL(NSURL) fileURLWithPath:isDirectory:] + 76
5 BlurayPublishingServer 0x00080e93 BlurayPublishingServer + 16019
6 libobjc.A.dylib 0x9287e853 -[NSObject performSelector:withObject:] + 70
7 Foundation 0x99c6568c __NSThreadPerformPerform + 389
8 CoreFoundation 0x92341d4f __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15
9 CoreFoundation 0x923337dd __CFRunLoopDoSources0 + 253
10 CoreFoundation 0x92332d12 __CFRunLoopRun + 994
11 CoreFoundation 0x923326c6 CFRunLoopRunSpecific + 390
12 CoreFoundation 0x9233252b CFRunLoopRunInMode + 123
13 Foundation 0x99c6aaaa -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 305
14 BlurayPublishingServer 0x0007e8e6 BlurayPublishingServer + 6374
15 BlurayPublishingServer 0x0007e6bc BlurayPublishingServer + 5820
16 libdyld.dylib 0x90ca86d9 start + 1
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread0 com.apple.CoreFoundation 0x92435d07 ___TERMINATING_DUE_TO_UNCAUGHT_EXCEPTION___ + 7
1 com.apple.CoreFoundation 0x92435689 __raiseError + 985
2 libobjc.A.dylib 0x92880a2a objc_exception_throw + 276
3 com.apple.CoreFoundation 0x9233275b CFRunLoopRunSpecific + 539
4 com.apple.CoreFoundation 0x9233252b CFRunLoopRunInMode + 123
5 com.apple.Foundation 0x99c6aaaa -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 305
6 BlurayPublishingServer 0x0007e8e6 0x7d000 + 6374
7 BlurayPublishingServer 0x0007e6bc 0x7d000 + 5820
8 libdyld.dylib 0x90ca86d9 start + 1
ファイルパスをチェックしたらnilだったということか。
coreファイルが吐かれていないので、詳細がわからない。
ここでTechnical Note TN2124Mac OS X Debugging Magicを見はじめる。
よしよし、ターミナルからcoreダンプできるように設定した環境でCompressorを起動してもう一回。
sudo chmod o+wx /cores
ulimit -c unlimited
/Applications/Compressor.app/Contents/MacOS/Compressor
あれ?coreができないぞ?sysctlかな?
MacBook-Air:~ xxxxxx$ sysctl -a|grep core
kern.corefile: /cores/core.%P
kern.coredump: 1
kern.sugid_coredump: 0
uid 変えるプログラムとはおもえないけど、Compressorを再起動して試してみる。
sudo sysctl -w kern.sugid_coredump=1でない・・。
Parent Process: Create Disc [614]ってことは、子プロセスにはulimitは引き継がれないのか。
launchdの設定をしてOS再起動。
sudo cat "limit core unlimited" >/etc/launchd.conf
今度は無事/coresにファイルができたので、lldbで中を見てみる。
ごにょごにょ・・・・
結論としては「〜」をmovファイル名に含めないようにしたら解決。
「8月9日〜9月3日」というようなファイル名を「8月9日から9月3日」にしてからは
再発しなくなった。