FATAL PROGRAM ERROR!! Unknown instance method "mname" which the program has attempted to call for the object:

opsec

New Member
May 28, 2023
6
0
1
PMG - 7.3-3
SpamAssassin version 4.0.0
running on Perl version 5.32.1

I recently started error log showing "WARNING: async: query 19159/IN/NS/microsoft.com completed, callback NS/microsoft.com failed: *** FATAL PROGRAM ERROR!! Unknown instance method "mname"*** which the program has attempted to call for the object:*** when email are received from Gmail or Microsoft. See the attached screenshot for detailed report....

Perl:
May 29 00:33:42 xxxxxxxxxxx pmg-smtp-filter[978]: WARNING: async: query 19159/IN/NS/microsoft.com completed, callback NS/microsoft.com failed: ***  FATAL PROGRAM ERROR!!    Unknown instance method "mname"
***  which the program has attempted to call for the object:
***
microsoft.com.    56876    IN    NS    ns2-39.azure-dns.net.
***
***  THIS IS A BUG IN THE CALLING SOFTWARE, which incorrectly assumes
***  that the object would be of a particular type.  The type of an
***  object should be checked before calling any of its methods.
***
Net::DNS::RR::NS 1814 at /usr/share/perl5/Mail/SpamAssassin/Plugin/DNSEval.pm line 583.
    Mail::SpamAssassin::Plugin::DNSEval::complete_ns_lookup(Mail::SpamAssassin::Plugin::DNSEval=HASH(0x55f3169e9bc8), Mail::SpamAssassin::PerMsgStatus=HASH(0x55f31d68be30), HASH(0x55f31e35d710), Net::DNS::Packet=HASH(0x55f316a4ea68), "microsoft.com") called at /usr/share/perl5/Mail/SpamAssassin/Plugin/DNSEval.pm line 559
    Mail::SpamAssassin::Plugin::DNSEval::__ANON__(HASH(0x55f31e35d710), Net::DNS::Packet=HASH(0x55f316a4ea68)) called at /usr/share/perl5/Mail/SpamAssassin/AsyncLoop.pm line 364
    eval {...} called at /usr/share/perl5/Mail/SpamAssassin/AsyncLoop.pm line 365
    Mail::SpamAssassin::AsyncLoop::__ANON__(Net::DNS::Packet=HASH(0x55f316a4ea68), "19159/IN/NS/microsoft.com", 1685291622.96299) called at /usr/share/perl5/Mail/SpamAssassin/DnsResolver.pm line 873
    Mail::SpamAssassin::DnsResolver::poll_responses(Mail::SpamAssassin::DnsResolver=HASH(0x55f316a487b8), 0) called at /usr/share/perl5/Mail/SpamAssassin/AsyncLoop.pm line 574
    eval {...} called at /usr/share/perl5/Mail/SpamAssassin/AsyncLoop.pm line 634
    Mail::SpamAssassin::AsyncLoop::complete_lookups(Mail::SpamAssassin::AsyncLoop=HASH(0x55f31d69a4f8), 0, 0) called at /usr/share/perl5/Mail/SpamAssassin/Dns.pm line 373
    Mail::SpamAssassin::PerMsgStatus::harvest_completed_queries(Mail::SpamAssassin::PerMsgStatus=HASH(0x55f31d68be30)) called at /usr/share/perl5/Mail/SpamAssassin/Plugin/Check.pm line 148
    Mail::SpamAssassin::Plugin::Check::check_main(Mail::SpamAssassin::Plugin::Check=HASH(0x55f3169e9988), HASH(0x55f319245138)) called at /usr/share/perl5/Mail/SpamAssassin/PluginHandler.pm line 220
    eval {...} called at /usr/share/perl5/Mail/SpamAssassin/PluginHandler.pm line 222
    Mail::SpamAssassin::PluginHandler::callback(Mail::SpamAssassin::PluginHandler=HASH(0x55f3169e0bb8), "check_main", HASH(0x55f319245138)) called at /usr/share/perl5/Mail/SpamAssassin.pm line 2296
    Mail::SpamAssassin::call_plugins(Mail::SpamAssassin=HASH(0x55f31234db00), "check_main", HASH(0x55f319245138)) called at /usr/share/perl5/Mail/SpamAssassin/PerMsgStatus.pm line 424
    Mail::SpamAssassin::PerMsgStatus::check_timed(Mail::SpamAssassin::PerMsgStatus=HASH(0x55f31d68be30), Mail::SpamAssassin::Timeout=HASH(0x55f318ac30b8), CODE(0x55f3193a6cf8), 0) called at /usr/share/perl5/Mail/SpamAssassin/PerMsgStatus.pm line 373
    Mail::SpamAssassin::PerMsgStatus::__ANON__ called at /usr/share/perl5/Mail/SpamAssassin/Timeout.pm line 219
    eval {...} called at /usr/share/perl5/Mail/SpamAssassin/Timeout.pm line 235
    Mail::SpamAssassin::Timeout::_run(Mail::SpamAssassin::Timeout=HASH(0x55f318ac30b8), CODE(0x55f3193a6cf8), 0) called at /usr/share/perl5/Mail/SpamAssassin/Timeout.pm line 138
    Mail::SpamAssassin::Timeout::run(Mail::SpamAssassin::Timeout=HASH(0x55f318ac30b8), CODE(0x55f3193a6cf8)) called at /usr/share/perl5/Mail/SpamAssassin/PerMsgStatus.pm line 373
    Mail::SpamAssassin::PerMsgStatus::check(Mail::SpamAssassin::PerMsgStatus=HASH(0x55f31d68be30)) called at /usr/share/perl5/Mail/SpamAssassin.pm line 582
    Mail::SpamAssassin::check(Mail::SpamAssassin=HASH(0x55f31234db00), Mail::SpamAssassin::Message=HASH(0x55f3192b2c20)) called at /usr/share/perl5/PMG/RuleDB/Spam.pm line 413
    eval {...} called at /usr/share/perl5/PMG/RuleDB/Spam.pm line 386
    PMG::RuleDB::Spam::analyze_spam(PMG::RuleDB::Spam=HASH(0x55f31d6e2f78), PMG::MailQueue=HASH(0x55f3173ef1a0), MIME::Entity=HASH(0x55f31ae0aa90), HASH(0x55f31a4dad98)) called at /usr/share/perl5/PMG/RuleDB/Spam.pm line 177
    PMG::RuleDB::Spam::what_match_targets(PMG::RuleDB::Spam=HASH(0x55f31d6e2f78), PMG::MailQueue=HASH(0x55f3173ef1a0), MIME::Entity=HASH(0x55f31ae0aa90), HASH(0x55f31a4dad98), DBI::db=HASH(0x55f31923c430)) called at /usr/share/perl5/PMG/RuleCache.pm line 323
    PMG::RuleCache::what_match(PMG::RuleCache=HASH(0x55f31d675e20), 7, PMG::MailQueue=HASH(0x55f3173ef1a0), MIME::Entity=HASH(0x55f31ae0aa90), HASH(0x55f31a4dad98), DBI::db=HASH(0x55f31923c430)) called at /usr/bin/pmg-smtp-filter line 266
    main::apply_rules(main=HASH(0x55f316995d00), PMG::MailQueue=HASH(0x55f3173ef1a0), HASH(0x55f31a4dad98), MIME::Entity=HASH(0x55f31ae0aa90), PMG::LDAPSet=HASH(0x55f31a258620)) called at /usr/bin/pmg-smtp-filter line 754
    eval {...} called at /usr/bin/pmg-smtp-filter line 616
    main::handle_smtp(main=HASH(0x55f316995d00), PMG::SMTP=HASH(0x55f31d675d90)) called at /usr/share/perl5/PMG/SMTP.pm line 147
    eval {...} called at /usr/share/perl5/PMG/SMTP.pm line 147
    PMG::SMTP::loop(PMG::SMTP=HASH(0x55f31d675d90), CODE(0x55f316958860), main=HASH(0x55f316995d00), 19) called at /usr/bin/pmg-smtp-filter line 845
    eval {...} called at /usr/bin/pmg-smtp-filter line 829
    main::process_request(main=HASH(0x55f316995d00), Net::Server::Proto::TCP=GLOB(0x55f31a362c58)) called at /usr/share/perl5/Net/Server.pm line 72
    Net::Server::run_client_connection(main=HASH(0x55f316995d00)) called at /usr/share/perl5/Net/Server/PreFork.pm line 225
    eval {...} called at /usr/share/perl5/Net/Server/PreFork.pm line 225
    Net::Server::PreFork::run_child(main=HASH(0x55f316995d00)) called at /usr/share/perl5/Net/Server/PreFork.pm line 183
    Net::Server::PreFork::run_n_children(main=HASH(0x55f316995d00), 2) called at /usr/share/perl5/Net/Server/PreFork.pm line 107
    Net::Server::PreFork::loop(main=HASH(0x55f316995d00)) called at /usr/share/perl5/Net/Server.pm line 58
    Net::Server::run(main=HASH(0x55f316995d00)) called at /usr/bin/pmg-smtp-filter line 936
 

