I just committed an update to spamassassin 4.0.0. I have been running rc4 for a few days and it is working mostly well on NetBSD 9 amd64, and as good as or better than 3.4.6, which is as of a few hours ago EOL upstream. If you run SA make sure to look at the release notes and hand-merge init.pre if locally modified. Also, it can use a DMARC perl module, which is so far not a dependency and is for now in wip. With that rules fire about DMARC status. I have been having random crashes with 3.4.6, and have now tracked those down. The TxRep module normally uses a hash db file, ties that to a perl dict, and records stats for senders. Somehow, the keys and values set by that code lose the last character in being written to the database, and that can sometimes lead to crashes, and sometimes just to bad data. I have a really gross hack that seems to result in correct behavior. If you are using TxRep with a db file (rather than sql), please let me know if you think you are seeing this or not. You can look at the db with "db hash .spamassassin/tx-reputation". My gross hack (not in the package) follows. The X and Y do not appear in the DB when this code runs. Figuring this out and fixing is right is left for further study, but it seems like a bug in DBD for bdb, or in bdb. --- DBBasedAddrList.pm.~1~ 2022-12-06 18:27:06.000000000 -0500 +++ DBBasedAddrList.pm 2022-12-14 08:02:13.646210151 -0500 @@ -143,10 +143,12 @@ $entry->{msgcount}++; $entry->{totscore} += $score; - dbg("auto-welcomelist: add_score: new count: ".$entry->{msgcount}.", new totscore: ".$entry->{totscore}); + dbg("auto-welcomelist: add_score: new count: ".$entry->{msgcount}.", new totscore: ".$entry->{totscore}.", addr: ".$entry->{addr}); - $self->{accum}->{$entry->{addr}} = $entry->{msgcount}; - $self->{accum}->{$entry->{addr}.'|totscore'} = $entry->{totscore}; + $self->{accum}->{$entry->{addr}.'X'} = $entry->{msgcount}.'Y'; + dbg("DBBasedAddrList::add_score after count"); + $self->{accum}->{$entry->{addr}.'|totscoreX'} = $entry->{totscore}.'Y'; + dbg("DBBasedAddrList::add_score after totscore"); return $entry; }
Attachment:
signature.asc
Description: PGP signature