2015年1月29日木曜日

sylfilterのエラー「迷惑メールフィルタコマンドの実行に失敗しました」

いつも通り、Sylpheedで迷惑メールの振り分け作業をしていたら、突然、つぎのようなエラーが:


「エラー」
「迷惑メールフィルタコマンドの実行に失敗しました。」
「迷惑メール対策の設定を確認してください。」
「OK」

ーーー
そこで、「ツール」→「ログウィンドウ」を表示しました所、末尾に次のエラーが:

** Sylpheed-WARNING: summary_junk_func: junk filter command returned 127
** Sylpheed-WARNING: summary_junk_func: junk filter command returned 127

ーーー
SylFilterのjunk.dbが壊れている様子です。

%APPDATA%\SylFilter\junk.db

ーーー
SQLiteと思いましたが、ちがいました。QDBMを採用している模様。

"C:\Program Files (x86)\Sylpheed\sylfilter-cui.exe" --help

...
Available key-value stores:
  QDBM

ーーー
QDBMの開発元 http://fallabs.com/qdbm/

最新のソースパッケージ(バージョン1.8.78)

VisualStudio2005でビルド

ーーー
Depot用コマンド
http://fallabs.com/qdbm/spex-ja.html#depotcli

ーーー
ビルドしたdpmgr.exeで修復を試みる。

C:\DL\qdbm-1.8.78>dpmgr inform j.db
dpmgr: j.db: broken database file

C:\DL\qdbm-1.8.78>dpmgr repair j.db

C:\DL\qdbm-1.8.78>dpmgr inform j.db
name: j.db
file size: 2093929
all buckets: 81919
used buckets: 31556
records: 39815
inode number: 21899
modified time: 1422490817
ーーー
修復したデータベースを元の場所に戻したら、いけました!

ただ、きちんと修復されているのかどうか、つまり、データに整合性が有るのかどうか、知る術がないので、自己責任で、という話になります。

ちなみにオフィシャルの対応では、削除→作り直しを推奨しているようです。ここ

0 件のコメント:

コメントを投稿