Attachments

  • Screenshot 2023-05-29 004643.png
    Screenshot 2023-05-29 004643.png
    389 KB · Views: 4
Hm - the issues is not common - do you have any modification to your PMG installation? (additional modules, rulesets, ...)
Any specifics to your DNS setup?

else - please provide:
* pmgversion -v
* spamassassin -D all --lint 2>&1
(the last one as plain text-file)

Thanks!
 
Hm - the issues is not common - do you have any modification to your PMG installation? (additional modules, rulesets, ...)
Any specifics to your DNS setup?

else - please provide:
* pmgversion -v
* spamassassin -D all --lint 2>&1
(the last one as plain text-file)

Thanks!
Hi Stioko,

My installation is stock standard installation....no rulesets or additional module apart from spamassassin-dqs. See the attachments requested.

At this stage, I only observe the error appears when emails are received from outlook.com, gmail.com

Screenshot 2023-05-30 174730.png
 

Attachments

  • spamassasin.txt
    174.1 KB · Views: 3
Thanks for the information - it seems one other user also hat similar issues - and both installations have a spamhaus-dqs installation in common.

When did you deploy spamhaus-dqs?
(PMG ships SpamAssassin version 4.0.0 since 7.3 - so if you installed it before you probably need to adapt/reinstall it with the instructions for 4.0.0)

