GUARDIANWALL 全文検索システムにおいて、稀に全文検索インデックス作成時の最適化処理が失敗し、
該当日の全文検索が行えなくなる可能性のある問題が確認されました。
大変お手数おかけして申し訳ございませんが、下記内容をご確認いただきますようお願いいたします。
1 対象バージョン
本案内事項は、以下の製品・バージョンを対象としております。
製品名 |
バージョン |
GUARDIANWALL 全文検索システム |
3.7.00 ~ 3.8.00 (Linux版)
※GUARDIANWALL 7.1.00 ~ 7.5.01 に対応
|
2 内容
全文検索システムでは、日付ごとに保存されたメールアーカイブ単位で全文検索インデックスを作成します。
V3.7.00 以降では、この全文検索インデックス作成時に最適化処理が追加され、
これによりインデックスサイズの縮小や検索速度の向上を図っております。
しかしながら、全文検索システム V4.0.00 未満では、この最適化処理がきわめて稀な確率で失敗し、
その場合は当該日付の全文検索の結果が 0 件となります。
本事象が発生した場合でも、システムログや通知メールへエラー等は出力されません。
本不具合の原因として、全文検索インデックスではメールを解析した結果をキー情報(ハッシュ値)として保存しておりますが、
対象のメールデータによってはこのキー情報が不正な値(0)になることがあります。
この場合に最適化処理が実施されると、全文検索インデックスにデータが書き出されない事象が発生します。
3 不具合確認方法
以下の手順にて事象の発生有無をご確認いただけますようお願いいたします。
(1)メールアーカイブ(.mar)と全文検索インデックス(.ftsidx)のファイルサイズ比較
以下のコマンド実行結果から、
各 mar ファイルと、それに対応する(同名の)ftsidx ファイルのファイルサイズを確認します。
# ls -la <メールアーカイブ保存ディレクトリ>
※メールアーカイブ保存ディレクトリは管理画面 [共通]-[管理サーバー管理]-[基本設定]-[管理サーバーパラメータ]
の「メールアーカイブ保存ディレクトリ」にて確認可能です。
ftsidx ファイルが、対応する mar ファイルと比べて10分の1以下など、極端に小さい場合は本件に該当する可能性があります。
続けて(2)にて実際の発生有無をご確認ください。
(2)アーカイブより極端にサイズが小さいインデックスについて不具合発生有無の確認
本件に該当する可能性のある ftsidx ファイルに対して、以下のコマンドを実行します。
# cd /opt/Guardian/Admin/search/cyclope/bin
# ./dump_index -k <メールアーカイブ保存ディレクトリ>/YYYYMMDD-XXXXXXXX-XXXXXXXX.ftsidx
※-k に対象インデックスのファイルパスを指定します。
・本不具合が発生している場合の出力結果例
Block No. : 1
(以降、出力なし)
・本不具合が発生していない場合の出力結果例
Block No. : 1
0:0001FF98: 13483 40449
1:00020EA4: 1 4
2:000268EC: 13483 40449
(以降、一番左の数値の連番で続けて出力される)
4 回避策
対策として、全文検索システム V4.0(GUARDIANWALL V8.0)へのバージョンアップをお願いいたします。
バージョンアップ前に作成していた全文検索インデックスで本不具合が該当した場合は、
バージョンアップ後に該当日のインデックスを再作成してください。
再作成手順については後述の手順 2) をご参照ください。
バージョンアップを行う前の回避策としては、
最適化処理を無効にした状態で本問題が発生したインデックスを再作成することで検索が可能になります。
ただし、最適化された状態と比べてインデックスのファイルサイズが大きくなり、また検索速度が低下いたします。
【最適化を無効にし、インデックス再作成を行う手順】
1) 全文検索インデックスの最適化処理をオフにする
GUARDIANWALL 管理サーバの下記ファイルを編集し、以下のパラメータを設定します。
サービスの再起動は必要ありません。
設定ファイル: /opt/Guardian/Admin/etc/admin/admin.conf
[Search]
IndexOptimize = 0
2) 全文検索インデックスを再作成する
以下のコマンドを実行し、問題が発生した全文検索インデックスを再作成します。
# cd /opt/Guardian/Admin/search/bin/
# ./mw_makesrchindex.pl YYYYMMDD --overwrite --mail=通知先メールアドレス
※YYYYMMDD は不具合が発生していた全文検索インデックスの年月日をご指定ください。
3) 最適化処理設定を元に戻す
1) にて設定したパラメータを以下のようにコメントアウトまたは削除します。
設定ファイル: /opt/Guardian/Admin/etc/admin/admin.conf
[Search]
#IndexOptimize = 0
手順は以上です。
なお、その後のインデックス作成時でも本不具合が発生する可能性があるため、
上記回避策を行った後も「3 不具合確認方法」の手順を適宜実施いただく必要がございます。
恐れ入りますが、GUARDIANWALL V8.0 へのバージョンアップを実施いただけますようお願いいたします。