MySQL Bayes store, and bayes_auto_expire, not auto-expiring

"Jess Robinson" <[email protected]>
Newsgroups gmane.mail.spam.spamassassin.general
Message-ID <[email protected]>
Hi all,

Asking here before I report a bug / attempt a patch.

We noticed that with bayes_auto_expire set to true, using a MySQL bayes store, the auto-expiry does not run. The system has been up for several months, and the bayes_expire table remains empty. Manual --force-expire via sa-learn works ok once tried.

Version: SA 4.0.0
Scanning via exim / spamc
Manual spam reporting: spamc -L 

After a large amount of code reading yesterday, I think this is because the MySQL BayesStore does not implement get_storage_variables - https://github.com/apache/spamassassin/blob/9e1677a6b73dc163c97bf382d9767856fe3ccbef/lib/Mail/SpamAssassin/BayesStore.pm#L570

This is used in expiry_due in BayesStore: https://github.com/apache/spamassassin/blob/9e1677a6b73dc163c97bf382d9767856fe3ccbef/lib/Mail/SpamAssassin/BayesStore.pm#L462

which presumably dies instead.

It was expected to run given the docs in sa-learn https://spamassassin.apache.org/full/4.0.x/doc/sa-learn.html#EXPIRATION which do not mention any bayesstore exceptions.

Am I barking up the correct tree?

Separately: is auto_expire recommended, or should we be creating some sort of cronjob to run thousands of user expiry calls manually?

Thanks in advance,

Jess Robinson / Runbox (setting up per-user spam training)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.