Forums: users (Thread #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

Reply to #81436×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login

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での追加インストールも必要かもしれません)
Reply to #81436

Reply to #81440×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login

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

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

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

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

ありがとうございました。
Reply to #81440

Reply to #81443×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login

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

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

Reply to #81446×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login