Did you follow the README instructions for version 4.0.0+ when deploying spamhaus-dqs?
 
Thanks for the information - it seems one other user also hat similar issues - and both installations have a spamhaus-dqs installation in common.

When did you deploy spamhaus-dqs?
(PMG ships SpamAssassin version 4.0.0 since 7.3 - so if you installed it before you probably need to adapt/reinstall it with the instructions for 4.0.0)

Did you follow the README instructions for version 4.0.0+ when deploying spamhaus-dqs?

I started seeing the error when I upgraded PMG recently to the latest version.

spamhaus-dqs was installed yesterday when the error was already showing on the log. I followed guide on installing on spamassassin 4.0 as per attachment.

Screenshot 2023-05-30 183334.png
 
Did you clean-up the old deployment of the 3.4.6 installation?

Additionally - how did you upgrade your PMG installation?
(asking because according to the spamassassin lint output DMARC was not found - while it should get pulled in if you upgrade with `apt full-upgrade`)

If this does not resolve the issue - consider asking spamhaus support if they are aware of issues with spamassassin 4.0.0
 
Did you clean-up the old deployment of the 3.4.6 installation?

Additionally - how did you upgrade your PMG installation?
(asking because according to the spamassassin lint output DMARC was not found - while it should get pulled in if you upgrade with `apt full-upgrade`)

If this does not resolve the issue - consider asking spamhaus support if they are aware of issues with spamassassin 4.0.0

I ran the command 'apt upgrade && apt dist-upgrade' to upgrade the system.

When I noticed the errors, I suspected that it could be the new upgrade applied so I deployed a new machine using the latest PMG iso. These screenshots are from the recently deployed system.

I have included /etc/mail/spamassassin/v400.pre below which should activate DMARC. Is this right? How do I check is this plugin is activated and working?

Code:
# This is the right place to customize your installation of SpamAssassin.
#
# See 'perldoc Mail::SpamAssassin::Conf' for details of what can be
# tweaked.
#
# This file was installed during the installation of SpamAssassin 4.0.0,
# and contains plugin loading commands for the new plugins added in that
# release.  It will not be overwritten during future SpamAssassin installs,
# so you can modify it to enable some disabled-by-default plugins below,
# if you so wish.
#
# There are now multiple files read to enable plugins in the
# /etc/mail/spamassassin directory; previously only one, "init.pre" was
# read.  Now both "init.pre", "v310.pre", and any other files ending in
# ".pre" will be read.  As future releases are made, new plugins will be
# added to new files, named according to the release they're added in.
###########################################################################






# DecodeShortUrl - Check for shortened URLs
#
# Note that this plugin will send HTTP requests to different URL shortener
# services.  Enabling caching is recommended, see plugin documentation.
#
loadplugin Mail::SpamAssassin::Plugin::DecodeShortURLs
url_shortener_cache_type dbi
url_shortener_cache_dsn dbi:SQLite:dbname=/var/lib/pmg/decode_short_urls.db


# DMARC - Check DMARC compliance
#
# Requires Mail::DMARC module and working SPF and DKIM Plugins.
#
loadplugin Mail::SpamAssassin::Plugin::DMARC
 
I have included /etc/mail/spamassassin/v400.pre below which should activate DMARC. Is this right? How do I check is this plugin is activated and working?
It should - if the dependency is present (else it just gets skipped) - is libmail-dmarc-perl present on the system? - if not just install it
you can check if it actually gets loaded by looking for DMARC in the `spamassassin -D all --lint` output

but the error seems unrelated to the missing dmarc plugin ...
 
It should - if the dependency is present (else it just gets skipped) - is libmail-dmarc-perl present on the system? - if not just install it
you can check if it actually gets loaded by looking for DMARC in the `spamassassin -D all --lint` output

but the error seems unrelated to the missing dmarc plugin ...

Thanks Stoiko. As per the attached screenshot, it doesn't appear libmail-dmarc-perl was installed by default during PMG installation. I will go ahead and install it now however I hoping it doesn't break the existing plugins presently installed by default.

Screenshot 2023-05-31 003522.png
 
Thanks Stoiko. As per the attached screenshot, it doesn't appear libmail-dmarc-perl was installed by default during PMG installation. I will go ahead and install it now however I hoping it doesn't break the existing plugins presently installed by default.

View attachment 50992
@Stioko, Further, email received from proxmox.com has triggered the error......even though the email is delivered successfully.

Screenshot 2023-05-31 004346.png
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!