我最近将一个用户从 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 中得到的结果,当时我打开了邮件,选择了一条会使其崩溃的消息,然后再次重复了该过程:
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 操作,并在具有原始映像的机器上执行此操作,但我确信数据中仍然会有很多噪音。)
我正在从旧分区复制库文件夹,并将尝试在另一台计算机上恢复它。
答案1
除非我忽略了,否则我发现您没有提到您正在使用的 10.5 版本。当我运行 10.5.4 时,我遇到了打开附件(甚至阅读某些消息)时 Mail.app 崩溃的问题。我升级到了 10.5.5,但问题仍然存在。从 10.5.5,我迅速升级到了 10.5.8,它附带了新版本的 Mail.app,完全解决了这个问题。Mail.app 不再崩溃。我后来升级到了 Snow Leopard,我相信它也带来了最新版本的 Mail.app。从那以后我一直很开心。
答案2
重申一下,问题是:即使邮件存储本身已成功迁移到 10.5,Mail.app 在尝试查看某些单个消息时也会崩溃。
当然,您需要检查一些事情。
另外,尝试禁用内置 ACL 以查看是否是某种权限错误。在命令行中输入:fsaclctl -p / -d
请让我们知道你的发现。
答案3
您是否使用 Console.app(左侧面板:数据库 -> 所有消息)检查过是否有任何第三方插件或扩展在邮件启动之前或在您阅读那些崩溃的电子邮件之前加载?
如果问题不是来自邮件,则应该记录在那里。