morit****@razil*****
morit****@razil*****
2007年 10月 10日 (水) 15:55:02 JST
こんにちは。森です。 >>> 川西 哲央 さんは書きました: > こんばんは。川西です。 > > 森さん、ご返答いただきありがとうございます。 > また、こちらの返信が遅くなってしまい、申し訳ありません。 いえいえ。詳細な障害報告ありがとうございます。大変助かります。 > 以前、質問させていただいた「loop found!!」、「invalid jump! 」が > 発生し、「sen_index_upd failed」となってしまう件ですが、 > 調査を進めたところ、この現象が発生する直前にマシンの電源が > 突然切れるトラブル(電源ケーブルを抜くことと等価)が発生し、 > 現象発生の大きな要因となっていることが判明しました。 > 電源断の試験を行ったところ似たような現象は発生しました。 たしかに、正常にshutdownせずに電源を切るとこのような形でインデックスが 破損する可能性があります。 > また、電源断以外に「sen_index_upd failed」となってしまう現象について > 質問させてください。 > 大量にINSERT処理を行ったところ、postgreSQLのログで「sen_index_upd failed」と > > 出力され、INSERTできない状態になってしまいました。 > sennaのログでは以下にある内容のエラーが発生しています。 > > 上記と同じ現象と思われるものは、以前に2回ほど発生しており、 > 再現方法も概ね見当がついてきている状況です。 > > sennaのバージョンが1.0.7ですので、1.0.9へのアップグレードで解決となれば良い > のですが、 > 何が原因となっているのかがわからない状況です。 > 何かお解りでしたら、ご教示くださいますよう、よろしくお願いします。 1.0.7では、mmapに失敗した場合にdeadlockに陥り、 以降、更新処理が一切行えなくなる障害がありました。 これは1.0.9で解消している可能性が高いと思います。 ただし、mmapの失敗そのものが解消するわけではありません。 mmapが失敗するのは、論理メモリ空間やファイルデスクリプタ等の資源が枯渇している ことが原因である可能性が高いと思いますが、未知のSennaのバグである可能性もあると 思います。 この事象が発生した時点でのpostgresqlプロセスの資源消費状況を教えていただけると 判断できると思います。具体的には以下の実行結果がいただけると助かります。 cat /proc/pid/status cat /proc/pid/maps ls -l /proc/pid/fd/ ls -lL /proc/pid/fd/ 以上よろしくお願いいたします。 -- mori