SugarSyncManagerをアップデートしたら起動しなくて困った

少し前にタイトルの通りの現象で悩んだので twitterに投稿したことをまとめておきます。

現象

[blackbirdpie id="78392677959348224"]

解決方法

ログを漁ってみる

なんとなく以下の3つ調べてみた。

  • ~/Library/Application Support/SugarSync/sc1.log
  • /var/log/system.log
  • /var/log/windowserver.log

すると、windowserver.logに以下のようなログを発見しました(実際は一行で書いてある)。 クラッシュレポートは別にあるようですね。

Jun  9 07:03:46 xxxx ReportCrash[760]:
Saved crash report for SugarSyncManager[758] version ??? (1.9.26) to
 /Users/xxxx/Library/Logs/DiagnosticReports/SugarSyncManager_2011-06-09-070346_xxxx.crash

クラッシュレポートを見てみる

まぁ、なんか良く分からないけど最後の方に

Thread 15 crashed with X86 Thread State (32-bit):

って書いてあるから、Thread 15でクラッシュしたのだろうと予測。

んで、Thread 15のログ?らしきものに注目してみました。

Thread 15 Crashed:
0   libSystem.B.dylib               0x955ed4ee __semwait_signal_nocancel + 10
1   libSystem.B.dylib               0x955ed3d2 nanosleep$NOCANCEL$UNIX2003 + 166
2   libSystem.B.dylib               0x956682a6 usleep$NOCANCEL$UNIX2003 + 61
3   libSystem.B.dylib               0x95689959 __abort + 136
4   libSystem.B.dylib               0x956899c9 abort_report_np + 0
5   libstdc++.6.dylib               0x90594fda __gnu_cxx::__verbose_terminate_handler() + 433
6   libstdc++.6.dylib               0x9059317a __cxxabiv1::__terminate(void (*)()) + 10
7   libstdc++.6.dylib               0x905931ba __cxxabiv1::__unexpected(void (*)()) + 0
8   libstdc++.6.dylib               0x905932b8 __gxx_exception_cleanup(_Unwind_Reason_Code, _Unwind_Exception*) + 0
9   libstdc++.6.dylib               0x9054f856 std::__throw_logic_error(char const*) + 158
10  libstdc++.6.dylib               0x9057aced char* std::string::_S_construct(char const*, char const*, std::allocator const&, std::forward_iterator_tag) + 57
11  libstdc++.6.dylib               0x9057b1fb std::basic_string<char, std::char_traits, std::allocator >::basic_string(char const*, std::allocator const&) + 53
12  com.SugarSync.Manager           0x008fc07e ScFsMountWatcherMac::getVolumeIdAndRootPath(__DADisk*, ScString&, ScString&) + 158
13  com.SugarSync.Manager           0x008fcc91 ScFsMountWatcherMac::OnDiskAppeared(__DADisk*, void*) + 65
14  com.apple.DiskArbitration       0x9127b7c0 _DADispatchCallback + 260
15  com.apple.DiskArbitration       0x9127b3ec _DASessionCallback + 339
16  com.apple.CoreFoundation        0x9072f6e6 __CFMachPortPerform + 198
17  com.apple.CoreFoundation        0x9072b4db __CFRunLoopRun + 6523
18  com.apple.CoreFoundation        0x90729464 CFRunLoopRunSpecific + 452
19  com.apple.CoreFoundation        0x90729291 CFRunLoopRunInMode + 97
20  com.SugarSync.Manager           0x008fcfc0 ScFsMountWatcherMac::registerForEvents(ScFsMountWatcherMac*) + 192
21  com.SugarSync.Manager           0x005b9eb2 ScInvokeTaskBase::execute() + 18
22  com.SugarSync.Manager           0x005bcc3b ScTask::executeSelf(ACE_Guard&) + 395
23  com.SugarSync.Manager           0x005bd57e ScTaskManager::executeTask(ACE_Guard&) + 590
24  com.SugarSync.Manager           0x005bd7e8 ScThreadTaskManager::workerMain() + 360
25  com.SugarSync.Manager           0x005bd9e1 ScThreadTaskManager::workerFn(void*) + 17
26  libSystem.B.dylib               0x955ad7fd _pthread_start + 345
27  libSystem.B.dylib               0x955ad682 thread_start + 34

今、Time Machine用のHDDを接続しているとおかしい状況だったので この一行が気になりました。詳しく分かりませんがボリュームの情報を取得してそうですね。

ScFsMountWatcherMac::getVolumeIdAndRootPath

そこで、Time Machine用のHDDの名前にマルチバイト文字列が含まれていることに 気がつきました。もしかして、これじゃないかと。

その名前はTime Machineをセットアップしたときのデフォルトのままの 「Time Machienバックアップ」とかいう名前でした。 これを試しに、「Time Machine Backup」に変えてみたら、SugarSyncManager クラッシュせずに起動するようになりました。

というわけで

解決方法?

以下の発言「HDDの名前が」は「HDDの名前を」のミスです、済みません。 [blackbirdpie id="78589917114023936"]

サポートからの見解

まだ頂いてないですが、次のアップデートで治ると良いなと思ってます。 本当の原因は分かりませんが、私の場合この対応で改善したので 誰かの役に立てばと思い記事にさせて頂きました。