On Fri, 25 May 2012 21:04:42 -0700 (PDT) rtsit wrote: > > I've got bayes running on a per-user database. When I run: > > sa-learn -D -u SOMEUSER --force-expire > > It goes through and tries to expire. It decides it wants to remove > 34399 tokens, but it can't do it due to an invalid delta atime. I'm > confused. > > This particular user has the following values in the bayes_vars MySQL > table: spam_count: 1440 > ham_count: 652 > token_count: 146899 > > Since it's over the threshold of 112500 I figured that it would > expire the extra tokens.
The algorithm is both over-complicated and so crude that it has to be ringed-around with numerous sanity checks that often interfere with its proper working. In your case you have set the threshold very low, so it's trying to find a cut-off time that that leaves a token count over the minimum count of 100,000 using only cut-off ages of 0.5*2^n days. That's hardly ever going to work. The lowest bayes_expiry_max_db_size you should use is: 100,000/0.75 = 133,333