2010年3月2日火曜日

PANIC: pool free chain が無効です

サーバーにあるアプリケーションの既存文書をビュー上でダブルクリックして開いたところ、NSD が起動され Lotus Notesが終了する現象が発生しました。
(Notes 8.0.1 Basic版にて、特定の文書だけで再現性あり)

NSD で出力されたログの FATAL THREAD には次の記載がありました。
[ 1] 0x76fe9a94 ntdll.KiFastSystemCallRet+0 (600,493e0,0,d8fe854)
[ 2] 0x7601c1b2 kernel32.WaitForSingleObject+18 (600,493e0,3,d8fea70)
@[ 3] 0x601a5754 nnotes.OSRunExternalScript@8+1284 (12c,1)
@[ 4] 0x601a5bea nnotes.FRTerminateWindowsResources+986 (1,0,1010,1)
@[ 5] 0x601a5faf nnotes.OSFaultCleanupExt@24+895 (22a4dd8,1010,0,0,0,d8feda0)
@[ 6] 0x601a603a nnotes.OSFaultCleanup@12+26 (0,1010,0)
@[ 7] 0x601b12a4 nnotes.OSNTUnhandledExceptionFilter@4+276 (d8ffdd8)
@[ 8] 0x6017aca8 nnotes.Panic@4+520 (60bb0f62)
@[ 9] 0x60656400 nnotes.HandleBadFreeChain@4+640 (d342c4c)
@[10] 0x6000306d nnotes.FreeDBlock@12+429 (d34008a,373196d9,d342c4c)
@[11] 0x6065662e nnotes.OSFreeDBlockWithSize@16+78 (60e9cb7a,1466c,1314,1)
@[12] 0x60656662 nnotes.OSFreeDBlockExt@12+34 (60e9cb7a,1466c,1)
@[13] 0x601a98dc nnotes.DPoolFree@8+76 (f9ca8de,1)
@[14] 0x600067fc nnotes.Discard@4+364 (f9ca8d0)
@[15] 0x60008063 nnotes.OSMemoryFree@4+179 (f010a656)

上記のいくつかのキーワードでIBMのサイトを検索したところ、Standard版で似たような状況が発生していることがわかりました。
Lotus Notes 8 (Standard Configuration) crashes when user accepts meeting invitation or update

この情報によると、ローカルにあるアドレス帳(names.nsf) のODSバージョンが古い(20 or 41)場合、圧縮すると解決するようです。

そこでコマンドプロンプトから ncompact を実行しました。
ODSバージョンを変換するため、-C オプションを付けます。

ncompact -c names.nsf

圧縮前のODSバージョンは 41 でしたが、実行後は 43 になりました。

これでもまだ再現するようです。

そこで 8 のODSバージョンになるよう notes.ini ファイルへ次の1行を追加して、再度 -C 付きで ncompact を実行しました。

Create_R8_Databases=1

これでODSバージョンが 48 になり、当該文書は無事開くようになりました。

0 件のコメント:

コメントを投稿