フォーラム: users (スレッド #39642)

sdbm_store failed (SDBMError)が発生します (2018-06-05 19:05 by Gibson #81436)

お世話になります。bsfilterを使わせていただいております。

今までCentOS5でbsfilterを使っていました。
今回CentOS7.4上でdbを作り直そうとしたところ、エラーが発生しました。
bsfilterは1.0.19(Rev.1.87)で、Rubyは2.0.0です。

メールはMaildir形式で、cleanとspamのフォルダから、それぞれ
新しい順に2000通のファイルをコピーして、

rm -f ~/.bsfilter/*
bsfilter --add-clean ~/tmp/clean/*
bsfilter --add-spam ~/tmp/spam/*
まではうまくいくのですが、その後
bsfilter --update
とすると

/usr/local/bin/bsfilter:681:in `[]=': sdbm_store failed (SDBMError)
from /usr/local/bin/bsfilter:681:in `set'
from /usr/local/bin/bsfilter:450:in `set_scalar'
from /usr/local/bin/bsfilter:1856:in `block in update_probability'
from /usr/local/bin/bsfilter:1845:in `each'
from /usr/local/bin/bsfilter:1845:in `update_probability'
from /usr/local/bin/bsfilter:3429:in `block in run'
from /usr/local/bin/bsfilter:3426:in `each'
from /usr/local/bin/bsfilter:3426:in `run'
from /usr/local/bin/bsfilter:3493:in `<main>'

と表示されてしまいます。

コピーするファイルの数を2000通から1000通に変え、同じように
操作したところ、エラーは表示されませんでした。

メモリ容量の問題なのか(4GByteです)、あるいは、いずれかのファイルに
bsfilterを誤動作させる文字列が含まれているのか、また、その場合は
どのようにそのファイルを絞り込めば良いのか、など見当も付かない状況です。

どのように調べればよいか、アドバイスをいただけると幸いです。
よろしくお願いいたします。

Gibson

メッセージ #81436 への返信×

Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。 ログインする

Re: sdbm_store failed (SDBMError)が発生します (2018-06-06 00:31 by nabeken #81440)

macOS 10.13.5 の ruby 2.3.3p222 でも再現し、SDBMのバグ臭いと思ったのですが、
何かの拍子に再現しなくなってしまいました。
調査は難航そうです。

--db オプションで、データベースとしてSDBM以外を指定して貰えないでしょうか。
(CentOSでの追加インストールも必要かもしれません)
#81436 への返信

メッセージ #81440 への返信×

Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。 ログインする

Re: sdbm_store failed (SDBMError)が発生します (2018-06-06 08:41 by Gibson #81443)

ご返信ありがとうございます。
dbの形式をGDBMにしたところ、エラーは発生しなくなり、今のところ大変
快調です。これでしばらく運用したいと思います。

別件で恐縮ですが、今まで、ある種のspam、およびそれに類似したspamの
一部で、学習をたくさんしているはずなのにprobabilityが上がらないという
ことがありました。
dbをGDBMにしたところ、その問題まで解決したような気がしています。
ただ、これはまだ詳しく調査したわけではありませんので、本当に
「気がしている」だけなのかもしれません。

Windows版バイナリでもGDBMが使えたらうれしく思いますので、
一応リクエストとさせてください。

ありがとうございました。
#81440 への返信

メッセージ #81443 への返信×

Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。 ログインする

Re: sdbm_store failed (SDBMError)が発生します (2018-06-06 09:24 by Gibson #81446)

なお、エラーが出たときのclean、spamのそれぞれ2000通のメールは
そのままの形で保存してありますので、もしご協力できることが
ありましたらおっしゃってください。
よろしくお願いします。
#81440 への返信

メッセージ #81446 への返信×

Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。 ログインする