[GH-ISSUE #991] check_mx dies on non-existing domains #841

Closed
opened 2026-02-27 11:13:51 +03:00 by kerem · 3 comments
Owner

Originally created by @tuxis-ie on GitHub (Dec 20, 2016).
Original GitHub issue: https://github.com/modoboa/modoboa/issues/991

There is a check_mx-script, which is run periodically to check everything. But it dies on non-existing domains.

I think the issue is in modoboa/admin/management/commands/subcommands/_mx.py but I can't seem to fix this very fast.

./env/lib/python2.7/site-packages/modoboa/admin/management/commands/subcommands/_mx.py
/srv/modoboa/env/bin/python /srv/modoboa/instance/manage.py modo check_mx
Traceback (most recent call last):
  File "/srv/modoboa/instance/manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 353, in execute_from_command_line
    utility.execute()
  File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 345, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/srv/modoboa/env/local/lib/python2.7/site-packages/subcommand/base.py", line 53, in run_from_argv
    return super(SubcommandCommand, self).run_from_argv(argv)
  File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 348, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 399, in execute
    output = self.handle(*args, **options)
  File "/srv/modoboa/env/local/lib/python2.7/site-packages/subcommand/base.py", line 84, in handle
    return command.run_from_argv(argv)
  File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 348, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 399, in execute
    output = self.handle(*args, **options)
  File "/srv/modoboa/env/local/lib/python2.7/site-packages/modoboa/admin/management/commands/subcommands/_mx.py", line 242, in handle
    self.check_domain(domain, **options)
  File "/srv/modoboa/env/local/lib/python2.7/site-packages/modoboa/admin/management/commands/subcommands/_mx.py", line 215, in check_domain
    mx_list = list(self.get_mx_records_for_domain(domain, ttl=ttl))
  File "/srv/modoboa/env/local/lib/python2.7/site-packages/modoboa/admin/management/commands/subcommands/_mx.py", line 82, in get_mx_records_for_domain
    answers = dns.resolver.query(domain.name, "MX")
  File "/srv/modoboa/env/local/lib/python2.7/site-packages/dns/resolver.py", line 981, in query
    raise_on_no_answer, source_port)
  File "/srv/modoboa/env/local/lib/python2.7/site-packages/dns/resolver.py", line 910, in query
    raise NXDOMAIN
dns.resolver.NXDOMAIN
Originally created by @tuxis-ie on GitHub (Dec 20, 2016). Original GitHub issue: https://github.com/modoboa/modoboa/issues/991 There is a check_mx-script, which is run periodically to check everything. But it dies on non-existing domains. I think the issue is in `modoboa/admin/management/commands/subcommands/_mx.py` but I can't seem to fix this very fast. ``` ./env/lib/python2.7/site-packages/modoboa/admin/management/commands/subcommands/_mx.py /srv/modoboa/env/bin/python /srv/modoboa/instance/manage.py modo check_mx Traceback (most recent call last): File "/srv/modoboa/instance/manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 353, in execute_from_command_line utility.execute() File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 345, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/srv/modoboa/env/local/lib/python2.7/site-packages/subcommand/base.py", line 53, in run_from_argv return super(SubcommandCommand, self).run_from_argv(argv) File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 348, in run_from_argv self.execute(*args, **cmd_options) File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 399, in execute output = self.handle(*args, **options) File "/srv/modoboa/env/local/lib/python2.7/site-packages/subcommand/base.py", line 84, in handle return command.run_from_argv(argv) File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 348, in run_from_argv self.execute(*args, **cmd_options) File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 399, in execute output = self.handle(*args, **options) File "/srv/modoboa/env/local/lib/python2.7/site-packages/modoboa/admin/management/commands/subcommands/_mx.py", line 242, in handle self.check_domain(domain, **options) File "/srv/modoboa/env/local/lib/python2.7/site-packages/modoboa/admin/management/commands/subcommands/_mx.py", line 215, in check_domain mx_list = list(self.get_mx_records_for_domain(domain, ttl=ttl)) File "/srv/modoboa/env/local/lib/python2.7/site-packages/modoboa/admin/management/commands/subcommands/_mx.py", line 82, in get_mx_records_for_domain answers = dns.resolver.query(domain.name, "MX") File "/srv/modoboa/env/local/lib/python2.7/site-packages/dns/resolver.py", line 981, in query raise_on_no_answer, source_port) File "/srv/modoboa/env/local/lib/python2.7/site-packages/dns/resolver.py", line 910, in query raise NXDOMAIN dns.resolver.NXDOMAIN ```
kerem closed this issue 2026-02-27 11:13:51 +03:00
Author
Owner

@tuxis-ie commented on GitHub (Dec 20, 2016):

Oh, the NXDOMAIN is correct (since the domain does not exist), but it should ignore non-existing domains instead of dying on them.

<!-- gh-comment-id:268283675 --> @tuxis-ie commented on GitHub (Dec 20, 2016): Oh, the NXDOMAIN is correct (since the domain does not exist), but it should ignore non-existing domains instead of dying on them.
Author
Owner

@tonioo commented on GitHub (Jan 4, 2017):

@tuxis-ie It looks like you're not using the latest version because this bug has already been fixed. Have you tried with 1.6.2 ?

<!-- gh-comment-id:270457534 --> @tonioo commented on GitHub (Jan 4, 2017): @tuxis-ie It looks like you're not using the latest version because this bug has already been fixed. Have you tried with 1.6.2 ?
Author
Owner

@tuxis-ie commented on GitHub (Jan 5, 2017):

Not yet, will upgrade soon! Sorry.

<!-- gh-comment-id:270754466 --> @tuxis-ie commented on GitHub (Jan 5, 2017): Not yet, will upgrade soon! Sorry.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/modoboa-modoboa#841
No description provided.