重新启动后,Spamassassin对象方法的位置问题


11

每天早晨,spamassassin通过每日的cronjob重新启动后,系统日志泛滥,并显示以下错误:

Feb  9 09:24:26 mail spamd[8766]: spamd: got connection over /var/run/spamd.socket
Feb  9 09:24:26 mail spamd[8766]: spamd: setuid to Debian-exim succeeded
Feb  9 09:24:26 mail spamd[8766]: spamd: checking message <004c01d0444a$01d5a905$d690a59f@kiffyv> for Debian-exim:106
Feb  9 09:24:26 mail spamd[8766]: rules: failed to run T_SPF_HELO_PERMERROR test, skipping:
Feb  9 09:24:26 mail spamd[8766]:  (Can't locate object method "check_for_spf_helo_permerror" via package "Mail: [...]:SpamAssassin::PerMsgStatus" at (eval 1169) line 19.
Feb  9 09:24:26 mail spamd[8766]: )
Feb  9 09:24:28 mail spamd[8766]: rules: failed to run T_SPF_TEMPERROR test, skipping:
Feb  9 09:24:28 mail spamd[8766]:  (Can't locate object method "check_for_spf_temperror" via package "Mail: [...]:SpamAssassin::PerMsgStatus" at (eval 1169) line 614.
Feb  9 09:24:28 mail spamd[8766]: )
Feb  9 09:24:28 mail spamd[8766]: rules: failed to run T_SPF_PERMERROR test, skipping:
Feb  9 09:24:28 mail spamd[8766]:  (Can't locate object method "check_for_spf_permerror" via package "Mail: [...]:SpamAssassin::PerMsgStatus" at (eval 1169) line 784.
Feb  9 09:24:28 mail spamd[8766]: )
Feb  9 09:24:28 mail spamd[8766]: rules: failed to run T_SPF_HELO_TEMPERROR test, skipping:
Feb  9 09:24:28 mail spamd[8766]:  (Can't locate object method "check_for_spf_helo_temperror" via package "Mail: [...]:SpamAssassin::PerMsgStatus" at (eval 1169) line 1129.
Feb  9 09:24:28 mail spamd[8766]: )
Feb  9 09:24:29 mail spamd[8766]: spamd: identified spam (26.6/5.0) for Debian-exim:106 in 3.1 seconds, 821 bytes.
Feb  9 09:24:29 mail spamd[8766]: spamd: result: Y 26 - AXB_XMAILER_MIMEOLE_OL_024C2,BAYES_99,BAYES_999,DOS_OE_TO_MX,NAME_EMAIL_DIFF,RAZOR2_CF_RANGE_51_100,RAZOR2_CF_RANGE_E8_51_100,RAZOR2_CHECK,RCVD_IN_BRBL_LASTEXT,RCVD_IN_PSBL,RCV
Feb  9 09:24:30 mail spamd[8759]: prefork: child states: II

我已经检查了是否有任何无人值守的升级。我也通过CPAN检查了Mail :: SpamAssassin :: PerMsgStatus,但它已经安装了。操作系统为Ubuntu Server 12.04.5 LTS,没有任何待处理的更新。如何解决此错误?


2
这也是“我也是”。sa-update运行后开始发生这种情况,因此大概已经发布了一些可能不应该发布的新检查。
wurtel

1
显然,这些规则已在2015年1月30日添加到svn.apache.org/r1656028中,因此需要新的spamassassin解释这些规则(Mail::SpamAssassin::Plugin::SPF在同一提交中进行了修改)。大概新规则逃脱得太早了,很快就会恢复原状。以前发生过
wurtel

3
另一个“我也一样”。Debian 7 Wheezy 64位,该错误今天早上出现。我们希望尽快修复!
lucaferrario 2015年

很高兴听到我不是唯一的一个。我希望它能尽快恢复。
devnull

对于Debian Wheezy来说,今天早上自动更新通过使用重写规则解决了该问题/var/lib/spamassassin/.../.../25-spf.cf
mivk 2015年

Answers:


6

进入更新目录(如/var/lib/spamassassin/3.003002/updates_spamassassin_org)并注释掉包含T_SPF_PERMERROR或的每行可能会更容易一些T_SPF_TEMPERROR,例如:

# header T_SPF_PERMERROR         eval:check_for_spf_permerror()

等,而不是升级或挑选上游更改。如果您使用自动更新,则可能需要手动进行操作,直到他们意识到自己的问题为止(目前似乎还不是这种情况)。


这很棒。我刚刚更新了文件,并注释了日志中提到的所有错误产生行。这似乎是一个不错的临时解决方法!
devnull 2015年

似乎常规的spamassassin更新会覆盖对25_spf.cf文件的更改。
Michael Franzl

是的,对。但是这是一个可行的临时解决方案,不需要安装任何不受支持的软件包版本。
devnull

1

在Debian Wheezy上,以下对我有用:

/etc/spamassassin/init.pre

评论SPF插件

# SPF - perform SPF verification.
#
#loadplugin Mail::SpamAssassin::Plugin::SPF

之后,更新作业将再次正常运行。


这还将禁用诸如T_SPF_PASS和T_SPF_FAIL之类的预先存在的有效T_SPF_ *规则。
博伊德·史蒂芬·史密斯(Boyd Stephen Smith)

0

您可以将最新的SPF.pm复制到/ usr / share / perl5 / Mail / SpamAssassin / Plugin中,前提是您使用的是3.4。请不要忘记备份原始文件。


感谢您的答复,但是由于我的意思是准确的,所以我安装了链接 spamassassin 3.3.2-2ubuntu1。
devnull

您仍然可以尝试安装SPF.pm的新版本
Szépe尤

由于SA是用Perl编写您可以安装packages.ubuntu.com/trusty/spamassassin
Szépe尤

Wheezy是3.3.2-5 + deb7u2,所以对我来说可能也不成立。
Boyd Stephen Smith

0

只需安装向后移植spamassassin。将此添加到/etc/apt/sources.list.d/debian-wheezy-backports.list

deb http://ftp.nl.debian.org/debian/ wheezy-backports main contrib non-free
deb-src http://ftp.nl.debian.org/debian/ wheezy-backports main contrib non-free

并运行:

$ apt-get install -t wheezy-backports spamassassin 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.