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: 5
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

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