如何解决使 Mac OS X 应用程序崩溃的 libdispatch 问题?

dav*_*han 6 itunes iphone cisco-vpn-client macos

在最后一天,我的 Mac(运行 Mac OS X 10.6.2 且所有软件更新的 MacBook Air)开始出现很多故障。

最值得注意的是,iTunes 不再与我的 iPhone 同步。它失败并出现崩溃对话框,报告“AppleMobileDeviceHelper 意外退出”和错误对话框“iTunes 无法从 SyncServices 加载数据类信息。重新连接或稍后重试。”

我已经在 support.apple.com/kb/HT1747 上尝试修复,但失败了。

我也遇到了可怕的 Cisco VPN 客户端的问题(起初看似无关),它开始给我这个错误:

Error 51: Unable to communicate with the VPN subsystem
Run Code Online (Sandbox Code Playgroud)

我按照 www.anders.com/cms/192/CiscoVPN/Error.51:.Unable.to.communicate.with.the.VPN.subsystem 上的步骤操作,这似乎对我不起作用,但如果我可以连接我将命令行与 sudo 一起使用:

sudo vpnclient connect MyProfile
Run Code Online (Sandbox Code Playgroud)

我在控制台应用程序中查看了诊断消息,我注意到一个模式,即许多应用程序报告“LIBDISPATCH 客户端中的错误”。受影响的程序是:

  • 苹果手机备份
  • 苹果移动设备助手
  • Safari 网页预览提取器
  • cvpnd(Cisco VPN 守护进程)

其中,只有最后一个是非苹果软件!

诊断消息中的常见文本是:

Exception Type:  EXC_BAD_INSTRUCTION (SIGILL)
Exception Codes: 0x0000000000000001, 0x0000000000000000
Crashed Thread:  1  Dispatch queue: com.apple.libdispatch-manager

Application Specific Information:
BUG IN CLIENT OF LIBDISPATCH: Do not close random Unix descriptors
Run Code Online (Sandbox Code Playgroud)

我开始怀疑是否存在权限问题或重要库损坏,...

我应该注意到我已经重新启动了几次并验证了磁盘权限和磁盘。

任何帮助都会很棒!

更多信息 2010-03-20

进一步查看日志,我发现最早的 libdispatch 崩溃,在此之前发现 coreservicesd 已经死了:

2010-03-17 14:17:43 ... CarbonCore.framework: coreservicesd process died; attempting to reconnect but future use may result in erroneous behavior.
Run Code Online (Sandbox Code Playgroud)

之后与 coreservicesd 交谈时出现问题:

2010-03-17 14:17:45 ... LaunchServices/5123589: coreservicesd is running an unsupported version, 0 ( we are 10600000 ), so we cannot talk to it.
Run Code Online (Sandbox Code Playgroud)

这导致强制重启(我忘记了这一点),在重启消息中我看到:

2010-03-17 14:25:24 kernel  hfs: Removed 1 orphaned / unlinked files and 0 directories 
Run Code Online (Sandbox Code Playgroud)

可能什么都没有,但有没有办法找出这是什么?

无论如何,这一切似乎都没有出现重大问题,直到:

2010-03-17 14:26:41 Safari Webpage Preview Fetcher[134] BUG in libdispatch: 10C540 - 1931 - 0x4
Run Code Online (Sandbox Code Playgroud)

我有点吃亏,因为我的 Snow Leopard 安装 CD 在我的办公室里,而且我一周都不会回到那里......基于 Leopard 安装 CD 和时间我可以尝试的任何事情机器备份?

dav*_*han 3

我又被这个问题困扰了。这次我将主目录中的所有文件和目录移开,然后一点一点地重新添加它们。问题似乎出在我的 .Trash、.DS_Store 或 .CFUserTextEncoding 文件中。

我没有尝试恢复 .Trash 或 .DS_Store,因为这似乎是一个坏主意。

当我重新添加 .CFUserTextEncoding 时,问题再次出现。

我的 .CFUserTextEncoding 文件包含字符串39:50根据CFString 编码参考,39似乎对应于“MacCeltic” 。我不确定。我使用 Gaeilge(爱尔兰盖尔语)作为我的首选界面语言。50

再次删除该文件给了我正确的行为。

(如果发现删除 5 字节文件可以在从备份恢复大量数据之前解决我的问题,那就太好了!)