Forums: users (Thread #4582)

SDBM異常? (2004-02-26 00:45 by a39 #8165)

やまぐちです

OS Solaris 2.6
Compiler SPARC Compiler 4.2
Ruby 1.8.1
bsfilter 1.39

またまたSDBMを使っている環境で,*.prob.sdbm.*だけ異常を来たし,*.{clean,spam}.sdbm.*に登録されていないtokenに,低い確率が与えられる状況が確認されました.

状況は

$ bsfilter -u

とすると,*.prob.sdbm.*に登録されていないtokenに確率が与えられなくなることはなく
なりましたので,恐らくbsfilterのtokenのadd/clean関係の処理の例外処理か何かの漏れかと推測しています.

現状では,bsfilter -uとすれば回復するものですから,致命的ではないのですが現状報告までに.

p.s.
nabeken様にbsfilter -u適用前後のデータをお送りしてもよければ私信にてお送りします.:-)

Reply to #8165×

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異常? (2004-02-26 00:56 by nabeken #8166)

それなりに見直したつもりだったのですが...
お手数ですがメイルして下さい。
Reply to #8165

Reply to #8166×

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: ja.clean SDBM異常? (2004-03-08 18:52 by a39 #8495)

こちらの関係をトラッキングしようと考えていた矢先、今度はbs_markによる判定&マーキングの最中に、ja.clean.sdbmの更新がおかしくなるという事態に陥りました。

具体的には、10000 msg.(message)を越えたtoken DBを8000 msg.換算のtoken DBに縮小する際に、errorを吐いて落ち、bs_markを通す度に

1. ja.clean.sdbm はちょっとだけ小さくなっている
2. 10000 msg.のまま
3. bsfilter --updateしても解決せず

という状況までは確認しました。(error logは末尾)
念のため、このsdbmを保存し、

a. bsfilter --export-spam でspam DBだけ取り出し
b. sdbmを全て削除
c. spam DBをimport
d. 昨夜のclean DBをimport
e. bsfilter --update

で無事復旧はできました。
また、10000msg.を越えた際に、8000msg.までtoken DBを縮小させることにも成功しています。

さて、ここで問題になりそうなのは、token DBに何か悪さをするtokenが潜り込んでいるのではないかということですが、まだ追えておりません。
# やはりsdbmのlibrary依存かなぁ...

報告までに。

-- 以下、残っていたerror logです。

`update_probability': undefined method `*' for nil:NilClass (NoMethodError)
from /opt/local/bin/bsfilter:2864:in `main'
from /opt/local/bin/bsfilter:2861:in `each'
from /opt/local/bin/bsfilter:2861:in `main'
from /opt/local/bin/bsfilter:2935
/opt/local/bin/bsfilter:283:in `check_size': undefined method `*' for nil:NilClass (NoMethodError)
from /opt/local/bin/bsfilter:280:in `each'
from /opt/local/bin/bsfilter:280:in `check_size'
from /opt/local/bin/bsfilter:2040:in `auto_update'
from /opt/local/bin/bsfilter:2039:in `each'
from /opt/local/bin/bsfilter:2039:in `auto_update'
from /opt/local/bin/bsfilter:2923:in `main'
from /opt/local/bin/bsfilter:2935
Reply to #8165

Reply to #8495×

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: ja.clean SDBM異常? (2004-03-08 23:30 by nabeken #8505)

すみません。
###を含んだtokenがある場合に、この問題が出ます。1.46でfixしました。
--mark-in-tokenオプションで#を指定しない限り、この状況にはならないと思っていますが...
Reply to #8495

Reply to #8505×

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