# **Mac: 網絡用戶遇到Adobe Reader 9.x/10.x異常退出的解決**
### 異常退出表現:
一個用戶目錄存放在AFP網絡服務器上的網絡用戶登陸后,初次運行Adobe Reader 9.x/10.x時,Reader正常詢問用戶接收授權證書,以及是否使用Reader來打開所有的PDF文件等問題后,Reader菜單和程序圖標在Dock上停留短暫時間后會突然退出,并顯示下圖的運行錯誤提示:
?

在以后的運行中,同樣是發生異常退出,用戶根本無法使用Adobe Reader。
而本地用戶以及移動用戶(用戶目錄存放在本地磁盤),卻沒有這個問題。在最初的測試中發現,這個問題似乎和客戶端和服務器端系統本身的版本無關,只同網絡用戶和Adobe Reader軟件本身有關。
### 錯誤跟蹤:
?
跟蹤系統的logs的結果是:
------------------------------------------------------------------------------------------------------------------------
2/10/11 1:31:53 PM??? Dock[10487]??? SQLite failure in directoryCreated for <ECDirectory: 0x10183fd60> {path=/Network/Servers/s374rls2.com/UserData/374-123/Documents/} lineNum=759 err=5 (database is locked)
2/10/11 1:32:08 PM??? [0x0-0xe90e9].com.adobe.Reader[10567] terminate called after throwing an instance of 'SQLiteUtils::SQLiteException'
2/10/11 1:32:10 PM??? com.apple.launchd.peruser.2045665344[8759] ([0x0-0xe90e9].com.adobe.Reader[10567]) Job appears to have crashed: Abort trap
2/10/11 1:32:10 PM??? ReportCrash[10578]??? Saved crash report for AdobeReader[10567] version 9.3.0 (9.3.0) to /Network/Servers/s374rls2.com/UserData/374-123/Library/Logs/DiagnosticReports/AdobeReader_2011-02-10-133210_w374-764.crash
------------------------------------------------------------------------------------------------------------------------
再來看看錯誤報告的前面部分的內容:
------------------------------------------------------------------------------------------------------------------------
Process:???????? AdobeReader [9435]
Path:??????????? /Applications/Adobe Reader 9/Adobe Reader.app/Contents/MacOS/AdobeReader
Identifier:????? com.adobe.Reader
Version:???????? 9.3.0 (9.3.0)
Code Type:?????? X86 (Native)
Parent Process:? launchd [8759]
Date/Time:?????? 2011-02-10 13:23:17.423 -0700
OS Version:????? Mac OS X 10.6.3 (10D2063a)
Report Version:? 6
Interval Since Last Report:????????? 5812 sec
Crashes Since Last Report:?????????? 2
Per-App Interval Since Last Report:? 27 sec
Per-App Crashes Since Last Report:?? 2
Anonymous UUID:????????????????????? AA88CA84-2CD6-42AF-A4ED-D41DD8569C16
Exception Type:? EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Crashed Thread:? 0? Dispatch queue: com.apple.main-thread
Application Specific Information:
abort() called
Thread 0 Crashed:? Dispatch queue: com.apple.main-thread
0?? libSystem.B.dylib???????????? ??? 0x98449132 __kill + 10
1?? libSystem.B.dylib???????????? ??? 0x98449124 kill$UNIX2003 + 32
2?? libSystem.B.dylib???????????? ??? 0x984db8e5 raise + 26
3?? libSystem.B.dylib???????????? ??? 0x984f199c abort + 93
4?? libstdc++.6.dylib???????????? ??? 0x9967bfda __gnu_cxx::__verbose_terminate_handler() + 433
5?? libstdc++.6.dylib???????????? ??? 0x9967a17a __cxxabiv1::__terminate(void (*)()) + 10
6?? libstdc++.6.dylib???????????? ??? 0x9967a1ba __cxxabiv1::__unexpected(void (*)()) + 0
7?? libstdc++.6.dylib???????????? ??? 0x9967a2b8 __gxx_exception_cleanup(_Unwind_Reason_Code, _Unwind_Exception*) + 0
8?? com.adobe.Acrobat.framework?? ??? 0x8064ecc7 AcroSecurityBailOutImpl + 6611123
9?? com.adobe.Acrobat.framework?? ??? 0x8061fc76 AcroSecurityBailOutImpl + 6418530
10? com.adobe.Acrobat.framework?? ??? 0x8061eed5 AcroSecurityBailOutImpl + 6415041
11? com.adobe.Acrobat.framework?? ??? 0x806204c0 AcroSecurityBailOutImpl + 6420652
12? com.adobe.Acrobat.framework?? ??? 0x809599f3 0x7fe27000 + 11741683
13? com.adobe.Acrobat.framework?? ??? 0x80959b9e 0x7fe27000 + 11742110
14? com.adobe.Acrobat.framework?? ??? 0x805be074 AcroSecurityBailOutImpl + 6018144
15? com.adobe.Acrobat.framework?? ??? 0x80443bc6 AcroSecurityBailOutImpl + 4468658
16? com.adobe.Acrobat.framework?? ??? 0x80443db1 AcroSecurityBailOutImpl + 4469149
17? com.adobe.Acrobat.framework?? ??? 0x7ff69443 RunAcrobat + 1311411
18? com.adobe.Acrobat.framework?? ??? 0x7ff6917a RunAcrobat + 1310698
19? com.apple.CoreFoundation????? ??? 0x96c8976b __CFRunLoopRun + 8059
20? com.apple.CoreFoundation????? ??? 0x96c870f4 CFRunLoopRunSpecific + 452
21? com.apple.CoreFoundation????? ??? 0x96c86f21 CFRunLoopRunInMode + 97
22? com.apple.HIToolbox?????????? ??? 0x9133b15c RunCurrentEventLoopInMode + 392
23? com.apple.HIToolbox?????????? ??? 0x9133af11 ReceiveNextEventCommon + 354
24? com.apple.HIToolbox?????????? ??? 0x9133ad96 BlockUntilNextEventMatchingListInMode + 81
25? com.apple.AppKit????????????? ??? 0x94a7c0fd _DPSNextEvent + 847
26? com.apple.AppKit????????????? ??? 0x94a7b93e -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 156
27? com.apple.AppKit????????????? ??? 0x94a3dbc7 -[NSApplication run] + 821
28? com.adobe.Acrobat.framework?? ??? 0x7fe29b8d RunAcrobat + 2557
29? com.adobe.Acrobat.framework?? ??? 0x7fe292ce RunAcrobat + 318
30? com.adobe.Reader????????????? ??? 0x00002e8b start + 2371
31? com.adobe.Reader????????????? ??? 0x0000264a start + 258
32? com.adobe.Reader????????????? ??? 0x00002571 start + 41
... ...
------------------------------------------------------------------------------------------------------------------------
### 分析和測試:
從logs中的記錄看,是Adobe Reader內置的SQLiteUtils在訪問它的數據庫的之后,無法鎖定,從而簡單地拋出一個致命錯誤并退出,致使后面的程序無法繼續運行。而網絡用戶相關的文件訪問,是通過AFP網絡協議來實現的,所以很可能是因為它不支持AFP網絡協議造成的。
其實,在舊舊版本中舊有過類似的問題,只不過在Adobe Reader 8.1.3中已經解決了這個問題,可是在新版本中9.x和10.x中這個類似的問題又出現了,而且至今不再解決這個問題。
?
查看Adobe的preference文件,沒有發現問題,而它產生的一些字體緩存文件,卻出現了問題。比如~/Library/Application Support/Adobe/Acrobat/9.0_x86目錄中的,AdobeCMapFnt09.lst和AdobeComFnt09.lst的文件大小是0KB, 而正常的應該是4KB,這說明至少在生成這兩個文件時產生了錯誤。
?
***版權信息**: 本著開放交流的原則歡迎轉載,除非明確聲明"謝絕轉載"等字樣. **所有文章/圖片/代碼(除轉載和翻譯),版權均屬文章作者**.
轉載請遵守下面規則:
?1)保持文章的完整性; 2)不得以盈利為目的; 3)完整標注文章作者[Tony Liu@[中國在線教育](http://blog.csdn.net/afatgoat)]和文章中標注的所有版權信息。
其它事宜,如:需要商業用途或以盈利為目的的、或者部分轉載的等等,請與本作者聯系: TonyLiu2CA@yahoo.com*
*
*
把其它本地用戶中的9.0_x86目錄中的所有文件復制過來,是第一個想到的方法,可以問題依舊。所以,SQLiteUtils不僅僅是在生成這些文件的時候有錯誤,就連讀取都不行,那么就只好把SQLiteUtils需要存儲的文件重新定向到本地硬盤。經過測試,這個方法的確奏效,不過也走了一點彎路,比如不能把Acrobat目錄連接到本地,雖然9.0_x86是其中的一個子目錄,而只能把9.0_x86目錄設置成軟連接。
### 問題解決:
問題找到了,經過測試也是可以解決問題的,不過對于網絡用戶可以通過兩個方式來最終解決這個問題。
### 1. 登錄腳本鉤子:
第一個方法是使用登錄腳本鉤子的方式,如果你單位的系統部署的時候,系統映像里面已經包含了登錄腳本鉤子的實現,那么就可以使用這個方法。這個方法需要把腳本部署在每個客戶端機器上,所以需要一些努力才能確認部署完成,特別是大型環境和移動系統較多的情形。而且這個方法,適合于針對只有Adobe安裝的機器,而不是針對用戶,這樣,只有安裝了Adobe的機器才需要
?
具體方法是江下面的語句加入到你的登錄腳本中。
# Create new 'Caches' folder on the local hard drive
`mkdir -p -m 777 "/private/tmp/$userLoggedIn/9.0_x86"`;
`mkdir -p "$userHomeDir/Library/Application Support/Adobe/Acrobat"`;
# Create symbolic link to point user's 'Caches' folder to local directory
`ln -s -f -h "/private/tmp/$userLoggedIn/9.0_x86" "$userHomeDir/Library/Application Support/Adobe/Acrobat/9.0_x86"`;
### 2. 工作組管理器:
?
而使用Workgroup Manager設置,對用戶/用戶組/機器/機器組,進行組合控制,更加靈活。
選擇所要設置的目標,選擇Preferences->Details, 選擇文件夾重定向,并編輯它,添加如圖的各個鍵值。
?

?
結束語:
至此,該問題解決,對于10.x版本的只要稍作修改,同樣可以輕松解決。
其實,Adobe Acrobat等其它軟件,也有這個運行錯誤,而這個思路同樣適用于它們。
?
?
?
Tony Liu, 2011-02-13
于Calgary
- 前言
- Mac OS X:如何將個人文件夾從默認卷移到其他卷(適合OSX10.5 Leopard)
- Mac OS X:Finder菜單中的Connect to Server選項禁止和打開
- Mac OS X: 蘋果機支持的分區表類型及問題解決
- Mac OS X: 偏好Preferences基礎(1)
- Mac OS X: 如何變更Office for Mac的注冊碼
- Mac OS X: 禁止/防止網絡用戶復制app程序到桌面
- Mac OS X: 用戶帳戶的選擇
- Mac OS X: 實用腳本程序(bash scripts)系列
- Mac OS X: 共享iPhoto圖片
- Mac OS X: 實用腳本程序(bash scripts)系列-2
- Mac OS X: 實用腳本程序(bash scripts)系列-3
- Mac OS X: 實用腳本程序(bash scripts)系列-4
- Mac OS X: 實用腳本程序(bash scripts)系列-5
- Mac OS X: 實用腳本程序(bash scripts)系列-6
- Mac OS X:升級rsync和同步應用實例
- Mac OS X: XAMP在Mac上的實現
- Mac OS X瘦身多法
- Mac OS X 10.5快速系統部署實踐-計劃(2) v1
- Mac OS X 10.5快速系統部署實踐-制作核心系統鏡像(1) v1
- Mac OS X數據備份方案一例
- Mac OS X數據備份方案一例(2)
- Mac OS X 10.5快速系統部署實踐-制作核心系統鏡像(2) v1
- Mac OS X: 打印系統治療
- Mac OS X:禁止崩潰報告
- Mac OS X:Snow Leopard的幾個改動(管理員相關)
- Mac OS X排錯:雪豹的最新更新Airport可能不支持無線802.11n網絡
- Mac OS X:雪豹內置支持讀寫NTFS卷
- Mac OS X:定制生成新用戶的程序包
- Mac OS X:在Windows里面使用命令行設置啟動系統
- Mac OS X: 實用腳本程序(bash scripts)系列-7
- Mac OS X:一種從APP中獲得PKG的方法
- Mac OS X: bash腳本實現添加無線SSID(Update2009-10-09)
- Mac OS X: 實用腳本程序(bash scripts)系列-8
- Mac OS X 10.5快速系統部署實踐-制作核心系統鏡像(4) v1
- Mac OS X: 徹底刪除GeekTool(bash腳本)
- Mac OS X: 實用腳本程序(bash scripts)系列-9
- 把你的Leopard變成Mac OS X的系統發布服務器(1)
- 把你的Leopard變成Mac OS X的系統發布服務器(2)
- 把你的Leopard變成Mac OS X的系統發布服務器(3)
- Mac OS X: 訪問控制遠程CUPS服務
- Mac &amp; Win混合平臺訪問和工具
- Mac OS X: DeployStudio更新v1.0rc16
- Mac: 想當Apple菜鳥不容易(1)
- Mac: 想當 Apple菜鳥不容易(2)
- Mac: 想當 Apple菜鳥不容易(3)
- Mac: 想當 Apple菜鳥不容易(4完)
- Mac電腦上處理攝像機上的存儲內容
- Mac OS X: Google自動更新程序的卸載
- 雪豹系統和SMB不兼容的問題的解決匯總
- Mac OS X: 實用腳本程序(bash scripts)系列-10
- Mac OS X:MagicPrefs介紹
- Mac OS X: 系統部署后程序安裝的用戶提示
- Mac OS X:開啟單程序模式
- Mac OS X: 在腳本里關閉Airport
- Mac筆記本電池:十點建議和其它
- Mac OS X: Launchd執行程序的一個例子
- Mac OS X:修改SMART Utility期限限制
- Mac OS X:網絡用戶環境個性配置實例
- Mac OS X:強制退出CD/DVD盤
- Mac OS X: launchd plist在線編輯器
- Mac OS X: 實用腳本程序(bash scripts)系列-11
- Mac OS X: 實用腳本程序(bash scripts)系列-12
- Mac: 卸載Safari 5.0.2
- Mac OS X: 實用腳本程序(bash scripts)系列-13
- Mac OS X: 文件圖標制作和變更(Resource Fork)
- Mac OS X 10.6.6更新之后NTFS只讀的解決
- Mac: 網絡用戶遇到Adobe Reader 9.x/10.x異常退出的解決
- Mac OS X: airport命令的參數
- Mac OS X的Spotlight綜述
- Mac OS X:AFP和SMB共享配置詳細配置
- Mac OS X:詳細解讀Munki和應用
- Mac OS X:顯示/設置分辨率的命令(源程序)
- Mac OS X: 是否升級到Lion?
- OSX: 禁止Flash Player 10.3自動更新
- OSX腳本:禁止系統自動添加AppStore圖標到用戶Dock上
- 獅子GM版本的安裝
- OS X Lion獅子安裝盤的初步研究
- OS X Lion獅子的恢復盤的刪除二法
- OSX: Finder的側邊欄(Sidebar)不顯示已裝載的網絡共享
- OSX:隱藏文件或文件夾
- OS X: 實用腳本程序(bash scripts)系列-13
- OS X: 實用腳本程序(bash scripts)系列-14
- OSX:Lion支持登錄窗口的Policy Banner
- OSX: 讓獅子說中文