我最近将一个用户从 OS X 10.4 迁移到 10.5。当我们运行 Mail.app 时,当点击某些消息时它会崩溃。
我已经尽我所能以不同的方式获取邮件——以不同的方式导入它,删除 ~/Library/Preferences/com.apple.mail.plist,然后重新导入等。
问题似乎与单个消息有关,因为单击某条消息,即使它位于不同的文件夹中(由于它的导入方式)也会导致崩溃。
大多数十几个崩溃日志都是这样开始的:
Process: Mail [17905] Path:
/Applications/Mail.app/Contents/MacOS/Mail
Identifier: com.apple.mail
Version: 3.3 (926.1) Build
Info: Mail-9260100~1 Code Type:
X86 (Native) Parent Process: launchd
[119]
Date/Time: 2009-09-29
10:47:52.713 -0600 OS Version:
Mac OS X 10.5.7 (9J61) Report Version:
6 Anonymous UUID:
285B8613-3118-4F91-A28C-BC405D91FAFD
Exception Type: EXC_BAD_ACCESS
(SIGSEGV) Exception Codes:
KERN_INVALID_ADDRESS at
0x0000000089082454 Crashed Thread: 0
Application Specific Information:
-[MessageContentController _fetchContentsForMessage:fromStore:withViewingState:]
一个条目显示:
Application Specific Information:
-[MessageTransfer _synchronouslyPerformTransfer]
+[Library synchronouslyUpdateMessageFiles]
-[MessageContentController _fetchContentsForMessage:fromStore:withViewingState:]
更新
请参阅我对以下答案的评论。
我能够确定哪个文件对应于哪个电子邮件。首先,我必须弄清楚电子邮件文件夹在哪里。查看 ~/Library/com.apple.mail.plist 有帮助。(我认为跑步
defaults read com.apple.mail | grep AccountPath
将获得该信息)
在这种情况下,该文件夹类似于:
~/Library/Mail/POP-first.last#mail.ourdomain.com@IP_ADDRESS/INBOX.mbox/Messages
然后我去了那个目录,并发出了这个命令:
grep -r . -e "^From: " -e "^Subject: " -e "^Date: " -m 3 > summary.txt
然后我打开文件并在其中搜索。搜索主题可以很容易地查看邮件所在的文件。
完成之后,我查看了一些文件——对我来说似乎没有任何问题:(
更新 2 - 持续存在的问题
我曾希望这只会影响较旧的电子邮件,但昨天(10 月 21 日)收到的一封电子邮件也显示了这个问题。
更新 3 - 系统日志
奇怪的是,当我以用户身份打开控制台时,“所有消息”或“控制台消息”部分没有显示任何内容。这是我从跟踪 system.log 中得到的结果,当我打开 Mail 时,选择了一条会使它崩溃的消息,然后第二次重复该过程:
Oct 23 10:01:29 [computer-name] Console[56949]: Error: status 2 returned by _asl_server_query
Oct 23 10:01:39 [computer-name] ReportCrash[57070]: Formulating crash report for process Mail[56828]
Oct 23 10:01:40 [computer-name] ReportCrash[57070]: Saved crashreport to /Users/[user-name]/Library/Logs/CrashReporter/Mail_2009-10-23-100136_[computer-name].crash using uid: 504 gid: 504, euid: 504 egid: 504
Oct 23 10:01:40 [computer-name] com.apple.launchd[296] ([0x0-0x14c14c].com.apple.mail[56828]): Exited abnormally: Segmentation fault
Oct 23 10:02:01 [computer-name] ReportCrash[57098]: Formulating crash report for process Mail[57085]
Oct 23 10:02:02 [computer-name] ReportCrash[57098]: Saved crashreport to /Users/[user-name]/Library/Logs/CrashReporter/Mail_2009-10-23-100159_[computer-name].crash using uid: 504 gid: 504, euid: 504 egid: 504
Oct 23 10:02:02 [computer-name] com.apple.launchd[296] ([0x0-0x150150].com.apple.mail[57085]): Exited abnormally: Segmentation fault
Oct 23 10:03:02 [computer-name] Console[56949]: Error: status 2 returned by _asl_server_query
附加问题
我突然想到,数据良好并且应用程序(或它所依赖的库或框架之一)损坏的可能性很小。有什么好办法检查吗?(我可以递归地 md5sum 整个硬盘驱动器,并在具有原始图像的机器上执行此操作,但我敢肯定,数据中仍然会有很多噪音。)
我正在从旧分区复制库文件夹,并将尝试在另一台计算机上恢复它。
重申一下,问题是:即使邮件存储本身已成功迁移到 10.5,Mail.app 在尝试查看某些单独的邮件时也会崩溃。
你当然需要检查一些事情。
另外,尝试禁用内置 ACL 以查看它是否是某种权限错误。在命令行类型上:
fsaclctl -p / -d
请让我们知道您发现了什么。
您是否检查过 Console.app(左面板:数据库 -> 所有消息)是否是在 Mail 启动之前或在您阅读那些崩溃的电子邮件之前加载的任何第三方插件或扩展?
如果问题来自邮件以外的其他东西,它应该在那里记录。
除非我忽略了,否则我发现您没有提到您正在使用的 10.5 版本。当我运行 10.5.4 时,我在打开附件(甚至阅读一些消息)时遇到了 Mail.app 崩溃的问题。我升级到 10.5.5,但问题仍然存在。从 10.5.5 开始,我跳到了 10.5.8,它附带了一个新版本的 Mail.app,完全解决了这个问题。Mail.app 不再崩溃。我已经升级到雪豹,我相信它也带来了最新版本的 Mail.app。从那以后我一直很开心。